-
Notifications
You must be signed in to change notification settings - Fork 911
Fixed Schema Telemetry Producers can't be declared stable #2606
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
Comments
In this hypothetical scenario are two instrumentations different libraries or different versions of the same library? I will assume the question is about different libraries. In that case the consumers can look at the scope name (which contains the library name) and deduce the used schema.
Yes, I agree it is a bad process and places too much burden on the backends. A better process is based on Schema URLs and Schema transforms. The reason for existence of Fixed Schema producers was to serve as a temporary solution until the instrumentation adopts the usage of Schema URLs.
The stability guaranteed is the following:
If this is not clear from the spec we can add clarifications.
It is a possibility. It removes the intermediary "not completely unstable, but also not yet sophisticated enough to use schema urls" state. I don't mind doing it if we think this intermediary state is unnecessary and we think we can increase adoption of schema-driven instrumentations quickly. |
Let's assume we have two stable instrumentations which don't populate schema URL. One of them implements version
X
, and another implements versionY
(probable case for different languages or different product instrumentations).Y
is backward compatible withX
.If the difference between versions is significant (but
Y
is backward compatible withX
), consumers would likely process and visualize such versions differently.If version information is missing, consumers might still attempt to detect it, but it would require all consumers to be aware of all past versions of conventions. Also, this is an error-prone, inefficient, and tedious process that we should not expect backends to do.
So if we allow instrumentation to leave schema URL blank, we have to explicitly specify what it means for producers and consumers, how stability is guaranteed: e.g. it's assumed to be the first stable version of this semantic convention. Then all consumers can process such telemetry according to that version and all producers must only implement this version.
Another approach would be to declare all versionless producers to be unstable - any consumer update can break them since consumers can't deduce the version from telemetry and treat it properly
The text was updated successfully, but these errors were encountered: