From 8e2d1db56e4da8eb153de17335f1209b7c9cc2a6 Mon Sep 17 00:00:00 2001 From: Alex Kondratev Date: Wed, 26 Nov 2025 21:11:06 +0300 Subject: [PATCH 1/2] add otel docs --- docs/available-components/middlewares.md | 38 +++++++++++++++++++++++- taskiq/instrumentation.py | 2 +- 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/docs/available-components/middlewares.md b/docs/available-components/middlewares.md index 4bd28e5d..4255ec2e 100644 --- a/docs/available-components/middlewares.md +++ b/docs/available-components/middlewares.md @@ -87,7 +87,7 @@ Use jitter and exponential backoff to avoid repetitive load peaks, especially in ### Prometheus middleware -You can enable prometheus metrics for workers by adding PrometheusMiddleware. +You can enable prometheus metrics for workers by adding `PrometheusMiddleware`. To do so, you need to install `prometheus_client` package or you can install metrics extras for taskiq. ::: tabs @@ -118,3 +118,39 @@ broker = ZeroMQBroker().with_middlewares( After that, metrics will be available at port 9000. Of course, this parameter can be configured. If you have other metrics, they'll be shown as well. + +### OpenTelemetry Middleware + +You can enable opentelemetry tracing for workers by adding `OpenTelemetryMiddleware` or using `TaskiqInstrumentor` (preferred). + +```bash +pip install "taskiq[opentelemetry]" +``` + +::: tabs + + +@tab instrumentor + +```python +from taskiq import ZeroMQBroker +from taskiq.instrumentation import TaskiqInstrumentor + +TaskiqInstrumentor().instrument() +broker = ZeroMQBroker() +``` + +@tab middleware + +```python +from taskiq import ZeroMQBroker +from taskiq.middlewares.opentelemetry_middleware import OpenTelemetryMiddleware + +broker = ZeroMQBroker().with_middlewares( + OpenTelemetryMiddleware, +) +``` + +::: + +Autoinstrumentation is also supported. diff --git a/taskiq/instrumentation.py b/taskiq/instrumentation.py index 665dacaf..ed542c7b 100644 --- a/taskiq/instrumentation.py +++ b/taskiq/instrumentation.py @@ -12,7 +12,7 @@ import asyncio - from taskiq import InMemoryBroker, TaskiqEvents, TaskiqState + from taskiq import InMemoryBroker from taskiq.instrumentation import TaskiqInstrumentor broker = InMemoryBroker() From 02f7ad48c3eaad1c50acf1f41052bd24993a8a39 Mon Sep 17 00:00:00 2001 From: Alex Kondratev Date: Wed, 26 Nov 2025 21:23:30 +0300 Subject: [PATCH 2/2] fix typo --- docs/available-components/middlewares.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/available-components/middlewares.md b/docs/available-components/middlewares.md index 4255ec2e..f21d9488 100644 --- a/docs/available-components/middlewares.md +++ b/docs/available-components/middlewares.md @@ -153,4 +153,4 @@ broker = ZeroMQBroker().with_middlewares( ::: -Autoinstrumentation is also supported. +Auto-instrumentation is also supported.