OpenTelemetry in Focus, September 2023
Welcome back to OpenTelemetry in Focus for September, 2023! The autumn winds are bringing a flurry of activity to the project, as we prepare for KubeCon and Observability Day. Are you attending? We hope to see you there for our inaugural OpenTelemetry Contribfest, Project Pavilion, and more!
Releases and Updates
Here are the latest updates from some of our core repositories.
The latest update (v1.25.0) brings several changes chiefly to the Metrics and
Logs. Metric name’s maximum length has been increased from 63 to 255 characters.
MetricProducer specification has been put on feature-freeze and has been
stabilized. The addition of a synchronous gauge instrument and clarification on
metric point persistence have been implemented, and the term “advice” has been
replaced with “advisory parameters”. A new rule defining the default size of the
SimpleFixedSizeExemplarReservoir to be 1 has been established. In Logs, the
GCP data model has been updated to use
TraceFlags instead of
gcp.trace_sampled. Additionally, a change in OpenTelemetry Protocol fixes and
clarifies the definition of “transient error” in the OTLP exporter
Compatibility updates include changes in OpenTracing Shim and Prometheus, the latter is permitted to change metric names by default as it translates from Prometheus to OpenTelemetry.
For full details, please visit the full changelog here
In the recent release of OpenTelemetry Collector (v0.86.0), several important updates have been made. The logging exporter has been deprecated and replaced by the newly added debug exporter. Furthermore, the linux/s390x architecture has now been incorporated into cross build tests.
Significant API changes have occurred in this release. The
service.PipelineConfig has been removed, which constitutes a breaking change.
obsreport module functions and structs are being deprecated, mostly
pertaining to Exporter, Processor, Receiver, and Scraper features. These
functionalities have been relocated to various helper modules.
Detailed descriptions, as well as links to the respective relocations and deprecations, can be found on the release page.
includes many updates as well. Important breaking changes include the removal of
jaegerthrifthttp exporters, and changes related to
several packages such as
mongoDb receiver, Azure
tailsampling processor, and many more to comply with
Enhancements include sub-second decision wait time in the
processor, host’s cpuinfo attributes support in
addition of ‘omit_pattern’ setting to
split.Config, and several updates to the
pkg/ottl package such as adding a new ‘TruncateTime’ function and support for
named arguments in function invocations, among others.
Bug fixes have been rolled out for issues like the
accepting duplicate policy names, JSON marshal errors for metrics with NaN
values in AWS EMF Exporter, and restoration of AWS X-Ray metadata structure
while exporting, along with a range of other bug fixes for various components.
There were also several breaking changes in v0.85.0:
- Removal of deprecated Kubernetes API resources like HorizontalPodAutoscaler v2beta2 version and CronJob v1beta1 version means metrics for those resources will no longer be emitted on Kubernetes 1.22 and older.
- Prometheus exporters now append type and unit suffixes by default, which can be disabled by setting “add_metric_suffixes” to false.
Again, please refer to the release notes carefully before updating.
Operator v0.85.0 has been released. Enhancements include the addition of .NET Automatic Instrumentation support for Alpine-based images in the autoinstrumentation, and Go auto-instrumentation support has been upgraded to v0.3.0-alpha. Furthermore, the Operator now allows for the collector CRD to specify a list of configmaps to mount, and introduces a new method of reconciliation to reduce complexity and duplication. A bug has also been fixed where the operator ensures the upgrade mechanism runs upon changes in an instance, particularly useful for instances shifting from unmanaged to managed states when the operator is upgraded. Component updates include OpenTelemetry Collector, Contrib, and several languages-specific auto-instrumentations.
Important change: The operator now allows for introducing a reliable upgrade mechanism to handle instance changes.
Breaking Change: Go auto-instrumentation support has considerably upgraded from previous versions to v0.3.0-alpha, which may include major changes.
This release includes breaking changes from v0.84.0 as well:
- Target allocator no longer has default memory and cpu limits, to match collector defaults.
- ServiceMonitors are created when Prometheus exporters are used.
includes many updates to incubating APIs and SDKs. In the API incubator, an
experimental synchronous gauge was added. The SDK Metric System has amplified
its facilities with the addition of attributes advice API, AttributesProcessor
toString, an attribute filter helper, and it increased the metric name’s
maximum length from 63 to 255 characters. The Prometheus exporter has made
changes concerning non-ucum units and their unit addition to metric names in
TYPE and HELP comments.
In SDK Extensions, there’s support for file-based configurations added to the
incubator. An update is made to handle blank value entries in the Autoconfigure
There is a crucial deprecation for developers to note. The
io.opentelemetry:opentelemetry-semconv has been deprecated for removal; an
io.opentelemetry.semconv:opentelemetry-semconv:1.21.0-alpha is now
introduced from a new repository.
brings significant changes including the addition of new Java agent
instrumentation, enhancements, and bug fixes. Important changes include the
splitting of experimental HTTP server metrics into a separate class, renaming of
HttpServerRoute, and removal of a deprecated configuration.
New Java agent instrumentation has been added for hibernate reactive.
Enhancements encompass support for AWS Secrets Manager JDBC URLs, improved
support for semantic convention changes, addition of
instrumentation BOM, and more. Several bugs have also been fixed, such as issues
getDefinedPackage lookup for OpenJ9, serializing key with Lettuce
instrumentation, and auto-instrumentation with JMX not working without a
is the first stable release of Metrics and the standard project stability
guarantees now apply to the
Added features include a new “Roll the Dice” application example and the
WithPrettyPrint options to customize
io.Writer and display
output in human-readable JSON format.
Notable changes comprise allowance of ‘/’ characters in metric instrument names and the change in the default output format of the exporter, which is now more compact.
Fixed issues include a recurring problem where the SDK attempted to create the
Prometheus metric at each Collect, even if known that the scope was invalid. In
terms of removals, the
go.opentelemetry.io/otel/bridge/opencensus.NewMetricExporter has been replaced
Due to the plethora of content, detailed information is advised to be obtained by referring to the Full Changelog.
Please note that v1.18.0 included several deprecations and removals:
- Jaeger exporters and examples have been removed, as Jaeger accepts native OTLP now.
- Go compatibility before version 1.20 is no longer guaranteed.
Version 1.17.0 fixes an unintentional breaking change in previous releases.
There have been several important changes in the experimental packages, including deprecation of legacy configuration APIs.
Version 1.6.0 includes minor updates to metrics.
News and Upcoming Events
KubeCon North America is coming to Chicago soon, and the schedule has been announced! Check out the observability track for talks on OpenTelemetry, Prometheus, and more.
Observability Day returns as well, and it’s shaping up to be a great one! Check out the announced schedule at the link above.
Be sure to stay tuned to the blog this week for a full breakdown of all the events happening at KubeCon this November!