mirror of
https://github.com/jupyterhub/jupyterhub.git
synced 2025-10-07 01:54:09 +00:00
52 lines
1.6 KiB
Markdown
52 lines
1.6 KiB
Markdown
# Event logging and telemetry
|
|
|
|
JupyterHub can be configured to record structured events from a running server using Jupyter's [Events System]. The types of events that JupyterHub emits are defined by [JSON schemas] listed at the bottom of this page.
|
|
|
|
## How to emit events
|
|
|
|
Event logging is handled by its `EventLogger` object. This leverages Python's standing [logging] library to emit, filter, and collect event data.
|
|
|
|
To begin recording events, you'll need to set two configurations:
|
|
|
|
> 1. `handlers`: tells the EventLogger _where_ to route your events. This trait is a list of Python logging handlers that route events to the event log file.
|
|
> 2. `allows_schemas`: tells the EventLogger _which_ events should be recorded. No events are emitted by default; all recorded events must be listed here.
|
|
|
|
Here's a basic example:
|
|
|
|
```
|
|
import logging
|
|
|
|
c.EventLogger.handlers = [
|
|
logging.FileHandler('event.log'),
|
|
]
|
|
|
|
c.EventLogger.allowed_schemas = [
|
|
'https://schema.jupyter.org/jupyterhub/events/server-action',
|
|
]
|
|
```
|
|
|
|
The output is a file, `"event.log"`, with events recorded as JSON data.
|
|
|
|
(page)=
|
|
|
|
## Event schemas
|
|
|
|
```{toctree}
|
|
:maxdepth: 2
|
|
|
|
server-actions
|
|
```
|
|
|
|
:::{versionchanged} 5.0
|
|
JupyterHub 5.0 changes from the deprecated jupyter-telemetry to jupyter-events.
|
|
|
|
The main changes are:
|
|
|
|
- `EventLog` configuration is now called `EventLogger`
|
|
- The `hub.jupyter.org/server-action` schema is now called `https://schema.jupyter.org/jupyterhub/events/server-action`
|
|
:::
|
|
|
|
[json schemas]: https://json-schema.org/
|
|
[logging]: https://docs.python.org/3/library/logging.html
|
|
[events system]: https://jupyter-events.readthedocs.io
|