Feedback on Stability and Release Practices Proposal #3098
Replies: 3 comments 2 replies
-
|
There is a lot of good stuff in here @austinlparker thanks for putting it together. How do you plan to enforce this with so many distributions out there, is the objective to have a certification for distributions? I assume these crtiera would allow it to be certified in some way? Have you considered LTS versus "epoch" releases? In Kubernetes they always avoided this as it creates more work for the maintiners to patch/merge/build multiple versions. They expected the vendors to implement this which most of them have done and handle themselves. |
Beta Was this translation helpful? Give feedback.
-
|
This is probably already in the plans, but I think it'll be necessary in the OTEPs that come out of this proposal to lay out the rollout plan to get to that "stable by default" state. My main concern is around instrumentation libraries and collector components. The fact is that a lot of current end-user experiences and workflows are built on components that are not stable, and having a breaking change of this scale (to disable them) will create confusion for end-users and toil for those supporting those experiences (i.e. observability platform teams and vendors getting customers reporting broken experiences). For instance, if we were to roll out a standard feature flag option to control disabling unstable instrumentations/components, some folks will understand that they're building that on unstable components and enable it. However, those that don't read release docs, (or SDK/collector startup logs) will be the ones that probably fail to set that flag when upgrading, and then get frustrated. Effectively, the way I interpret the effort of "unstable is disabled by default" is, in a way, an added layer of stability to what observability teams and vendors have been doing with their own distros and consolidated configs. E.g. in the Java agent were all instrumentations are enabled by default, some of these teams have been taking the approach of disabling all of them and enabling specific ones that they have "vetted" as "stable for their own purposes, in a particular version". I think these teams will appreciate the extra layer of "stable as identified by maintainers". It will make their job easier. So, the main pain will be for those end-users that don't have that team doing this assessment, or a vendor distribution that controls what's enabled and what not for them. IMO a good first option would be to start with new components and instrumentation libs. These, as new components, can be immediately put behind this "stable by default" behaviour, and only enabled when the pertinent feature flag (or whatever mechanism) is in place. This would create immediate value with no breaking changes. For existing components/libs, I think we should think of specific timelines that either (1) seem achievable to move critical components to stablisation, or prompt action to do so (which could be a good call to action) and (2) give enough time to communicate that they will be disabled in future major versions. |
Beta Was this translation helpful? Give feedback.
-
|
On a separate topic, and more related to semconv. Having a clear way to communicate that a certain instrumentation package can be stable, but the semconv of the data it produces might not be, and what happens to component versioning when that semconv changes, will be crucial. If we just say "this instrumentation lib is stable" most users would immediately understand that the telemetry it produces will be based on stable semconv, which may not be the case. So I think that, for instrumentation libs, the status of one aspect cannot be reported without the other. For instance, at the moment Collector Contrib receivers have well-documented stability levels, but no link to the semconv they're based on (if applicable). I know the relationship between these will be covered in OTEPs and spec work, but we should ensure that it reaches the end user that doesn't (shouldn't have to) read any of those (registry 2.0?) |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
This is a space to discuss our stability proposals.
To summarize and recap the blog, these are our goals that should be addressed:
We plan to introduce these changes via OTEPs in the specification, but would like to use this space to collect feedback from the community, end-users, maintainers, and others about the goals and objectives, as well as how they're achieved.
Beta Was this translation helpful? Give feedback.
All reactions