Skip to main content
Opik Documentation

Search documentation

Type to search this documentation.

On this pageOverview

Observability for Temporal with Opik

Temporal Python SDK integrates with OpenTelemetry through TracingInterceptor.

Use this if your Temporal Python client/worker should emit trace spans to Opik.

For full endpoint/header details, see Opik OpenTelemetry overview.

wordWrap
export OTEL_EXPORTER_OTLP_ENDPOINT=https://www.comet.com/opik/api/v1/private/otel
export OTEL_EXPORTER_OTLP_HEADERS='Authorization=<your-api-key>,Comet-Workspace=<your-workspace>,projectName=<your-project-name>'

Required headers: Authorization, Comet-Workspace Optional headers: projectName

wordWrap
export OTEL_EXPORTER_OTLP_ENDPOINT=https://<comet-deployment-url>/opik/api/v1/private/otel
export OTEL_EXPORTER_OTLP_HEADERS='Authorization=<your-api-key>,Comet-Workspace=<your-workspace>,projectName=<your-project-name>'

Required headers: Authorization, Comet-Workspace Optional headers: projectName

wordWrap
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:5173/api/v1/private/otel
export OTEL_EXPORTER_OTLP_HEADERS='projectName=<your-project-name>'

Required headers: none by default Optional headers: projectName, auth headers if enabled

Intent: Attach Temporal's OTEL interceptor so workflow/activity spans are emitted by client and worker.

Applies when: You use Temporal Python SDK with custom client/worker bootstrap code.

Required inputs:

  • Temporal client and worker setup
  • interceptor attached to both paths where needed
  • OTEL endpoint/header env vars

Optional inputs:

  • explicit resource/service-name attributes
  • collector-based enrichment/sampling

Minimal valid setup:

Python
from temporalio.client import Client
from temporalio.worker import Worker
from temporalio.contrib.opentelemetry import TracingInterceptor

tracing_interceptor = TracingInterceptor()

# In async context:
# client = await Client.connect("localhost:7233", interceptors=[tracing_interceptor])
# worker = Worker(client, task_queue="my-task-queue", workflows=[...], activities=[...], interceptors=[tracing_interceptor])
  1. Start worker and client with TracingInterceptor.
  2. Execute a workflow with at least one activity.
  3. Confirm workflow/activity spans land in the expected Opik project.
Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu