Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Tracing] Allow Client libraries to configure schema URL #23307

Open
lmolkova opened this issue Aug 11, 2024 · 3 comments · May be fixed by #23715
Open

[Tracing] Allow Client libraries to configure schema URL #23307

lmolkova opened this issue Aug 11, 2024 · 3 comments · May be fixed by #23715
Labels
needs-triage Workflow: This is a new issue that needs to be triaged to the appropriate team. OpenTelemetry OpenTelemetry instrumentation (not Monitor-specific)

Comments

@lmolkova
Copy link
Member

See #23268 (comment) - different SDKs may emit telemetry of slightly different versions and we can't keep them in sync (e.g. servicebus and cosmosdb SDKs are owned by different teams, follow different semantic conventions, and prioritize telemetry differently, i.e. they need to be able to set different schema urls.

We currently hardcode and use schema url here - one for everyone:

tracer := tracerProvider.Tracer(namespace, trace.WithInstrumentationVersion(version), trace.WithSchemaURL(semconv.SchemaURL))

This is blocker to stabilize tracing plugin (and tracing for anything beyond http).

@lmolkova lmolkova added the OpenTelemetry OpenTelemetry instrumentation (not Monitor-specific) label Aug 11, 2024
@github-actions github-actions bot added the needs-triage Workflow: This is a new issue that needs to be triaged to the appropriate team. label Aug 11, 2024
@kjg
Copy link
Contributor

kjg commented Oct 28, 2024

@lmolkova It seems like current azcore is responsible for tracing the HTTP spans and Client libraries can add additional tracing on top of that. Would it make sense for the Client Libraries to use a separate Tracer than Azcore? That way Azcore could have one schema URL and client libraries could their own?

@lmolkova
Copy link
Member Author

@kjg absolutely!
One of the important (from otel perspective) this is that each tracer has a proper instrumentation scope (library name) so that it's clear where the telemetry is coming from and also it's possible to configure it on per-scope level. I.e. we should create a tracer per client.

That's what we do in Java:

@kjg
Copy link
Contributor

kjg commented Oct 29, 2024

Thanks, this is so useful. I see here where the java version of azcore creates its own named tracer. I'll see if I can give a shot updating this go version to do the same!

@kjg kjg linked a pull request Nov 8, 2024 that will close this issue
5 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
needs-triage Workflow: This is a new issue that needs to be triaged to the appropriate team. OpenTelemetry OpenTelemetry instrumentation (not Monitor-specific)
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants