-
Notifications
You must be signed in to change notification settings - Fork 895
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
[configuration] Add exception for 'false default' when there is a double negation #4351
base: main
Are you sure you want to change the base?
Conversation
Co-authored-by: Robert Pająk <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I support but would recommend that it be left open through at least the Tue, Jan 21 spec meeting given the contentious discussion around the topic previously.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is introducing ambiguity and inconsistency to a clear and well litigated part of the specification. It is only substantiated with a biased subjective opinion about an undefined user-base.
The prior decision for this part of the specification was made on logical reasoning. There are neither objective data nor facts being presented here that add to the prior discussion. Do these exist? Can you provide them to motivate this change?
The added ambiguity and inconsistency deteriorate the specification and should not be accepted without better motivation.
Could you clarify what is biased about my or others opinion here?
I think I have been very clear about the user base that motivated this decision: Collector users. The discussion that followed also showed other artifacts within OpenTelemetry that do not follow this approach. What is undefined about this?
#4344 (comment), #4344 (comment) and #4344 (comment) are objective data showing how this convention is not followed elsewhere in OpenTelemetry. I am happy to dig up more, but before I spend any further effort on this, I would like to step back and clarify what evidence would you consider as 'objective data'. What kind of evidence would make you change your mind?
The sentence this PR modifies in the spec is inconsistent with several software artifacts end users use that are under the OpenTelemetry umbrella. I disagree that this adds any inconsistency. Furthermore, I think the sentence has around the same level of ambiguity as the existing text. Could you give examples where this is more ambiguous than before?
Again, I think we need to step back and think: what motivation would we need? I don't want to spend effort on this if there is no motivation that would justify this change for you. |
You represent a specific demographic with inherent bias. |
This is too narrow of a scope to claim it is representative of OpenTelemetry users. What about all the other languages being used, do you have data representing their expectations? |
These are all instances where different choices were made. These choice, again, are framed with biased subjective opinions. They do not address any reasoning from #2755 or add anything new to that discussion. |
I would appreciate that. I'm looking for user feedback, not OTel developer opinions, that represent this view. I would like the data to show not only those that are motivated to complain in an issue about the current state of things, but also shows how many users appreciate the current form of our environment variables. |
An OTel user-survey would help in this regard. |
Adding an exception that directly contradicts and existing recommendation is ambiguous. It leaves the reader with an unclear understanding about what they need to do. Especially since we already have prior art where the non-normative "exception" has been ignored. |
I appreciate that fact. However, I would ask that it also be understood that much effort has already gone into the decision that resulted in our current state. This will reverse that decision. It seems reasonable that we require some level of effort to provide objective facts and data to motivate the change. Without such we will not be making an effective decision and likely just find ourselves back here in a few months. |
I tend to agree with @MrAlias here - the existing wording is very clear and simple, the added caveat makes it worse. The "double negation" argument tries to fix poor data modeling / naming by introducing a caveat to the spec that breaks the fundamental principle - unset values are defaulted to "zero" value, which for Booleans is false. I would rather fix the naming. I agree that |
I think @yurishkuro brings up a good point -- the existing guidance is clear and definitive, and loosening this requirement adds a lot of potential confusion. Is there some motivating examples for why we couldn't change names in order to allow for false defaults? |
from the Java agent perspective (#4344 (comment)):
|
Yeah, that is kinda annoying... is this something we can ensure that's normalized in the new config file stuff and just preserve the existing implementations? |
I think that's the goal of this PR, but maybe it's not expressed well (or in the right place in the spec?), would appreciate any concrete suggestions on how to achieve this goal in specification language @MrAlias @yurishkuro |
if we're talking specifically about the situation where multiple instrumentations can be |
yeah, this sounds like a nice approach when configuration properties are limited to key/value pairs, but I think the Declarative Configuration SIG has ruled out any kind of built-in merge/overlay support for declarative (yaml) configuration |
the presets approach does not contradict declarative configuration (e.g. golangci yaml config uses it) |
As of today .NET Automatic Instrumentation has a lot of Related issue: open-telemetry/opentelemetry-dotnet-instrumentation#1633 CC @open-telemetry/dotnet-instrumentation-maintainers (please double-check) |
Relates to #4344.
Changes
Adds exception to naming and default value rule for environment variables.
This is a backwards compatible change since the original statement is phrased as a 'SHOULD'. The
OTEL_SDK_DISABLED
deviates from this new norm (this is not a spec violation but a lack of consistency).The wording tries to be similar to the one in footnote [1] here: https://github.com/open-telemetry/opentelemetry-specification/blob/v1.40.0/specification/protocol/exporter.md
There are several OpenTelemetry artifacts that are either not bound by the specification or have decided, for usability reasons, to not follow this rule in this case. This change would, I argue, bring more consistency and less confusion to end users.
I plan to submit a follow-up PR to change
MeterConfig.disabled
toMeterConfig.enabled
if this PR is accepted.I don't plan to submit a PR to migrate
OTEL_SDK_DISABLED
, but this could be done if there is interest.Thanks to @pellared for guidance on this :)
For non-trivial changes, follow the change proposal process.
enabled
convention #4344Links to the prototypes (when adding or changing features)(not applicable)CHANGELOG.md
file updated for non-trivial changesspec-compliance-matrix.md
updated if necessary