Skip to main content

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/ready response shape used by every Juniper server.
  • Probe utility (probe_dependency) — synchronous HTTP health-check helper.
  • Logging (JuniperJsonFormatter, configure_logging) — structured-JSON logging with request_id propagation.
  • 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-10 before_send hook 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

juniper_observability-0.1.1.tar.gz (17.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

juniper_observability-0.1.1-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

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

Hashes for juniper_observability-0.1.1.tar.gz
Algorithm Hash digest
SHA256 d3b8c2d0bc2a9d9f054d55abeabfb917d5bb79515861b6ff236b1a6d7d596569
MD5 3f39a1eed88506ccac18d5a3d32af916
BLAKE2b-256 21535c4fb21a24d3504690f83a13aa42b04992696ee95d0ff20de61f070f0067

See more details on using hashes here.

Provenance

The following attestation bundles were made for juniper_observability-0.1.1.tar.gz:

Publisher: publish-observability.yml on pcalnon/juniper-ml

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file juniper_observability-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for juniper_observability-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3df04cfcd2c3033c3279ff5b953f8c046593759893921909b09d0dad5abff6e6
MD5 699900b26b7f70009d9fb7f2d4f18aae
BLAKE2b-256 8cfe2c39759663188678f46babc5adb20eef770bf419bdd4bdd58762d6e31e9d

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page