Writing a schema for telemetry#
All Schemas should be a valid JSON schema and can be written in valid YAML or JSON.
At a minimum, valid Jupyter Telemetry Event schema requires have the following keys:
$id: a URI to identify (and possibly locate) the schema.version: schema version.title: name of the schemadescription: documentation for the schemaproperties: attributes of the event being emitted.Each property should have the following attributes:
title: name of the propertydescription: documentation for this property.categories: list of types of data being collected
required: list of required properties.
Here is a minimal example of a valid JSON schema for an event.
$id: event.jupyter.org/example-event
version: 1
title: My Event
description: |
All events must have a name property
type: object
properties:
thing:
title: Thing
categories:
- category.jupyter.org/unrestricted
description: A random thing.
user:
title: User name
categories:
- category.jupyter.org/user-identifier
description: Name of user who initiated event
required:
- thing
- user
Property Categories#
Each property can be labelled with categories field. This makes it easier to filter properties based on a category. We recommend that schema authors use valid URIs for these labels, e.g. something like category.jupyter.org/unrestricted.
Below is a list of common category labels that Jupyter Telemetry recommends using:
category.jupyter.org/unrestrictedcategory.jupyter.org/user-identifiercategory.jupyter.org/user-identifiable-informationcategory.jupyter.org/action-timestamp