Unreleased Release Notes

8.1.0-8

New Features

  • Adds a new TracingMiddleware that provides OpenTelemetry distributed tracing for OpenStack services. The middleware creates a span for each incoming HTTP request, captures standard HTTP attributes and OpenStack-specific metadata (request ID, project ID, user ID), and propagates W3C TraceContext headers (traceparent/tracestate) across services.

    Tracing is disabled by default and can be enabled via the [oslo_middleware_tracing] configuration group. When disabled, the middleware is a zero-overhead passthrough. The required OpenTelemetry packages can be installed via the new tracing-http or tracing-grpc extras:

    pip install oslo.middleware[tracing-http]
    

    Services can add tracing by declaring a paste filter:

    [filter:tracing]
    paste.filter_factory = oslo_middleware:TracingMiddleware.factory
    

    Traces are exported via OTLP (HTTP or gRPC) to any compatible backend such as Grafana Tempo, Jaeger, or an OpenTelemetry Collector.

Upgrade Notes

  • Support for Python 3.10 has been removed. Now the minimum python version supported is 3.11.

Deprecation Notes

  • The oslo_middleware.version module and associated objects has been deprecated for removal. Prefer use of importlib.metadata to inspect version information for installed packages.