Shared observability primitives (health models, logging, middleware, Sentry, Prometheus) for the Juniper ML platform
Project description
juniper-observability
Shared observability primitives for the Juniper ML platform.
What's in here
- Health models (
DependencyStatus,ReadinessResponse) — Pydantic models for the standard/v1/health/readyresponse shape used by every Juniper server. - Probe utility (
probe_dependency) — synchronous HTTP health-check helper. - Logging (
JuniperJsonFormatter,configure_logging) — structured-JSON logging withrequest_idpropagation. - Middleware (
RequestIdMiddleware,PrometheusMiddleware) — Starlette middlewares applied by every Juniper server. The Prometheus middleware bounds label cardinality per the R1.1 contract. - Constants (
UNMATCHED_ENDPOINT_LABEL,READINESS_HEADER,LIVENESS_TICK_BUDGET_MS,LIVENESS_STALENESS_SECONDS) — pinned values from the R1.1, R1.2, and R1.3 cross-service contracts. - Prometheus utilities (
get_prometheus_app,set_build_info). - Sentry init (
configure_sentry) — with the SEC-10before_sendhook always installed.
Install
pip install juniper-observability # core only
pip install "juniper-observability[prometheus]" # + Prometheus middleware/utilities
pip install "juniper-observability[sentry]" # + Sentry init
pip install "juniper-observability[all]" # everything
Per-service metrics stay in each repo
This package intentionally exposes only cross-cutting observability infrastructure. Service-specific metric definitions (training-loop counters, dataset-gen histograms, websocket gauges, etc.) live in their owning repo and use the lazy-init pattern with prometheus_client directly.
Design + migration
See notes/code-review/METRICS_MONITORING_R2.1_SHARED_OBSERVABILITY_DESIGN_2026-04-28.md in the parent juniper-ml repo for the full design and the 5-PR migration sequence.
License
MIT — see LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file juniper_observability-0.1.1.tar.gz.
File metadata
- Download URL: juniper_observability-0.1.1.tar.gz
- Upload date:
- Size: 17.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d3b8c2d0bc2a9d9f054d55abeabfb917d5bb79515861b6ff236b1a6d7d596569
|
|
| MD5 |
3f39a1eed88506ccac18d5a3d32af916
|
|
| BLAKE2b-256 |
21535c4fb21a24d3504690f83a13aa42b04992696ee95d0ff20de61f070f0067
|
Provenance
The following attestation bundles were made for juniper_observability-0.1.1.tar.gz:
Publisher:
publish-observability.yml on pcalnon/juniper-ml
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
juniper_observability-0.1.1.tar.gz -
Subject digest:
d3b8c2d0bc2a9d9f054d55abeabfb917d5bb79515861b6ff236b1a6d7d596569 - Sigstore transparency entry: 1399382777
- Sigstore integration time:
-
Permalink:
pcalnon/juniper-ml@271984d887e21f330eeecaec5c08e6758fac3e4a -
Branch / Tag:
refs/tags/juniper-observability-v0.1.1 - Owner: https://github.com/pcalnon
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-observability.yml@271984d887e21f330eeecaec5c08e6758fac3e4a -
Trigger Event:
push
-
Statement type:
File details
Details for the file juniper_observability-0.1.1-py3-none-any.whl.
File metadata
- Download URL: juniper_observability-0.1.1-py3-none-any.whl
- Upload date:
- Size: 14.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3df04cfcd2c3033c3279ff5b953f8c046593759893921909b09d0dad5abff6e6
|
|
| MD5 |
699900b26b7f70009d9fb7f2d4f18aae
|
|
| BLAKE2b-256 |
8cfe2c39759663188678f46babc5adb20eef770bf419bdd4bdd58762d6e31e9d
|
Provenance
The following attestation bundles were made for juniper_observability-0.1.1-py3-none-any.whl:
Publisher:
publish-observability.yml on pcalnon/juniper-ml
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
juniper_observability-0.1.1-py3-none-any.whl -
Subject digest:
3df04cfcd2c3033c3279ff5b953f8c046593759893921909b09d0dad5abff6e6 - Sigstore transparency entry: 1399382780
- Sigstore integration time:
-
Permalink:
pcalnon/juniper-ml@271984d887e21f330eeecaec5c08e6758fac3e4a -
Branch / Tag:
refs/tags/juniper-observability-v0.1.1 - Owner: https://github.com/pcalnon
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-observability.yml@271984d887e21f330eeecaec5c08e6758fac3e4a -
Trigger Event:
push
-
Statement type: