A JupyterLab库,用于记录和监控使用数据
项目描述
jupyterlab_telemetry
A JupyterLab库,用于记录和监控使用数据
此扩展由一个名为jupyterlab_telemetry
的Python包组成,用于服务器扩展,以及一个名为@jupyterlab/jupyterlab-telemetry
的NPM包,用于前端库。
需求
- JupyterLab >= 3.0
安装
要安装服务器扩展,执行
pip install jupyterlab_telemetry
要安装前端库,将"@jupyterlab/jupyterlab-telemetry": "^1.0.0"
添加到package.json
中的依赖项。
卸载
要删除服务器扩展,执行
pip uninstall jupyterlab_telemetry
要删除前端库,从package.json
中的依赖项中删除"@jupyterlab/jupyterlab-telemetry": "^1.0.0"
。
故障排除
如果您已安装前端库,但无法连接到监控端点,请检查服务器扩展是否已启用
jupyter server extension list
用法
定义可以接收 EventLog
事件的处理器
import { EventLog } from '@jupyterlab/jupyterlab-telemetry';
function consoleHandler(el: EventLog, events: EventLog.RecordedEvent[]) {
console.log(`[Handler1] Received events ${JSON.stringify(events)}`);
}
function consoleHandler2(el: EventLog, events: EventLog.RecordedEvent[]) {
console.log(`[Handler2] Received events ${JSON.stringify(events)}`);
}
创建 EventLog
的实例,并从 EventLog.IOptions
配置处理器和其他选项
const el = new EventLog({
handlers: [consoleHandler, consoleHandler2],
allowedSchemas: [
'org.jupyter.foo',
'org.jupyterlab.commands.docmanager:open'
],
commandRegistry: app.commands,
commandEmitIntervalSeconds: 2
});
通过 recordEvents
接口发送自定义事件。如果传递了 commandRegistry
实例,则 EventLog
将订阅 JupyterLab 应用程序中执行的操作,并将白名单中的操作发送到每个配置的处理程序。
el.recordEvent({
schema: 'org.jupyter.foo',
version: 1,
body: {
foo: 'bar'
}
});
使用后销毁事件日志
el.dispose();
贡献
开发安装
注意:您需要 NodeJS 来构建扩展包。
jlpm
命令是 JupyterLab 预装版本的 yarn,它是与 JupyterLab 一起安装的。您可以使用 yarn
或 npm
替代以下 jlpm
。
# Clone the repo to your local environment
git clone https://github.com/jupyterlab/jupyterlab-telemetry.git
# Change directory to the jupyterlab-telemetry directory
cd jupyterlab-telemetry
# Install package in development mode
pip install -e .
# Server extension must be manually installed in develop mode
jupyter server extension enable jupyterlab_telemetry
# Build the Typescript source after making changes
jlpm build
测试
服务器扩展具有 Python 测试,可以在推送新更改之前更新和测试。
# Install the test dependencies
pip install .[test]
# Run the tests
pytest
前端库使用 jest
进行测试,并在运行 test
目标时生成测试覆盖率。
# To run the tests with coverage
jlpm test
开发卸载
# Server extension must be manually disabled in develop mode
jupyter server extension disable jupyterlab_telemetry
pip uninstall jupyterlab_telemetry
打包扩展
参见 RELEASE
项目详情
下载文件
下载适用于您的平台文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。