Package: jupyterlab-sentry
jupyterlab_sentrySentryintegration 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.Requirements0.*.*JupyterLab >= 3.01.*.*JupyterLab >= 4.01.* versions are developed and tested with JupyterLab 4.0.0a29.InstallTo install the extension, execute:pipinstalljupyterlab_sentrySentry DSNWe are usingjupyter lab extension settingsfor Sentry DSN.
After installation, you can find thatjupyterlab-sentrysettings 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 usingoverrides.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"
    }
}UninstallTo remove the extension, execute:pipuninstalljupyterlab_sentryContributingCreating Conda EnvironmentFor0.*.*versions,conda create -n jupyterlab-ext --override-channels --strict-channel-priority -c conda-forge -c nodefaults jupyterlab=3 cookiecutter nodejs jupyter-packaging gitDevelopment installNote: You will need NodeJS to build the extension package.Thejlpmcommand is JupyterLab's pinned version ofyarnthat is installed with JupyterLab. You may useyarnornpmin lieu ofjlpmbelow.# Clone the repo to your local environment# Change directory to the jupyterlab_sentry directory# Install package in development modepipinstall-e.# Link your development version of the extension with JupyterLabjupyterlabextensiondevelop.--overwrite# Rebuild extension Typescript source after making changesjlpmbuildYou 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 neededjlpmwatch# Run JupyterLab in another terminaljupyterlabWith 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, thejlpm buildcommand 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:jupyterlabbuild--minimize=FalseDevelopment uninstallpipuninstalljupyterlab_sentryIn development mode, you will also need to remove the symlink created byjupyter labextension developcommand. To find its location, you can runjupyter labextension listto figure out where thelabextensionsfolder is located. Then you can remove the symlink namedjupyterlab-sentrywithin that folder.Packaging the extensionSeeRELEASEOur problems and goalsIn 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 upoverrides.json.