We just released plone.observability 1.0.0, the first stable release. It brings Kubernetes-style health probes, a pluggable metrics endpoint, and optional OpenTelemetry tracing to Plone running in containers.
Plone's built-in @@ok view answers OK whether the database is reachable or not, right up until the process is too busy to answer at all. plone.observability gives an orchestrator and your monitoring stack the real signals they need.
What's in the box
Health probes. Separate liveness, readiness, and startup probes on a dedicated HTTP port that stays answerable even when all Zope worker threads are busy. Ready to wire into Kubernetes probe configuration.
Metrics. A pluggable metrics endpoint with Prometheus text and JSON output. Request, ZODB, and content metrics ship out of the box, designed with low-cardinality labels so they stay cheap to scrape and store.
OpenTelemetry tracing (optional extra). Honors the standard OTEL_* environment variables. Every request is traced, Blicca (the former Classic UI) and REST API alike: the publish span carries ZODB object-load counts and load time, and catalog queries, subrequests, content transforms, and commits show up as child spans. On zodb-pgjsonb, loads are additionally split into shared-cache hits vs. actual PostgreSQL round-trips. For Blicca, the render phase is traced in detail, with spans per viewlet manager, viewlet, portlet column, and portlet, so slow tiles and N+1 patterns become visible per request. Optional instrumentors (botocore, requests, urllib3, httpx) pull S3 blob access and outbound HTTP into the same trace, and a small start_span helper lets you add spans to your own code.
Extensible. Custom health checks, metric providers, and metric formatters plug in via the Zope Component Architecture.
Getting started
Works with Plone 6.2 on Python 3.10–3.14. Add plone.observability to your dependencies, include its ZCML, and wire the WSGI filters; the installation guide walks through the full setup.
Documentation: plone.observability 1.0.0b13 documentation
PyPI: Client Challenge
Source & issues: GitHub - plone/plone.observability: Kubernetes-style health probes and pluggable metrics for Plone. · GitHub
Changelog: plone.observability/CHANGES.md at main · plone/plone.observability · GitHub
Feedback, issues, and pull requests are very welcome!