-
Notifications
You must be signed in to change notification settings - Fork 725
otelconf: add support for 1.0.0 release candidate #8026
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
otelconf: add support for 1.0.0 release candidate #8026
Conversation
|
If it's helpful to reviewers, i'm happy to commit parts of this PR in separate PRs. i could get the change to add the generated code and the test yaml files separately to make reviewing it easier |
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #8026 +/- ##
=======================================
+ Coverage 81.8% 82.1% +0.3%
=======================================
Files 194 195 +1
Lines 13377 13628 +251
=======================================
+ Hits 10951 11199 +248
+ Misses 2029 2027 -2
- Partials 397 402 +5
🚀 New features to boost your workflow:
|
That would be helpful 👍 |
|
Putting this back in draft, and starting the process to introduce changes in smaller prs #8026 |
This adds the v1.0.0-rc.2 test yaml from the config repo: https://github.com/open-telemetry/opentelemetry-configuration/blob/main/examples/kitchen-sink.yaml and also adds the json translation of that yaml file. To reviewers, I downloaded the file from the configuration schema repo and put it in the testdata folder. I then pasted the yaml into an online translation tool to produce the json. Part of splitting open-telemetry#8026 Signed-off-by: alex boten <[email protected]>
ea91409 to
bc3b986
Compare
Copies the certificate data from the v0.3.0 directory into the 1.0.0 testdata. Part of breaking up open-telemetry#8026 Signed-off-by: alex boten <[email protected]>
Updates otelconf v1.0.0 to include unmarshaling that validates the fields for batch log processor and batch span processor configuration. Part of splitting open-telemetry#8026 Signed-off-by: alex boten <[email protected]>
bc3b986 to
a8757c2
Compare
Updates otelconf v1.0.0 to include unmarshaling that validates the fields for batch log processor and batch span processor configuration. Part of splitting open-telemetry#8026 Signed-off-by: alex boten <[email protected]>
Adds unmarshaling code for TextMapPropagator which includes supporting nillable values for the different propagators. Part of splitting open-telemetry#8026 Signed-off-by: alex boten <[email protected]>
Non-functional refactor, moves common code to an internal package to remove need to replicate the code again with 1.0.0 implementation. Part of splitting open-telemetry#8026 Signed-off-by: alex boten <[email protected]>
958e356 to
29cee4c
Compare
Updates otelconf v1.0.0 to include unmarshaling that validates the fields for batch log processor and batch span processor configuration. Part of splitting open-telemetry#8026 Signed-off-by: alex boten <[email protected]>
Updates otelconf v1.0.0 to include unmarshaling that validates the fields for batch log processor and batch span processor configuration. Part of splitting open-telemetry#8026 Signed-off-by: alex boten <[email protected]>
29cee4c to
cbc9045
Compare
Adds unmarshaling code for TextMapPropagator which includes supporting nillable values for the different propagators. Part of splitting open-telemetry#8026 Signed-off-by: alex boten <[email protected]>
Signed-off-by: alex boten <[email protected]>
Signed-off-by: alex boten <[email protected]>
pellared
left a comment
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.
Given this is an RC of v1 I want to ask what is the design/plan regarding backwards compatiblity and stability.
For instance OpenTelemetryConfiguration has InstrumentationDevelopment field. Should it be exported? This does not seem to be a stable field.
Do we want we eventually want to have Instrumentation instead of InstrumentationDevelopment?
That's a good question! The plan for the schema v1 is to include experimental support for:
The stability guarantee around these are near none (https://github.com/open-telemetry/opentelemetry-configuration/tree/main?tab=readme-ov-file#experimental-features). We could decide to not support these in the implementation at this time. Alternatively we could put these in an experimental module and only unmarshal anything marked with the Thoughts? |
|
Followed up with @pellared on a call to discuss next steps. An idea to reduce the surface area for the API of otelconf was to not export the struct for the model directly. Instead we may be able to add On the call we also agreed that these changes can be implemented while the module itself is not at a v1. |
Co-authored-by: Sam Xie <[email protected]>
This comment was marked as resolved.
This comment was marked as resolved.
Signed-off-by: alex boten <[email protected]>
This adds support for the first 1.0.0 release candidate of the OpenTelemetry configuration schema. The release candidate includes many breaking changes that were introduced in v0.4.0. I'm including the release notes for v0.4.0 in the description below.
The implementation steps:
OPENTELEMETRY_CONFIGURATION_JSONSCHEMA_VERSIONto rc1, run make genjsonschema and commit the new generated codeI've added some TODOs to keep track of things that need to be implemented still. I'll open issues for these and include them in the comments in the code.
Fixes #7159
v0.4.0 release notes
This release has a significant number of breaking changes, new additions and fixes. The breaking changes reflect a higher degree of scrutiny on consistency and correct data modeling as we approach a stable release ([#161](https://github.com/open-telemetry/opentelemetry-configuration/issues/161), [#4374](https://github.com/open-telemetry/opentelemetry-specification/issues/4374)). We anticipate limited churn going forward. Additionally, once we do have a stable release, users can rely on the [strong compatibility guarantees](https://github.com/open-telemetry/opentelemetry-configuration?tab=readme-ov-file#stability-definition) we'll conform to in versions 1.0.0+.Schema
BREAKING: Refactor otlp exporter to separate
otlp_httpandotlp_grpcexporters, add_filesuffix to OTLP exporter certificate properties (#146, #166)Migration steps
BREAKING: Refactor propagator schema, add
composite_listfor compatibility withOTEL_PROPAGATORS. (#187)Migration steps
BREAKING: Refactor resource detection and mark experimental (#182, #188)
Migration steps
BREAKING: Mark prometheus exporter as experimental (#180)
Migration steps
BREAKING: Mark
.instrumentationas experimental (#179)Migration steps
BREAKING: Move metric producers from
MetricReadertoPullMetricReader,PeriodicMetricReader(#148)Migration steps
BREAKING: Change various usages of minimum to exclusiveMinimum (#151)
Add
.meter_provider.exemplar_filterproperty (#131)Don't require empty objects (#134)
Improve
.file_formatdocumentation (#137)Fix periodic exporter interval default value in
kitchen-sink.yaml(#143)Provide guidance on required and null properties. Update schema types to reflect guidance, including documenting behavior when properties are omitted or null. (#141, #192)
Add guidance around use of polymorphic types (#147)
Fix MetricProducer type descriptions (#150)
Add
otlp_file/developmentexporter (#154, #181)Object and enum types should be defined in
$defs(#155)Add guidance around use of title and description keywords (#157)
Add
log_levelconfiguration (#121)Add missing gauge value to InstrumentType enum (#186)
Add cardinality limits configuration to
PullMetricReader,PeriodicMetricReader(#185)Add scope configuration to disable loggers, tracers, meters (#140, #191)