Skip to main content

Sentry integration for jupyter lab

Project description

jupyterlab_sentry

Sentry integration for jupyter lab.

Highly customized and crowded jupyter lab environment might face odd behaviors and errors. Error reporting and analysis tools can help us identify and fix errors. Sentry is one of those tools.

Requirements

0.*.*

  • JupyterLab >= 3.0

1.*.*

  • JupyterLab >= 4.0

1.* versions are developed and tested with JupyterLab 4.0.0a29.

Install

To install the extension, execute:

pip install jupyterlab_sentry

Sentry DSN

We are using jupyter lab extension settings for Sentry DSN. After installation, you can find that jupyterlab-sentry settings are available in advanced settings. However, this setting is only applied to the user who set this value manually. In most cases, you might want all your users to be reported by sentry. 제목 없음

We are using overrides.json. This file can be installed to your node or docker image.

/<project>/Dockerfile

# Choose version whatever you want
FROM jupyter/base-notebook:lab-3.2.9 as base

COPY overrides.json ${CONDA_DIR}/share/jupyter/lab/settings/overrides.json

# ...

/<project>/overrides.json

{
    "jupyterlab-sentry:plugin": {
        "dsn": "https://yourdsn@asdf.ingest.sentry.io/1234"
    }
}

Uninstall

To remove the extension, execute:

pip uninstall jupyterlab_sentry

Contributing

Creating Conda Environment

For 0.*.* versions,

conda create -n jupyterlab-ext --override-channels --strict-channel-priority -c conda-forge -c nodefaults jupyterlab=3 cookiecutter nodejs jupyter-packaging git

Development install

Note: You will need NodeJS to build the extension package.

The jlpm command is JupyterLab's pinned version of yarn that is installed with JupyterLab. You may use yarn or npm in lieu of jlpm below.

# Clone the repo to your local environment
# Change directory to the jupyterlab_sentry directory
# Install package in development mode
pip install -e .
# Link your development version of the extension with JupyterLab
jupyter labextension develop . --overwrite
# Rebuild extension Typescript source after making changes
jlpm build

You can watch the source directory and run JupyterLab at the same time in different terminals to watch for changes in the extension's source and automatically rebuild the extension.

# Watch the source directory in one terminal, automatically rebuilding when needed
jlpm watch
# Run JupyterLab in another terminal
jupyter lab

With the watch command running, every saved change will immediately be built locally and available in your running JupyterLab. Refresh JupyterLab to load the change in your browser (you may need to wait several seconds for the extension to be rebuilt).

By default, the jlpm build command generates the source maps for this extension to make it easier to debug using the browser dev tools. To also generate source maps for the JupyterLab core extensions, you can run the following command:

jupyter lab build --minimize=False

Development uninstall

pip uninstall jupyterlab_sentry

In development mode, you will also need to remove the symlink created by jupyter labextension develop command. To find its location, you can run jupyter labextension list to figure out where the labextensions folder is located. Then you can remove the symlink named jupyterlab-sentry within that folder.

Packaging the extension

See RELEASE

Our problems and goals

In theory, Sentry agent should be initialized as soon as possible. But, jupyter lab extensions are loaded much later.

Sentry report would be improved if we feed them additional information like user id.

Jupyter lab setting is not bad for deliverying DSN value, but I'm a little worried that users might change their DSN value. It is also a bit complicated to set up overrides.json.

Project details


Download files

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

Source Distribution

jupyterlab_sentry-1.1.0.tar.gz (267.2 kB view details)

Uploaded Source

Built Distribution

jupyterlab_sentry-1.1.0-py3-none-any.whl (95.3 kB view details)

Uploaded Python 3

File details

Details for the file jupyterlab_sentry-1.1.0.tar.gz.

File metadata

  • Download URL: jupyterlab_sentry-1.1.0.tar.gz
  • Upload date:
  • Size: 267.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.9

File hashes

Hashes for jupyterlab_sentry-1.1.0.tar.gz
Algorithm Hash digest
SHA256 c84d1b3f86a00761d97b9ab8c62f2648672ba98a2c670043979ef77770df4b2d
MD5 af2c726989504b064812fc41a5d1a472
BLAKE2b-256 38c56021052434f1c46bd35f8cb7b257cb6944d3ea5bb6a2576ebdb1a60c55b0

See more details on using hashes here.

File details

Details for the file jupyterlab_sentry-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for jupyterlab_sentry-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 053f4e865c9776e2567a2be19e1f5845fe71c37dbb30c5f9a62e64d21d1a952a
MD5 4dcf2b53c098896f4d34917eb5a2f2d0
BLAKE2b-256 9f82a8386d0239621170b5945d4ad84fd390bcb34dac04e6053d841501ec053c

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