temporalio / sdk-go

Temporal Go SDK
https://docs.temporal.io/application-development?lang=go
MIT License
481 stars 197 forks source link

Temporal Opentelemetry interceptor to use (and export) new temporal header Carrier interface #1535

Open mcbadger88 opened 4 days ago

mcbadger88 commented 4 days ago

Is your feature request related to a problem? Please describe. When writing our own custom interceptor, we would like to be able to load/extract Opentelemetry data into the temporal headers using a common function that the temporal interceptor uses. This way we are guaranteed to get trace context propagation even if some components are using temporal's own interceptor vs some are using our custom interceptor.

Describe the solution you'd like

Describe alternatives you've considered

Additional context Tagging some of the authors who may have context or pointers, if I have the wrong people please let me know how best to tag the temporal opentelemetry experts. Appreciate your thoughts! @cretz @jvonfricken

This is an issue raised off the back of some discussions in this PR https://github.com/temporalio/sdk-go/pull/1534, apologies that I did not see the comment to raise an issue first until I had already raised it.

cretz commented 4 days ago

I see @Quinn-With-Two-Ns is already looking at the PR, will defer to him. In general while Temporal has an interceptor that that uses propagation to populate a single internal header, we encourage users to write their own interceptors to do what they need if they need something beyond that. We can discuss options on the OTel interceptor if it needs to have something configured.