1616 Interceptor ,
1717 UnsandboxedWorkflowRunner ,
1818)
19- from temporalio .runtime import Runtime , TelemetryConfig , OpenTelemetryConfig
19+ from temporalio .runtime import Runtime , TelemetryConfig , OpenTelemetryConfig , OpenTelemetryMetricTemporality
2020from temporalio .converter import (
2121 PayloadCodec ,
2222 DataConverter ,
@@ -99,6 +99,8 @@ async def get_temporal_client(
9999 payload_codec : PayloadCodec | None = None ,
100100 data_converter : DataConverter | None = None ,
101101 metrics_headers : dict [str , str ] | None = None ,
102+ metrics_use_http : bool = False ,
103+ metrics_temporality_delta : bool = False ,
102104) -> Client :
103105 if plugins != []: # We don't need to validate the plugins if they are empty
104106 _validate_plugins (plugins )
@@ -147,6 +149,12 @@ async def get_temporal_client(
147149 runtime = Runtime (telemetry = TelemetryConfig (metrics = OpenTelemetryConfig (
148150 url = metrics_url ,
149151 headers = metrics_headers or {},
152+ http = metrics_use_http ,
153+ metric_temporality = (
154+ OpenTelemetryMetricTemporality .DELTA
155+ if metrics_temporality_delta
156+ else OpenTelemetryMetricTemporality .CUMULATIVE
157+ ),
150158 )))
151159 connect_kwargs ["runtime" ] = runtime
152160 client = await Client .connect (** connect_kwargs )
@@ -166,6 +174,8 @@ def __init__(
166174 payload_codec : PayloadCodec | None = None ,
167175 data_converter : DataConverter | None = None ,
168176 metrics_headers : dict [str , str ] | None = None ,
177+ metrics_use_http : bool = False ,
178+ metrics_temporality_delta : bool = False ,
169179 ):
170180 self .task_queue = task_queue
171181 self .activity_handles = []
@@ -180,6 +190,8 @@ def __init__(
180190 self .interceptors = interceptors
181191 self .metrics_url = metrics_url
182192 self .metrics_headers = metrics_headers
193+ self .metrics_use_http = metrics_use_http
194+ self .metrics_temporality_delta = metrics_temporality_delta
183195 self .payload_codec = payload_codec
184196 self .data_converter = data_converter
185197
@@ -218,6 +230,8 @@ async def run(
218230 plugins = self .plugins ,
219231 metrics_url = self .metrics_url ,
220232 metrics_headers = self .metrics_headers ,
233+ metrics_use_http = self .metrics_use_http ,
234+ metrics_temporality_delta = self .metrics_temporality_delta ,
221235 payload_codec = self .payload_codec ,
222236 data_converter = self .data_converter ,
223237 )
0 commit comments