For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Copy to LLMGithubGo to App
DocumentationIntegrationsBuilding Self-Improving AgentsSelf-hosting OpikSDK & API reference
DocumentationIntegrationsBuilding Self-Improving AgentsSelf-hosting OpikSDK & API reference
    • Overview
  • TypeScript
    • Opik TypeScript SDK
  • Python
      • AG2
      • Agent Spec
      • Agno
      • BeeAI
      • Claude Agent SDK
      • Autogen
      • CrewAI
      • DSPy
      • Google ADK
      • Haystack
      • Harbor
      • Instructor
      • LangChain
      • LangGraph
      • LangServe
      • LiveKit Agents
      • Llama Index
      • Microsoft Agent Framework
      • OpenAI Agents
      • Pipecat
      • Pydantic AI
      • Semantic Kernel
      • Smolagents
      • Strands Agents
      • Temporal
      • VoltAgent
    • Opik Python SDK
    • OpenTelemetry Python SDK
  • Java
    • Spring AI
    • Quarkus LangChain4j
  • .NET
  • Ruby
    • OpenTelemetry Ruby SDK
  • No-Code
    • Cursor
    • Dify
    • Flowise
    • Langflow
    • n8n
    • OpenClaw
    • OpenAI Codex
    • OpenWebUI
    • Prompt Flow
  • Multi-Language
    • OpenTelemetry
LogoLogo
Copy to LLMGithubGo to App
On this page
  • When this guide applies
  • Opik OTLP endpoint modes
  • Example (Temporal Python SDK interceptor)
  • Validation
  • Source references
PythonFrameworks

Observability for Temporal with Opik

Was this page helpful?
Previous

Observability for VoltAgent with Opik

Next
Built with

Temporal Python SDK integrates with OpenTelemetry through TracingInterceptor.

When this guide applies

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

Opik OTLP endpoint modes

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

Opik Cloud
Enterprise deployment
Self-hosted instance
$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

Example (Temporal Python SDK interceptor)

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:

1from temporalio.client import Client
2from temporalio.worker import Worker
3from temporalio.contrib.opentelemetry import TracingInterceptor
4
5tracing_interceptor = TracingInterceptor()
6
7# In async context:
8# client = await Client.connect("localhost:7233", interceptors=[tracing_interceptor])
9# worker = Worker(client, task_queue="my-task-queue", workflows=[...], activities=[...], interceptors=[tracing_interceptor])

Validation

  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.

Source references

  • Temporal Python SDK OpenTelemetry support
  • Opik OpenTelemetry overview