Lumen Observatory
A bounded model-monitoring platform built with synthetic network-service telemetry, keeping lineage, drift and limitations visible.
Local engineering build · synthetic demonstration data

- 9Python tests
- API, scoring, drift and asset contract
- 91.76%statement coverage
- Local pytest run on 07 September 2026
- 0.9235synthetic ROC AUC
- Generated 1,100-sample holdout only
- 2responsive captures
- 1,440px desktop and 390px mobile checkpoint
Why this build.
The slice is deliberately small: one synthetic telemetry problem, one reproducible artefact and enough surrounding evidence to challenge it.
After .NET and Java, Lumen responds to Python, data, model-monitoring and cloud-service signals in target banking and telecommunications roles.
Govern the measurement as well as the model.
A score keeps its input and model version together. Drift monitoring compares the recent input distribution with training data, while the interface makes the limits of synthetic evidence visible.
A reading stays connected to its context.
- Training baseline
- Recent inputs
- Drift observation
Input, score and model version remain attributable
From generated input to monitoring
- Generate
Seed 404 creates bounded infrastructure telemetry with controlled label noise.
- Train
A random forest is accepted only when generated holdout ROC AUC reaches 0.85.
- Score
FastAPI validates the reading and persists probability, band, signals and version.
- Observe
Population stability and Prometheus metrics expose changes around the model.
The stack and the reason.
The Python service adds typed APIs, reproducible model training and monitoring evidence to the engineering series. The scope stays focused on the complete local lifecycle.
- Python 3.14 + FastAPI 0.139
- Typed APIs and another backend ecosystem beyond .NET and Java.
- scikit-learn 1.9
- A reproducible training path, model artefact and explicit release gate.
- PostgreSQL 17
- Every synthetic reading keeps its inputs, output and model version together.
- PSI + Prometheus
- Input-distribution change and service behaviour remain inspectable.
- Docker + GitHub Actions
- A non-root runtime and pinned verification workflow.
Implemented boundaries.
Generated evidence
Training and seeded interface data are visibly synthetic.
Version lineage
Each score records the model version that produced it.
Drift visibility
PSI compares recent inputs with the training baseline.
Durable readings
PostgreSQL keeps the measured input and result together.
The evidence checkpoint.
Ruff, strict mypy and nine pytest checks passed locally on 07 September 2026 with 91.76% statement coverage under a targeted warning policy. Project-owned deprecations are promoted to errors; one understood third-party warning is filtered. Docker/PostgreSQL readiness, Prometheus output and one complete desktop/mobile scoring flow remain the separate 15 July 2026 checkpoint.
- Generated infrastructure telemetry only; no person or customer data.
- Contextual signals orient investigation but are not causal explanations.
- Holdout metrics do not claim performance on a real telecommunications network.
- Local repository and noindex case study; no public or cloud deployment implied.
This case study is kept outside search indexing. The repository is local, and these checkpoints establish local behaviour.