JupyterHub can be configured to record structured events from a running server using Jupyter’s Telemetry System. The types of events that JupyterHub emits are defined by JSON schemas listed below
emitted as JSON data, defined and validated by the JSON schemas listed below.
Event logging is handled by its Eventlog object. This leverages Python’s standing logging library to emit, filter, and collect event data.
Eventlog
To begin recording events, you’ll need to set two configurations:
handlers: tells the EventLog where to route your events. This trait is a list of Python logging handlers that route events to allows_schemas: tells the EventLog which events should be recorded. No events are emitted by default; all recorded events must be listed here.
handlers: tells the EventLog where to route your events. This trait is a list of Python logging handlers that route events to
handlers
allows_schemas: tells the EventLog which events should be recorded. No events are emitted by default; all recorded events must be listed here.
allows_schemas
Here’s a basic example:
import logging c.EventLog.handlers = [ logging.FileHandler('event.log'), ] c.EventLog.allowed_schemas = [ 'hub.jupyter.org/server-action' ]
The output is a file, "event.log", with events recorded as JSON data.
"event.log"