11import asyncio
22from datetime import timedelta
33
4+ import opentelemetry .context
45from opentelemetry import trace
56
67# See note in README about why Thrift
910from opentelemetry .sdk .trace import TracerProvider
1011from opentelemetry .sdk .trace .export import BatchSpanProcessor
1112from temporalio import activity , workflow
12- from temporalio .bridge import telemetry
13+ from temporalio .bridge .runtime import (
14+ MetricsConfig ,
15+ OpenTelemetryConfig ,
16+ Runtime ,
17+ TelemetryConfig ,
18+ )
1319from temporalio .client import Client
1420from temporalio .contrib .opentelemetry import TracingInterceptor
1521from temporalio .worker import Worker
@@ -34,30 +40,38 @@ async def compose_greeting(name: str) -> str:
3440interrupt_event = asyncio .Event ()
3541
3642
37- def init_opentelemetry () -> None :
43+ def init_runtime_with_telemetry () -> Runtime :
3844 # Setup global tracer for workflow traces
3945 provider = TracerProvider (resource = Resource .create ({SERVICE_NAME : "my-service" }))
4046 provider .add_span_processor (BatchSpanProcessor (JaegerExporter ()))
4147 trace .set_tracer_provider (provider )
4248
4349 # Setup SDK metrics to OTel endpoint
44- telemetry .init_telemetry (
45- telemetry .TelemetryConfig (
46- otel_metrics = telemetry .OtelCollectorConfig (
47- url = "http://localhost:4317" , headers = {}
50+ return Runtime (
51+ telemetry = TelemetryConfig (
52+ # TODO(cretz): Remove type ignore when
53+ # https://github.com/temporalio/sdk-python/issues/198 fixed
54+ metrics = MetricsConfig ( # type: ignore
55+ opentelemetry = OpenTelemetryConfig (
56+ url = "http://localhost:4317" , headers = {}
57+ )
4858 )
4959 )
5060 )
5161
5262
5363async def main ():
54- init_opentelemetry ()
64+ runtime = init_runtime_with_telemetry ()
65+
66+ # See https://github.com/temporalio/sdk-python/issues/199
67+ opentelemetry .context .get_current ()
5568
5669 # Connect client
5770 client = await Client .connect (
5871 "localhost:7233" ,
5972 # Use OpenTelemetry interceptor
6073 interceptors = [TracingInterceptor ()],
74+ runtime = runtime ,
6175 )
6276
6377 # Run a worker for the workflow
0 commit comments