You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Google just released their tracing OTLP endpoint. This endpoint needs authorization metadata.
Tonic provides interceptors to inject auth metadata and those are exposed via WithTonicConfig::with_interceptor. In contrast to tonic, this interceptor is maintained outside of tonic and just allows returning metadata that is then set in the export functions.
Getting a valid bearer token normally requires an async operation, and interceptors are currently non-async only.
Currently, you would need to duplicate a lot of code to have blocking counterparts.
Describe the solution you'd like:
To support this kind of auth, opentelemetry-otlp should support adding async interceptors via WithTonicConfig.
The tonic native way would be using tower layers to add async interceptor functionality. There currently isn't a helper to do so. There is a standalone crate tonic-async-interceptor, but this also needs a tower layer.
With the current integration of interceptors in TonicTracesClient, the least invasive solution would provide an async interceptor variant that is just awaited in the returned future in export and would add the metadata to the request similarly to the current interceptor.
Considered Alternatives
No response
Additional Context
One common way would be to use gcp_auth which provides bearer tokens for use in an async manner.
Related Problems?
Google just released their tracing OTLP endpoint. This endpoint needs authorization metadata.
Tonic provides interceptors to inject auth metadata and those are exposed via
WithTonicConfig::with_interceptor
. In contrast to tonic, this interceptor is maintained outside of tonic and just allows returning metadata that is then set in theexport
functions.Getting a valid bearer token normally requires an async operation, and interceptors are currently non-async only.
Currently, you would need to duplicate a lot of code to have blocking counterparts.
Describe the solution you'd like:
To support this kind of auth,
opentelemetry-otlp
should support adding async interceptors viaWithTonicConfig
.The tonic native way would be using tower layers to add async interceptor functionality. There currently isn't a helper to do so. There is a standalone crate tonic-async-interceptor, but this also needs a tower layer.
With the current integration of interceptors in
TonicTracesClient
, the least invasive solution would provide an async interceptor variant that is just awaited in the returned future inexport
and would add the metadata to the request similarly to the current interceptor.Considered Alternatives
No response
Additional Context
One common way would be to use
gcp_auth
which provides bearer tokens for use in an async manner.Related: open-telemetry/opentelemetry-specification#4390 open-telemetry/opentelemetry-specification#1344
The text was updated successfully, but these errors were encountered: