跳转到主要内容

Jupyter遥测库

项目描述

遥测

CircleCI codecov Documentation Status

为Jupyter应用程序和扩展提供遥测。

遥测(təˈlemətrē):记录和传输仪器读数的过程。[牛津高阶英汉双解大词典]

Jupyter遥测使Jupyter应用程序(例如Jupyter服务器、Jupyter笔记本、JupyterLab、JupyterHub等)能够记录 事件——即应用程序用户的操作——并将它们作为 结构化 数据传输到远程(或本地)目的地。它使用Python的标准化 logging 库来处理事件的传输,使用户可以将事件发送到本地文件、通过Web等。

安装

Jupyter的遥测库可以从PyPI安装。

pip install jupyter_telemetry

基本用法

遥测提供了一个可配置的traitlets对象EventLog,用于在Python中进行结构化事件日志记录。它利用Python的标准logging库来过滤、处理和记录事件。所有事件都通过jsonschemajsonschema)进行验证,与注册的JSON模式进行比较。

让我们看看一个基本的EventLog示例。

import logging
from jupyter_telemetry import EventLog


eventlog = EventLog(
    # Use logging handlers to route where events
    # should be record.
    handlers=[
        logging.FileHandler('events.log')
    ],
    # List schemas of events that should be recorded.
    allowed_schemas=[
        'uri.to.event.schema'
    ]
)

EventLog有两个可配置的特性

  • handlers:Python的logging处理器的列表。
  • allowed_schemas:要记录的事件模式的列表。

事件模式必须与EventLog注册,以便记录事件。事件模式看起来像这样

{
  "$id": "url.to.event.schema",
  "title": "My Event",
  "description": "All events must have a name property.",
  "type": "object",
  "properties": {
    "name": {
      "title": "Name",
      "description": "Name of event",
      "type": "string"
    }
  },
  "required": ["name"],
  "version": 1
}

需要2个字段

  • $id:识别该模式的有效URI(可能从远程地址获取)。
  • version:该模式的版本。

其他字段遵循标准的JSON模式结构。

可以从Python的dict对象、文件或URL注册模式。此示例从文件加载上述示例模式。

# Register the schema.
eventlog.register_schema_file('schema.json')

使用record_event方法记录事件。此方法验证事件数据,并将JSON字符串路由到EventLog中列出的Python logging处理器。

# Record an example event.
event = {'name': 'example event'}
eventlog.record_event(
    schema_id='url.to.event.schema',
    version=1,
    event=event
)

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

jupyter_telemetry-0.1.0.tar.gz (9.6 kB 查看哈希值

上传时间:

构建分布

jupyter_telemetry-0.1.0-py3-none-any.whl (7.1 kB 查看哈希值

上传时间: Python 3

支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面