TracerOpenTelemetry exports distributed traces for every workflow and task execution using the OpenTelemetry standard. Each workflow becomes a parent span, each task becomes a child span with duration, status, retry events, and error details.
/// note
Requires pip install dotflow[otel]
///
pip install dotflow[otel]Traces are created internally by the SDK β no exporter is needed for the provider to work.
{* ./docs_src/config/tracer_opentelemetry_basic.py hl[2,21:23] *}
To visualize traces, add an exporter. The example below sends traces to the console and to any OTLP-compatible backend (Jaeger, Tempo, Datadog, etc.).
pip install opentelemetry-exporter-otlp-proto-grpc{* ./docs_src/config/tracer_opentelemetry.py hl[2:3,28:29] *}
docker run -d --name jaeger -p 16686:16686 -p 4317:4317 jaegertracing/all-in-one:latestRun the example and open http://localhost:16686 to see traces.
[Trace: workflow_id=550e8400...]
βββ [Span: task:0] 0.5s OK β Completed
βββ [Span: task:1] 1.2s OK β Completed
βββ [Span: task:2] 0.3s ERROR β Failed
βββ [Event: exception β ValueError "connection refused"]
| Attribute | Source |
|---|---|
dotflow.workflow_id |
task.workflow_id |
dotflow.task_id |
task.task_id |
dotflow.task.status |
task.status |
dotflow.task.duration |
task.duration |
dotflow.task.retry_count |
task.retry_count |
| ABC method | When | Span action |
|---|---|---|
start_workflow |
Manager.init | Creates parent span |
start_task |
TaskEngine.start() | Creates child span |
end_task |
TaskEngine.start() finally | Sets attributes, status, ends span |
end_workflow |
_callback_workflow | Sets workflow status, ends parent span |
| Backend | Exporter package |
|---|---|
| Jaeger | opentelemetry-exporter-otlp-proto-grpc |
| Grafana Tempo | opentelemetry-exporter-otlp-proto-grpc |
| Datadog | opentelemetry-exporter-otlp-proto-grpc |
| Honeycomb | opentelemetry-exporter-otlp-proto-grpc |
| New Relic | opentelemetry-exporter-otlp-proto-grpc |
| AWS X-Ray | opentelemetry-exporter-otlp-proto-grpc |
| Google Cloud Trace | opentelemetry-exporter-gcp-trace |
| Console (debug) | Built-in (ConsoleSpanExporter) |