diff --git a/src/agentex/lib/core/temporal/workers/worker.py b/src/agentex/lib/core/temporal/workers/worker.py index 0cfe01185..3cf6cdc77 100644 --- a/src/agentex/lib/core/temporal/workers/worker.py +++ b/src/agentex/lib/core/temporal/workers/worker.py @@ -98,6 +98,7 @@ async def get_temporal_client( plugins: list = [], payload_codec: PayloadCodec | None = None, data_converter: DataConverter | None = None, + metrics_headers: dict[str, str] | None = None, ) -> Client: if plugins != []: # We don't need to validate the plugins if they are empty _validate_plugins(plugins) @@ -143,7 +144,10 @@ async def get_temporal_client( if not metrics_url: client = await Client.connect(**connect_kwargs) else: - runtime = Runtime(telemetry=TelemetryConfig(metrics=OpenTelemetryConfig(url=metrics_url))) + runtime = Runtime(telemetry=TelemetryConfig(metrics=OpenTelemetryConfig( + url=metrics_url, + headers=metrics_headers or {}, + ))) connect_kwargs["runtime"] = runtime client = await Client.connect(**connect_kwargs) return client @@ -161,6 +165,7 @@ def __init__( metrics_url: str | None = None, payload_codec: PayloadCodec | None = None, data_converter: DataConverter | None = None, + metrics_headers: dict[str, str] | None = None, ): self.task_queue = task_queue self.activity_handles = [] @@ -174,6 +179,7 @@ def __init__( self.plugins = plugins self.interceptors = interceptors self.metrics_url = metrics_url + self.metrics_headers = metrics_headers self.payload_codec = payload_codec self.data_converter = data_converter @@ -211,6 +217,7 @@ async def run( temporal_address=os.environ.get("TEMPORAL_ADDRESS", "localhost:7233"), plugins=self.plugins, metrics_url=self.metrics_url, + metrics_headers=self.metrics_headers, payload_codec=self.payload_codec, data_converter=self.data_converter, )