Skip to main content

Fast and Customizable Tokenizers

Project description



Build GitHub


Tokenizers

Provides an implementation of today's most used tokenizers, with a focus on performance and versatility.

Bindings over the Rust implementation. If you are interested in the High-level design, you can go check it there.

Otherwise, let's dive in!

Main features:

  • Train new vocabularies and tokenize using 4 pre-made tokenizers (Bert WordPiece and the 3 most common BPE versions).
  • Extremely fast (both training and tokenization), thanks to the Rust implementation. Takes less than 20 seconds to tokenize a GB of text on a server's CPU.
  • Easy to use, but also extremely versatile.
  • Designed for research and production.
  • Normalization comes with alignments tracking. It's always possible to get the part of the original sentence that corresponds to a given token.
  • Does all the pre-processing: Truncate, Pad, add the special tokens your model needs.

Installation

With pip:

pip install tokenizers

From sources:

To use this method, you need to have the Rust installed:

# Install with:
curl https://sh.rustup.rs -sSf | sh -s -- -y
export PATH="$HOME/.cargo/bin:$PATH"

Once Rust is installed, you can compile doing the following

git clone https://github.com/huggingface/tokenizers
cd tokenizers/bindings/python

# Create a virtual env (you can use yours as well)
python -m venv .env
source .env/bin/activate

# Install `tokenizers` in the current virtual env
pip install setuptools_rust
python setup.py install

Using the provided Tokenizers

We provide some pre-build tokenizers to cover the most common cases. You can easily load one of these using some vocab.json and merges.txt files:

from tokenizers import CharBPETokenizer

# Initialize a tokenizer
vocab = "./path/to/vocab.json"
merges = "./path/to/merges.txt"
tokenizer = CharBPETokenizer(vocab, merges)

# And then encode:
encoded = tokenizer.encode("I can feel the magic, can you?")
print(encoded.ids)
print(encoded.tokens)

And you can train them just as simply:

from tokenizers import CharBPETokenizer

# Initialize a tokenizer
tokenizer = CharBPETokenizer()

# Then train it!
tokenizer.train([ "./path/to/files/1.txt", "./path/to/files/2.txt" ])

# Now, let's use it:
encoded = tokenizer.encode("I can feel the magic, can you?")

# And finally save it somewhere
tokenizer.save("./path/to/directory/my-bpe.tokenizer.json")

Provided Tokenizers

  • CharBPETokenizer: The original BPE
  • ByteLevelBPETokenizer: The byte level version of the BPE
  • SentencePieceBPETokenizer: A BPE implementation compatible with the one used by SentencePiece
  • BertWordPieceTokenizer: The famous Bert tokenizer, using WordPiece

All of these can be used and trained as explained above!

Build your own

Whenever these provided tokenizers don't give you enough freedom, you can build your own tokenizer, by putting all the different parts you need together. You can how we implemented the provided tokenizers and adapt them easily to your own needs.

Building a byte-level BPE

Here is an example showing how to build your own byte-level BPE by putting all the different pieces together, and then saving it to a single file:

from tokenizers import Tokenizer, models, pre_tokenizers, decoders, trainers, processors

# Initialize a tokenizer
tokenizer = Tokenizer(models.BPE())

# Customize pre-tokenization and decoding
tokenizer.pre_tokenizer = pre_tokenizers.ByteLevel(add_prefix_space=True)
tokenizer.decoder = decoders.ByteLevel()
tokenizer.post_processor = processors.ByteLevel(trim_offsets=True)

# And then train
trainer = trainers.BpeTrainer(vocab_size=20000, min_frequency=2)
tokenizer.train(trainer, [
	"./path/to/dataset/1.txt",
	"./path/to/dataset/2.txt",
	"./path/to/dataset/3.txt"
])

# And Save it
tokenizer.save("byte-level-bpe.tokenizer.json", pretty=True)

Now, when you want to use this tokenizer, this is as simple as:

from tokenizers import Tokenizer

tokenizer = Tokenizer.from_file("byte-level-bpe.tokenizer.json")

encoded = tokenizer.encode("I can feel the magic, can you?")

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tokenizers-0.8.0rc2.tar.gz (94.9 kB view details)

Uploaded Source

Built Distributions

tokenizers-0.8.0rc2-cp38-cp38-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.8 Windows x86-64

tokenizers-0.8.0rc2-cp38-cp38-win32.whl (1.6 MB view details)

