-
Notifications
You must be signed in to change notification settings - Fork 893
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
User feedback for the semantic convention #1908
Comments
The set of routes should be bounded by the application code, so while there may be quite a few routes, at least it should not depend on what input data you get, etc. |
Do you think separating/removing the query string would help? The path part of the URL can just as well contain sensitive information. I agree that this is a topic that is not adequately addressed in the OpenTelemetry spec yet. Probably there should to be an option to omit the URL (instead setting maybe just http.host) or running a regex-replace over it. |
For database, there is not really much of a "core". There is SQL and then there are all the other DBs were it is not obvious how to fill in anything. Separating out technologies into separate documents could still be reasonable. |
One advantage of this would be that the document status can be defined with more granularity. For example, general database semantic conventions could be stable, while Cassandra convents could still be experimental. This might make it easier to add experimental conventions for specific technologies (I assume approvers will be more strict when it comes to extend documents in a stable status). |
I think it boils down to defining versioning and stability guidelines for semantic conventions, and then to bring semantic convention documents to a stable state (and thus make them subject to those stability guidelines). |
The set of routes is bounded by the application code, that's correct. However, in a large organisation which has thousands of services/applications and new services get created every day, it gets uncontrollable. It would definitely help if we can have this case considered in the guideline and use a more generic span name e.g. "HTTP GET" |
Removing any dynamic part in the URL is what we think would help and what we're applying now. e.g. |
Isn't that the same as disabling |
I can see how this would help reduce your Lightstep costs, but generally I believe the current semantic convention is more useful as default. A configuration option to use the generic name could make sense though. |
Wouldn't they count "key operations" as service+operation combinations? Counting just the endpoint name seems very odd. |
That's correct, in our code we ended up setting |
Ok, after the points made, I'm willing to accept that the HTTP route is reasonable as a span name. The spec does state to use "HTTP {METHOD_NAME}" as a backup, if the route isn't known by the instrumentation. I think that's reasonable too, and those with cardinality concerns should employ that. |
With regards to separating out technologies from core sections of the semconv: it seems there is interest in this.
Thanks @pyohannes, that's a great point that I didn't even think of initially. It could help the semantic convention towards being stable. If anyone can think of why we wouldn't do this, hearing any counterpoints would be good. To get something like this merged, would it need an OTEP first or can a PR be raised directly? |
OTEPs are for new features, just for refactoring existing conventions I'd go directly to a PR. |
what's the benefit of having a route in both: span name and attribute? |
Some (most?) backends use span name as a basis for trace grouping/aggregation. Downgrading them to just "HTTP GET" will be a significant loss of functionality. |
Many tracing tools present the span name for many spans simultaneously in a waterfall view, but none of the attributes, In this view having slightly more information than simply |
Also, the span name is meant as potential sampling key, e.g. it is currently sensible to rate-limit per span name. The purpose of the span name was discussed extensively in #557 and related PRs. |
@Oberon00 do you think those discussions have not been translated into the spec itself? I don't expect people to never ask the same question "why span name is this way", but ideally we should be able to point to an explanation in the spec itself, rather than to long discussions in closed tickets / PRs. |
it can be done using
I think the argument here is backcompat, but the current HTTP spec is experimental and we have a chance to make it non-redundant and simple now or it's never going to happen. I'd propose to have a principle around conventions stabilization (until spec reaches stability):
|
since there is no way to unify all backends and make them literally repeat OTel conventions, let's separate OTel conventions and how they appear in UX. |
Alright, I'm happy to close this!
|
There is actually some movement:
|
During the 2021-08-31 instrumentation SIG, @tedsuo asked me to provide feedback on the semantic convention from an Atlassian perspective. We have been using and implementing the semantic convention for over 6 months now. Here are a few pieces of feedback we have for it.
Problem 1
The Semantic Convention seems flooded with specific details about technologies that aren’t relevant for the vast majority of users. As an arbitrary example, Cassandra takes up a sizeable chunk of the database trace convention. Is this unnecessary complexity for what could be a more general document?
Thoughts on Problem 1
Is there a good reason that the specific technologies for each category are listed as part of the core document? Would it be productive to separate out the technologies to "extend" the "core" sections of the conventions? I see that AWS SDK has its own instrumentation section, and wonder if something similar could be done for the many specific technologies that form part of the convention.
Problem 2
Some Semantic Convention guidelines are not practical.
Examples:
http.url
: the guidelines says to send the full URL, however this comes with it's own problems of user privacy, with possibly difficult-to-detect PII/UGC appearing in query strings.Problem 3
Breaking changes. In its experimental stages, the semantic convention has understandably been brittle to breaking changes.
Thoughts on Problem 3
I don't have any specific solution to this, but I believe mechanisms achieving translations between semantic convention versions are already being discussed. We would be highly in favour of this.
The text was updated successfully, but these errors were encountered: