Jupyter
Jupyter Notebooks provide an interactive computing environment combining code, prose, and rich output (charts, tables, maps) in a single shareable document. JupyterHub is the multi-user server that deploys notebooks as a platform service.
How Fawkes Uses Jupyter
Jupyter is deployed as part of the data platform and serves two primary use cases:
DORA Metrics Exploration
Data analysts and platform engineers use notebooks to: - Query DevLake's PostgreSQL database for raw DORA event data - Build ad-hoc charts showing deployment frequency trends by team - Prototype new metrics calculations before formalising them in Grafana dashboards
Training and Dojo Support
Jupyter notebooks serve as interactive learning materials for the dojo modules. Learners can run code examples directly in the browser, experiment with changes, and see results immediately without needing a local development environment.
Connecting to Platform Data
import pandas as pd
import sqlalchemy
# Connect to DevLake analytics database
engine = sqlalchemy.create_engine(os.environ['DEVLAKE_DB_URL'])
df = pd.read_sql("""
SELECT team, deployment_date, lead_time_hours
FROM deployments
WHERE deployment_date >= NOW() - INTERVAL '90 days'
""", engine)
df.groupby('team')['lead_time_hours'].median().plot(kind='bar')
Accessing JupyterHub
Navigate to the JupyterHub URL configured for your environment. Log in with your
SSO credentials. Each user gets a dedicated notebook server with platform libraries
pre-installed: pandas, matplotlib, sqlalchemy, opentelemetry-sdk.
Sharing Notebooks
Save notebooks to Git (docs/ or a dedicated notebooks/ directory) so they can
be reviewed, versioned, and rendered in GitHub. Clear all outputs before committing
to keep diffs readable.