Uploaded CPython 3.8 Windows x86

tokenizers-0.8.0rc2-cp38-cp38-manylinux1_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.8

tokenizers-0.8.0rc2-cp38-cp38-macosx_10_10_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.8 macOS 10.10+ x86-64

tokenizers-0.8.0rc2-cp37-cp37m-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.7m Windows x86-64

tokenizers-0.8.0rc2-cp37-cp37m-win32.whl (1.6 MB view details)

Uploaded CPython 3.7m Windows x86

tokenizers-0.8.0rc2-cp37-cp37m-manylinux1_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.7m

tokenizers-0.8.0rc2-cp37-cp37m-macosx_10_10_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.7m macOS 10.10+ x86-64

tokenizers-0.8.0rc2-cp36-cp36m-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.6m Windows x86-64

tokenizers-0.8.0rc2-cp36-cp36m-win32.whl (1.6 MB view details)

Uploaded CPython 3.6m Windows x86

tokenizers-0.8.0rc2-cp36-cp36m-manylinux1_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.6m

tokenizers-0.8.0rc2-cp36-cp36m-macosx_10_10_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.6m macOS 10.10+ x86-64

tokenizers-0.8.0rc2-cp35-cp35m-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.5m Windows x86-64

tokenizers-0.8.0rc2-cp35-cp35m-win32.whl (1.6 MB view details)

Uploaded CPython 3.5m Windows x86

tokenizers-0.8.0rc2-cp35-cp35m-manylinux1_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.5m

tokenizers-0.8.0rc2-cp35-cp35m-macosx_10_10_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.5m macOS 10.10+ x86-64

File details

Details for the file tokenizers-0.8.0rc2.tar.gz.

File metadata

  • Download URL: tokenizers-0.8.0rc2.tar.gz
  • Upload date:
  • Size: 94.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

File hashes

Hashes for tokenizers-0.8.0rc2.tar.gz
Algorithm Hash digest
SHA256 42536150d20c6bc493ebbff79f1348972c72ec8e5f2358de71f5634423205108
MD5 15550a4c0164df1917983922acacf328
BLAKE2b-256 5c850906ee216c6e6ddedd5d31d56bbea6f5ad1603c65a0b4d59d204b42af46e

See more details on using hashes here.

File details

Details for the file tokenizers-0.8.0rc2-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: tokenizers-0.8.0rc2-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 1.9 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

File hashes

Hashes for tokenizers-0.8.0rc2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 bd9e9bef2971e81a6e265a4e4dbdd4aa329f08d7eb4335fd5c80a7cec15bf55e
MD5 97849c0abf3f122420c653164f735822
BLAKE2b-256 e03f98df8a682ce46354cfec0d98b1fe8e06b6578aac6f2a11c6396189d44b48

See more details on using hashes here.

File details

Details for the file tokenizers-0.8.0rc2-cp38-cp38-win32.whl.

File metadata

  • Download URL: tokenizers-0.8.0rc2-cp38-cp38-win32.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

File hashes

Hashes for tokenizers-0.8.0rc2-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 f0294260b574f52da8b81ff3321cb16e932331ff17afd7b1924aa9fada184410
MD5 cb264e2256deae0aa1b8dbd3baa888a8
BLAKE2b-256 08f618781cca4746db40cb9ea52545181894ea89a2acc183d517d516d681519f

See more details on using hashes here.

File details

Details for the file tokenizers-0.8.0rc2-cp38-cp38-manylinux1_x86_64.whl.

File metadata

  • Download URL: tokenizers-0.8.0rc2-cp38-cp38-manylinux1_x86_64.whl
  • Upload date:
  • Size: 3.0 MB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

File hashes

Hashes for tokenizers-0.8.0rc2-cp38-cp38-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 5b9f29bde4c055ab7be0dedb7394ef8897ab949750e6f0ad5d3722e3b9a0c87a
MD5 45f4f4650c0e5a55a38a4fd8f7e35606
BLAKE2b-256 748f7dc1c3d025ea995908e835e40a428c5bb2d39a8e9d3f33e16e4ef752eef2

See more details on using hashes here.

File details

Details for the file tokenizers-0.8.0rc2-cp38-cp38-macosx_10_10_x86_64.whl.

File metadata

  • Download URL: tokenizers-0.8.0rc2-cp38-cp38-macosx_10_10_x86_64.whl
  • Upload date:
  • Size: 2.1 MB
  • Tags: CPython 3.8, macOS 10.10+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

File hashes

Hashes for tokenizers-0.8.0rc2-cp38-cp38-macosx_10_10_x86_64.whl
Algorithm Hash digest
SHA256 577eb4b4bd2b9515932fc754c9161c3056109f138a41a9b299dd43b512b720eb
MD5 29436e70ea9090ba76d039cb2edf3c8c
BLAKE2b-256 33cf9fa69fbee3b8d8d664580ab56761d1fcbd7e96571819ff181a4168a07f75

See more details on using hashes here.

File details

Details for the file tokenizers-0.8.0rc2-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: tokenizers-0.8.0rc2-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 1.9 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

File hashes

Hashes for tokenizers-0.8.0rc2-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 2a9bfce7a4e2c1f78b6f743a5ca778fe0db084e73d3a1828f8f19546335d4c2a
MD5 55b54322a367ffea53060c23f327e9a4
BLAKE2b-256 9e42ec13caf7d71fe6dc1d4ca4c14be336efcaed8f5cb558b2512daf0c8fbad5

See more details on using hashes here.

File details

Details for the file tokenizers-0.8.0rc2-cp37-cp37m-win32.whl.

File metadata

  • Download URL: tokenizers-0.8.0rc2-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

File hashes

Hashes for tokenizers-0.8.0rc2-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 9baaa3b3f4c2ff311d4a99eb6e76268eb5144a19ef8d0b9f34d5489a5c3c7184
MD5 4addd17a207d7f8767f15a5ef9442f9c
BLAKE2b-256 f80eaa46476aecaad98656543def801a851be489f355b3f822b7ea184574a3e0

See more details on using hashes here.

File details

Details for the file tokenizers-0.8.0rc2-cp37-cp37m-manylinux1_x86_64.whl.

File metadata

  • Download URL: tokenizers-0.8.0rc2-cp37-cp37m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 3.0 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

File hashes

Hashes for tokenizers-0.8.0rc2-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 6add618d629094bf2bd93aacca75f4dcdcd1902c6be218555c993831444abea1
MD5 b46f45a15f8ec5268f0eed42420ef7da
BLAKE2b-256 d405e1d57c46c8c5759c4ebd1e6f62ee6e120a58e488262cb7aca3997952de51

See more details on using hashes here.

File details

Details for the file tokenizers-0.8.0rc2-cp37-cp37m-macosx_10_10_x86_64.whl.

File metadata

  • Download URL: tokenizers-0.8.0rc2-cp37-cp37m-macosx_10_10_x86_64.whl
  • Upload date:
  • Size: 2.1 MB
  • Tags: CPython 3.7m, macOS 10.10+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

File hashes

Hashes for tokenizers-0.8.0rc2-cp37-cp37m-macosx_10_10_x86_64.whl
Algorithm Hash digest
SHA256 302950ec114d9819e2c016c91b750e3599b515af5915ecb73a3013ccfe9ec3d9
MD5 16fd6212afa839e898733a7b7b62f8a4
BLAKE2b-256 7f573e8e19952c597215059ffe1e3f50844ff2613c8e53389c9d95abf2f5b9e1

See more details on using hashes here.

File details

Details for the file tokenizers-0.8.0rc2-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: tokenizers-0.8.0rc2-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 1.9 MB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

File hashes

Hashes for tokenizers-0.8.0rc2-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 5f57e01fdf7e4614558f221e3826f1522865f33b34b0b0422257bd2a673a5922
MD5 bed3b8c455a7fb20db6f7dadc1997929
BLAKE2b-256 47e2b2649fbf5bcb1a60423c496429a4abbc140eacefb8c807c755964bf6139f

See more details on using hashes here.

File details

Details for the file tokenizers-0.8.0rc2-cp36-cp36m-win32.whl.

File metadata

  • Download URL: tokenizers-0.8.0rc2-cp36-cp36m-win32.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.6m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

File hashes

Hashes for tokenizers-0.8.0rc2-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 38c5fc13b0bc5796aa8cffe32b1048efe1eb8ec31ac03a810e88079e579f9c5f
MD5 0ccac5ac877d77c3fce66955dd33dd5e
BLAKE2b-256 8e27f39e7c215f379b2cf47862b323e8ec29fb3dd57ab30f7976afaba2b4d5d3

See more details on using hashes here.

File details

Details for the file tokenizers-0.8.0rc2-cp36-cp36m-manylinux1_x86_64.whl.

