Metadata-Version: 2.4
Name: opentelemetry-instrumentation-oslo-messaging
Version: 0.0.1
Summary: OpenStack oslo.messaging instrumentation for OpenTelemetry
Author-email: Pham Le Gia Dai <daipham3213@gmail.com>
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.10
Requires-Dist: opentelemetry-api
Requires-Dist: opentelemetry-instrumentation
Requires-Dist: opentelemetry-semantic-conventions
Requires-Dist: opentelemetry-util-http
Provides-Extra: instruments
Requires-Dist: oslo-messaging; extra == 'instruments'
Description-Content-Type: text/markdown

# OpenTelemetry oslo.messaging Instrumentation

OpenStack oslo.messaging instrumentation for OpenTelemetry.

It patches the client-side entry points so outgoing messages are traced and the
active trace context travels with the message:

- `RPCClient.call` → a `CLIENT` span `oslo.messaging.rpc.call`
- `RPCClient.cast` → a `PRODUCER` span `oslo.messaging.rpc.cast`
- `Notifier._notify` → a `PRODUCER` span `oslo.messaging.notification.publish`

For each traced call the current context is injected into the request context's
`_otel_context` carrier so a consumer instrumented the same way can continue the
trace. Message payloads are never recorded as span attributes.

## Usage

```python
from opentelemetry.instrumentation.oslo_messaging import (
    OsloMessagingInstrumentor,
)

OsloMessagingInstrumentor().instrument()
```
