Welcome to the August 2026 edition of the OpenTelemetry News!
A companion piece from the Metrics SIG lays out how to size and monitor cardinality limits so overflow doesn't quietly break your dashboards. Datadog is heading to next month's Observability Summit Europe with several speaking slots alongside the broader OpenTelemetry community, and the young OpenTelemetry Zig SIG shares its first progress update since the existing Zig implementation moved into the OpenTelemetry organization earlier this year. On the Collector side, releases 0.158.0 and 0.159.0 introduce the queuebatch processor to eventually replace the legacy batch processor, ship the dns_check and sd_notify components, and continue refining the brand-new dynamic_sampling processor's configuration soon after it shipped. Specification v1.60.0 adds formal Entity support to the Resource SDK, and semantic conventions v1.44.0 reworks the browser Web Vitals event and renames a batch of Kubernetes memory metrics.
Highlights
A practical guide to metric cardinality limits
Cijo Thomas published Metric cardinality limits in OpenTelemetry: a practical guide, the operational companion to the metrics SDK's cardinality-limit documentation. The post helps with something everyone misses: when a metric stream overflows its limit, the total stays correct, but every attribute on the overflowing measurement, not just the high-cardinality one, gets folded into a single otel.metric.overflow=true data point. A low-cardinality attribute like success becomes unreliable for filtering the moment a different attribute on the same measurement overflows.
It walks through sizing a limit for your traffic pattern, checking whether you've already hit one with a PromQL query against otel_metric_overflow, and building continuous alerting so overflow is rare, visible, and meaningful rather than a silent source of undercounted dashboards and SLOs.
Observability Summit Europe
Next month, the OpenTelemetry community will meet at the Observability Summit EU with plenty of talks around OpenTelemetry. Datadog is sponsoring the event, and Datadog engineers are co-presenting several talks alongside speakers from the broader OpenTelemetry community:
- Where Did the CPU Go? Building the OpenTelemetry eBPF Profiler by Nayef Ghattas.
- What OpenTelemetry Users Taught Us About Developer Experience by Juliano Costa and Johanna Öjeling.
- From Schema to Shipping Data, Making OpenTelemetry Stable by Default by Christos Markou and Pablo Baeyens.
If you're attending, stop by the Datadog booth to meet the team behind these talks and learn more about OpenTelemetry and Datadog.
OpenTelemetry Zig SIG update
The OpenTelemetry Zig SIG was created this year, with the existing Zig implementation moving into the OpenTelemetry organization in June. Since then, the team has been adapting the project to a monorepo while expanding the SDK with capabilities such as gRPC support, which is currently under review. That work required building missing pieces in the Zig ecosystem itself, including making libgrpc cross-compilable using Zig and creating a Zig wrapper around it. Contributors have also improved memory safety, logs-trace correlation, API ergonomics, and the performance of the logging pipeline.
The project is currently in alpha, so while it is ready for experimentation and testing, it has not yet been battle-tested in production and breaking changes should still be expected between releases.
New Collector releases
This news edition covers the OpenTelemetry Collector releases 0.158.0 and 0.159.0.
Breaking changes
processor/dynamic_samplingreworks its configuration: sampler fields move up a level (no moresampler.<type>.<field>nesting),key_fieldsis renamed tokey_attributes, and the rarely-usedinitial_sampling_rateis dropped. Ruleconditionsare now full OTTL boolean expressions evaluated in theottlspancontext, with path expressions requiring a context prefix, instead of a bespoke parser; a newmatchfield chooses betweenany_spanandsame_spansemantics (#49311).processor/drainreplacesextract_parameters/params_attributewithmasking_rules:masking_rulesis an ordered list of{name, pattern}regex substitutions that mask high-cardinality values (like IPs) before they reach the Drain tree, stabilizing derived templates. To migrate, replaceextract_parameters: truewithemit_wildcards: true, and renameparams_attributetowildcards_attribute(#48914).- The
kafkatopicsobserverextension is removed after being deprecated for three months, along with itskafka.topicsendpoint type. Use thekafkareceiverwith topic regex support instead (#48186).
Deprecations
- Several
processor/resource_detectioncloud detectors (ec2,alibaba_ecs,nova,tencent_cvm,upcloud,vultr) deprecate their per-detectorfail_on_missing_metadataoption in favor of one top-level setting on the processor (#46579). receiver/file_logdeprecates the implicit default ofordering_criteria.top_n: 1whensort_byis configured, since silently limiting collection to a single file caused severe log duplication with multiple actively-written files. Enable thefilelog.requireExplicitTopNfeature gate to require an explicit value. Independently,top_n: 0now means "match all files" instead of behaving liketop_n: 1(#47444).
New components
processor/queuebatch: A new implementation intended to eventually replace the legacybatchprocessor, built onexporterhelperand reusing the samesending_queueconfiguration (#15047). You can read more about this in the Migration forbatchprocessorandexporterhelperbatching.receiver/dns_check: Ships a complete scraping implementation with metrics and resource attributes, after landing as a skeleton in 0.158.0 (#49561).extension/sd_notify: Integrates the Collector with thesd_notify(3)protocol (#49607).extension/aws_iam_db_auth: Implementsdbauthfor AWS IAM database authentication, promoted to alpha stability in 0.159.0 (#49044, #50118).
Component naming convention
The snake_case rename wave continued across v0.158.0 and v0.159.0. Deprecated aliases are maintained so existing configurations keep working, but plan to update your component names to ensure compatibility with future releases.
| Type | Old name | New name | PR |
|---|---|---|---|
| Exporter | azuremonitor |
azure_monitor |
#49402 |
| Processor | deltatocumulative |
delta_to_cumulative |
#49634 |
| Processor | deltatorate |
delta_to_rate |
#49807 |
| Receiver | sqlquery |
sql_query |
#50071 |
OTTL & processing improvements
pkg/ottl:pcommon.Valueis now comparable using all comparison operators (==,!=,<,<=,>=,>) in OTTL expressions (#49170).processor/transformadds aParseELFfunction that parses W3C Extended Log Format blocks into structured maps, including directive metadata and IIS-style quoted values (#48352).processor/span_pruningnow preserves whole outlier subtrees instead of individual spans and detects outliers at every aggregation level, so a slow interior span keeps its entire subtree; optional OTTLconditionsscope pruning to traces with at least one matching span (#49324, #49026).processor/tail_samplingaddsnum_shardsto run parallel event loops sharded by trace ID: under high throughput, a single event loop can become a bottleneck because trace ingestion starves sampling decision evaluation, and settingnum_shardsabove 1 distributes traces across independent goroutines, each with its own storage and decision batcher (the default of 1 preserves the original single-loop behavior). To keep aggregate behavior consistent,num_traces,expected_new_traces_per_sec,decision_cachesizes, and per-second policy rate limits (rate_limiting,bytes_limiting, and compositemax_total_spans_per_second) are divided evenly across shards, thoughburst_capacityis left undivided so single large traces stay admissible regardless of shard count; thesampling_traces_on_memorymetric reports the total across all shards (#48699).
Metrics & Prometheus compatibility
exporter/prometheus_remote_writeaddsconvert_explicit_histograms_to_nhcbto convert classic explicit-bucket histograms into Native Histograms with Custom Buckets on export, withkeep_classic_histogramsto emit both representations while migrating (#33661).receiver/prometheusfixes a bug where enablingconvert_classic_histograms_to_nhcbcould drop classic histograms that lack explicit bucket boundaries instead of passing them through (#49893).pkg/jaegerbegins migrating fromhttp.status_codetohttp.response.status_codebehind two alpha feature gates. Both will graduate to enabled-by-default, after which the translator stops emitting the deprecated attribute, so update dashboards and alerts ahead of that (#45036).
Database receivers
receiver/oracledbadds real-time workload-rate and I/O-rate metrics, auto-discovers PDBs for per-PDB metrics on multitenant CDB deployments, and speeds up query-sample collection by splitting the SQL text/plan lookup into a narrower, separate query (#49749, #49748, #48643, #49874).receiver/sqlserveradds opt-in Always On Availability Group replica metrics and host-level CPU/memory/disk metrics, and moves to a single tunable connection pool shared across all scrapers instead of opening one pool per query (#49633, #49862, #47219).receiver/oracledbandreceiver/sqlserverboth upgrade their SQL obfuscation engine to go-sqllexer'sObfuscateAndNormalize. The obfuscateddb.query.textis now more consistently normalized, which is a one-time change to the obfuscated output format for existing deployments (#50231, #50210).
Bug fixes
processor/redactionwas applyingblocked_valuespatterns in Go's nondeterministic map iteration order instead of the order listed in configuration. When two patterns could match overlapping parts of the same value, which parts actually got redacted changed from run to run, so some values may have been left unmasked on some runs and not others. Patterns are now applied in the order they're written (#49858).exporter/load_balancingfixes a memory leak in the Kubernetes resolver, where churned-out pod hostnames were retained indefinitely whenreturn_hostnamesis enabled (#49757).extension/text_encodingfixes logs being silently truncated when the input had more than 1,000 records (#49818).processor/isolationforestfixes the online isolation forest never splitting its trees, so every record received a near-identical anomaly score and nothing was ever flagged; it now also honors the configuredcontamination_rate(#46988).processor/k8s_attributesfixes a memory leak and incorrect deletion for custom association identifiers (labels, annotations) cycling through active→stale→active transitions (#48588).receiver/azure_monitorfixes metric data loss and incorrect timestamps (#49532).receiver/snowflakenow closessql.Rowsin allFetch*methods, fixing a per-scrape connection leak that could eventually exhaust the pool (#49707).
Datadog-related updates
exporter/datadog:- Adds the
AddUnitsfeature gate, which maps OTLP metric units expressed in the Unified Code for Units of Measure (UCUM) to their Datadog equivalents (#15280). - A
datadog-agentdependency bump tov0.82.0fixes log misrouting when a batch contains multiple ResourceLogs with different scopes, a goroutine hang on shutdown, and an unbounded histogram-to-sketch loop that could exhaust the exporter's memory on a very large finite bucket bound (#50069, #49322). - Maps the
Ratemetric intake type in legacy metric clients, fixing delta-sum datapoints taggeddatadog.metric.as_type=ratethat were previously dropped silently (#50119).
- Adds the
pkg/datadog:- Adds the
EnableScopeConventionfeature gate, which emitsotel.scope.name/otel.scope.versionon spans alongside the deprecatedotel.library.*attributes for backward compatibility (#49001). - Fixes
WithAPIConfigsilently discarding a configuredapi_key/sitein favor ofDD_API_KEY/DD_SITEenvironment variables when both are present in the process environment (#49957).
- Adds the
OpenTelemetry specification v1.60.0
The v1.60.0 release adds formal Entity support to the Resource SDK and continues stabilizing the Prometheus compatibility spec.
- A new Entity specification formalizes how entities are represented, and Entity support is added to the Resource SDK specification, giving implementers a normative reference for representing what infrastructure exists and how it changes over time (#5201).
- OTLP exporter configuration gains max request/response size options (#5235).
- The interaction between Prometheus content negotiation and OTLP translation strategy is clarified, and the Target section of the Prometheus Metrics Exporter spec is stabilized (#5134, #5221).
Semantic conventions v1.44.0
The v1.44.0 release reworks the browser Web Vitals event and renames several Kubernetes memory metrics.
- Action required: The
browser.web_vitalevent movesname,value,delta, andidout of the event body and intobrowser.web_vital.*attributes, alongside new attributes matching current instrumentation. Update any pipeline or dashboard that reads these fields from the event body (#3401). k8s.node.memory.paging.faults,k8s.pod.memory.paging.faults, andcontainer.memory.paging.faultsare renamed to drop thememorysegment (for example,k8s.pod.paging.faults), and{container,k8s.pod,k8s.node}.memory.usagechange from a gauge to an UpDownCounter (#3805, #3889).- The process namespace is promoted to release candidate, and gaps found while migrating the hostmetrics receiver are filled in:
process.disk.operations,process.memory.utilization, andprocess.signals_pendingare added (#3937). - Messaging spans are now defined per operation type (create, send, receive, process, settle), refined for each messaging system (#3904).
Datadog news
Bill Meyer and Eddie Cai published Control trace volume with OpenTelemetry tail-based sampling.
The post walks through deploying Collectors in a gateway pattern so all of a trace's spans land on the same instance, then layering tail_sampling policies (errors, high latency, and other targeted conditions ahead of a probabilistic catch-all) to decide what to keep only after a trace completes. It computes Span Metrics before sampling runs, so RED metrics for service health stay accurate on 100% of traffic even as sampled traces are dropped, and in the guide's example configuration, exported trace volume drops by about 98%.
Get involved
Want to contribute to OpenTelemetry? Here are some ways to get started:
- Join a Special Interest Group (SIG).
- Contribute code to one of OpenTelemetry repositories.
- Share your OTel story with the community.
Resources
- Datadog OpenTelemetry Documentation
- OpenTelemetry Documentation
- Getting Started Guide
- CNCF OpenTelemetry Slack
Did we miss something? If you have news to share or want to contribute to the next edition, please reach out to us via otel-news@datadoghq.com.