File metadata

  • Download URL: tokenizers-0.8.0rc2-cp36-cp36m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 3.0 MB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

File hashes

Hashes for tokenizers-0.8.0rc2-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 9eef754c43bbf064e238f6476967dfdeb1553bf71491e57d9a58e16245133ce3
MD5 3df83b297776080f46271eacbdfda42b
BLAKE2b-256 074724b44ff88df16fd0592a0a3d0e29e4e1548ae7a6bd869d5a654bc1567535

See more details on using hashes here.

File details

Details for the file tokenizers-0.8.0rc2-cp36-cp36m-macosx_10_10_x86_64.whl.

File metadata

  • Download URL: tokenizers-0.8.0rc2-cp36-cp36m-macosx_10_10_x86_64.whl
  • Upload date:
  • Size: 2.1 MB
  • Tags: CPython 3.6m, macOS 10.10+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

File hashes

Hashes for tokenizers-0.8.0rc2-cp36-cp36m-macosx_10_10_x86_64.whl
Algorithm Hash digest
SHA256 4fcf69c8774fbdb65d02b6780cc289d76ad914d01359e5ac0c43d792629ceee1
MD5 a4c2d361f5728fb9c66cb020d51dec4c
BLAKE2b-256 ae39980a7776aa88829d7b95ea5d02cae1039229d0a04c1a9668dbff5e8db1f4

See more details on using hashes here.

File details

Details for the file tokenizers-0.8.0rc2-cp35-cp35m-win_amd64.whl.

File metadata

  • Download URL: tokenizers-0.8.0rc2-cp35-cp35m-win_amd64.whl
  • Upload date:
  • Size: 1.9 MB
  • Tags: CPython 3.5m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

File hashes

Hashes for tokenizers-0.8.0rc2-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 56bed736fd0afb3a8c66408ed33dddafd43c01b0cfa412f06f1e08c79a73bd77
MD5 3fa474038a0cccdbb1f2f11ec63d1815
BLAKE2b-256 f2947ebefc926012cecfe236f6f7c70eb248045b152ec9e9b27bfb43d0616d49

See more details on using hashes here.

File details

Details for the file tokenizers-0.8.0rc2-cp35-cp35m-win32.whl.

File metadata

  • Download URL: tokenizers-0.8.0rc2-cp35-cp35m-win32.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.5m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

File hashes

Hashes for tokenizers-0.8.0rc2-cp35-cp35m-win32.whl
Algorithm Hash digest
SHA256 49bdf4c951ac0fc9301db3eaa2af6e21c5c4a11653c1cf8b734f02b28b0d951f
MD5 74b8edd5714d80e5bacbf67ffe9ebc8b
BLAKE2b-256 0d96b435df0b68cf4bb3b4fcc8c8f0add907d3eb7f29ccd0f3083d958d4bfa14

See more details on using hashes here.

File details

Details for the file tokenizers-0.8.0rc2-cp35-cp35m-manylinux1_x86_64.whl.

File metadata

  • Download URL: tokenizers-0.8.0rc2-cp35-cp35m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 3.0 MB
  • Tags: CPython 3.5m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

File hashes

Hashes for tokenizers-0.8.0rc2-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 03d77a44156be40f59fec9040843331c315f17258bdd0d0ed0a092e3b49b00dd
MD5 f4f0339a1850e855312f66295553b32a
BLAKE2b-256 dd60b8ab3fb51294402e7b9d5a4c258e910967681bc7a08c9a00b9e528c9a2b7

See more details on using hashes here.

File details

Details for the file tokenizers-0.8.0rc2-cp35-cp35m-macosx_10_10_x86_64.whl.

File metadata

  • Download URL: tokenizers-0.8.0rc2-cp35-cp35m-macosx_10_10_x86_64.whl
  • Upload date:
  • Size: 2.1 MB
  • Tags: CPython 3.5m, macOS 10.10+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

File hashes

Hashes for tokenizers-0.8.0rc2-cp35-cp35m-macosx_10_10_x86_64.whl
Algorithm Hash digest
SHA256 e0cb8bf05d29d0590c316893bf5d67a4627657828eb7ab4767357aaeb335b0d2
MD5 88cd446681a4cc175b5bf1194bc5765a
BLAKE2b-256 164f8b19879e4f1f5c61310561d700a4ac8e1e59e1fbb0568e91e7896f4a05af

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page