oslo.reports
oslo.reports library
What it is and what it does
oslo.reports is a framework for generating structured diagnostic reports from running OpenStack services. It addresses the problem that logs alone don't capture the live state of a system—what threads are active, which config parameters are in effect, or what exceptions are currently being handled. The package provides a "guru meditation report" mechanism that collects this state into models (stack traces, thread info, exceptions, config, package versions) and serializes them to JSON, XML, or plain text via Jinja templates.
The framework is built on three layers: Models that define structured data for system state, Generators that populate those models with current runtime information, and Views that serialize the models to output formats. OpenStack projects can register custom generators to add project-specific diagnostic data. It depends on oslo.serialization, oslo.config, oslo.i18n, oslo.utils, Jinja2, psutil, and pbr—all mature OpenStack ecosystem libraries.
Use it for:
- Generate diagnostic snapshots when an OpenStack service encounters an error or hangs, capturing thread stacks and active configuration.
- Collect runtime state reports from production deployments to aid in triaging and debugging complex distributed system issues.
- Export system state in machine-readable formats (JSON, XML) for automated analysis or archival in incident response workflows.
- Extend with custom generators to include application-specific metrics or state in the diagnostic report.
- Inspect thread behavior and configuration state without stopping or restarting the running service.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
oslo.reports generates structured debug reports from running OpenStack services, capturing thread state, configuration, stack traces, and package information in JSON, XML, or templated text format.
Yes, if you are developing or operating an OpenStack service and need structured diagnostic reporting. The package is actively maintained, has no known vulnerabilities, and integrates cleanly with the oslo ecosystem. Not recommended for non-OpenStack projects unless you need a general-purpose runtime state capture framework and are willing to work with its OpenStack-centric design.
Install
oslo-reports on PyPI
pip
pip install oslo-reportsuv
uv add oslo-reportspoetry
poetry add oslo-reportsInstalling oslo.reports
Before you install
Low install friction with a pure-Python wheel. Active maintenance as of 35 days ago. Depends on 7 runtime packages including oslo.serialization, oslo.config, and Jinja2—all standard OpenStack libraries with established track records.
License in practice
Apache-2.0 permissive license allows use in commercial and proprietary projects with minimal restrictions; attribution required but no copyleft obligations.
Quickstart
pip install oslo.reports
from oslo_reports.guru_meditation_report import GuruMeditationReport
report = GuruMeditationReport()
print(report.format_report())
Requires Python 3.11 or later; designed for OpenStack deployments and most useful when integrated into an OpenStack service.
Verify before relying
- Whether the package works standalone or requires an OpenStack service context to be useful.
- Performance characteristics when generating reports from long-running processes with many threads.
- Customization API surface for adding project-specific generators and models beyond the documented standard set.
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.11) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 7 — pbr, Jinja2, oslo.serialization, psutil, oslo.i18n, oslo.utils, oslo.config |
| Maintenance | actively maintained — 35 days since the last release |
| First released | |
| Downloads | 165,160/month — #10,528 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: oslo_reports-3.9.0-py3-none-any.whl
Tags
More Monitoring packages
Wraps any iterable to display a real-time…
copyleft · top 100 on PyPI
opentelemetry-semantic-conventionsProvides generated Python code for…
permissive · top 100 on PyPI
opentelemetry-sdkProvides the reference implementation of the…
permissive · top 100 on PyPI
opentelemetry-apiProvides the abstract API and interfaces for…
permissive · top 100 on PyPI
opentelemetry-exporter-otlp-proto-httpExports OpenTelemetry observability data to an…
permissive · top 1,000 on PyPI
opentelemetry-instrumentationProvides automatic instrumentation commands and…
permissive · top 1,000 on PyPI
oslo.serializationoslo.serialization provides serialization and…
permissive · top 5,000 on PyPI
oslo.serviceoslo.service provides a framework for building…
permissive · top 15,000 on PyPI
oslo.logoslo.log provides standardized logging…
permissive · top 5,000 on PyPI
oslotestoslotest provides a testing framework with…
permissive · top 15,000 on PyPI
oslo.configParses command-line arguments and .ini-style…
permissive · top 5,000 on PyPI
oslo.vmwareoslo.vmware provides a library for common…
permissive · top 15,000 on PyPI
oslo.utilsoslo.utils provides common utility functions…
permissive · top 5,000 on PyPI
osprofilerOSProfiler generates distributed request traces…
permissive · top 15,000 on PyPI
oslo.policyoslo.policy enforces role-based access control…
permissive · top 15,000 on PyPI
oslo.versionedobjectsoslo.versionedobjects provides a versioned…
permissive · top 15,000 on PyPI