apps/opik-documentation/documentation/fern/docs/tracing/integrations/temporal.mdx
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.
<Tabs> <Tab value="Opik Cloud" title="Opik Cloud"> ```bash 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`
</Tab>
<Tab value="Enterprise deployment" title="Enterprise deployment">
```bash 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`
</Tab>
<Tab value="Self-hosted instance" title="Self-hosted instance">
```bash 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
</Tab>
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:
Optional inputs:
Minimal valid setup:
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])
TracingInterceptor.