Repository navigation
⬆️ Update module go.opentelemetry.io/collector to v0.164.0 - #119
Open
renovate[bot] wants to merge 1 commit into
Open
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
|
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #119 +/- ##
=======================================
Coverage 73.39% 73.39%
=======================================
Files 2 2
Lines 109 109
=======================================
Hits 80 80
Misses 20 20
Partials 9 9 ☔ View full report in Codecov by Sentry. |
renovate
Bot
force-pushed
the
renovate/go.opentelemetry.io-collector-0.x
branch
from
January 24, 2024 06:47
dc38103 to
be9dafb
Compare
renovate
Bot
force-pushed
the
renovate/go.opentelemetry.io-collector-0.x
branch
6 times, most recently
from
January 31, 2024 04:28
1d47f98 to
e2113bc
Compare
renovate
Bot
force-pushed
the
renovate/go.opentelemetry.io-collector-0.x
branch
4 times, most recently
from
February 7, 2024 01:02
8f5edea to
4b7078d
Compare
renovate
Bot
force-pushed
the
renovate/go.opentelemetry.io-collector-0.x
branch
2 times, most recently
from
February 8, 2024 00:29
cd5b205 to
e151877
Compare
renovate
Bot
force-pushed
the
renovate/go.opentelemetry.io-collector-0.x
branch
3 times, most recently
from
February 12, 2024 04:43
647f157 to
9ccfd9c
Compare
renovate
Bot
force-pushed
the
renovate/go.opentelemetry.io-collector-0.x
branch
4 times, most recently
from
February 20, 2024 18:37
f8ae82c to
4dd5a5a
Compare
renovate
Bot
force-pushed
the
renovate/go.opentelemetry.io-collector-0.x
branch
from
February 26, 2024 04:05
4dd5a5a to
286a059
Compare
Contributor
Author
|
renovate
Bot
force-pushed
the
renovate/go.opentelemetry.io-collector-0.x
branch
from
June 4, 2024 11:31
26a90d9 to
9709467
Compare
renovate
Bot
force-pushed
the
renovate/go.opentelemetry.io-collector-0.x
branch
from
June 5, 2024 17:39
9709467 to
af470e1
Compare
renovate
Bot
force-pushed
the
renovate/go.opentelemetry.io-collector-0.x
branch
from
June 18, 2024 16:11
af470e1 to
7400e02
Compare
renovate
Bot
force-pushed
the
renovate/go.opentelemetry.io-collector-0.x
branch
from
July 1, 2024 22:32
7400e02 to
49d0a9d
Compare
renovate
Bot
force-pushed
the
renovate/go.opentelemetry.io-collector-0.x
branch
from
July 16, 2024 18:28
49d0a9d to
6dfbf21
Compare
renovate
Bot
force-pushed
the
renovate/go.opentelemetry.io-collector-0.x
branch
from
July 29, 2024 21:34
6dfbf21 to
c6ea628
Compare
renovate
Bot
force-pushed
the
renovate/go.opentelemetry.io-collector-0.x
branch
from
July 30, 2024 19:31
c6ea628 to
005c25c
Compare
renovate
Bot
force-pushed
the
renovate/go.opentelemetry.io-collector-0.x
branch
from
August 13, 2024 03:16
005c25c to
541a17d
Compare
renovate
Bot
force-pushed
the
renovate/go.opentelemetry.io-collector-0.x
branch
from
August 27, 2024 19:35
541a17d to
b5b6b00
Compare
renovate
Bot
force-pushed
the
renovate/go.opentelemetry.io-collector-0.x
branch
from
September 10, 2024 02:10
b5b6b00 to
b737cd8
Compare
renovate
Bot
force-pushed
the
renovate/go.opentelemetry.io-collector-0.x
branch
from
September 23, 2024 21:27
b737cd8 to
300baa6
Compare
renovate
Bot
force-pushed
the
renovate/go.opentelemetry.io-collector-0.x
branch
from
October 4, 2024 10:55
300baa6 to
2888ee0
Compare
renovate
Bot
force-pushed
the
renovate/go.opentelemetry.io-collector-0.x
branch
from
October 22, 2024 19:09
2888ee0 to
fa35955
Compare
renovate
Bot
force-pushed
the
renovate/go.opentelemetry.io-collector-0.x
branch
from
November 5, 2024 22:36
fa35955 to
107146b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Note
This PR body was truncated due to platform limits.
This PR contains the following updates:
v0.91.0→v0.164.0Release Notes
open-telemetry/opentelemetry-collector (go.opentelemetry.io/collector)
v0.164.0Compare Source
💡 Enhancements 💡
cmd/mdatagen: Add support for supported_platforms in component metadata, allowing generated component tests to target explicitly supported platforms (#13319)🧰 Bug fixes 🧰
cmd/mdatagen: Fix the generateddataPointKeyfunction triggering gosec G115 (uint64toint64conversion) in components that use mdatagen. (#16176)The generated hash values are unchanged.
exporter/otlp_http: Report the URL the request was actually sent to in HTTP status error messages when a middleware rewrites the request URL. (#14673)Middleware RoundTrippers that clone the request before rewriting its URL left
the configured placeholder URL in 4xx/5xx error messages. The exporter now
reads the destination from the response instead.
pkg/otelcol: Redact non-empty literal defaults in unexpanded env provider references such as${env:NAME:-literal}in the raw config reported by the OpAMP extension whenreports_raw_configis enabled (#16141)Empty defaults such as
${env:NAME:-}stay visible. Other provider schemes are unchanged.v0.163.0Compare Source
💡 Enhancements 💡
cmd/builder: Adddist.resource.detection.detectorsto the builder config, letting distributions opt into a smaller set of resourcedetectionprocessor detectors via generated go build tags. (#16075)cmd/mdatagen: Generate exporter queue/batch sender defaults from an opt-insending_queuefield in metadata.yaml. See the batching migration RFC. (#15963)Declaring
sending_queueis opt-in; an exporter that omits it is unaffected until it explicitly opts in one at a time during Phase 2 of the migration. Set MDATAGEN_SENDING_QUEUE_OPT_OUT=true to generate the standard default for every undeclared exporter while auditing a whole repository.pkg/pprofile: Implement Profiles development-version metadata in the OTLP receiver and exporters. (#16147, #16009)The receiver rejects malformed, repeated, or unsupported versions before decoding.
OTLP exporters send the version associated with their compiled-in Profiles schema.
The version is not configurable, and existing clients without metadata identify
the initial development version.
🧰 Bug fixes 🧰
cmd/mdatagen: Replace the O(n) scan in generatedrecordDataPointwith an O(1) hash lookup, fixing an O(n²) cost per scrape when many data points land on one resource. (#15912)cmd/mdatagen: When both migration gates are enabled, only the latest metric with its v1 attributes is emitted (legacy attributes are no longer included). (#15979)pkg/exporterhelper: Fix sending queue deadlocks when blocked offers are cancelled with block_on_overflow enabled. (#15700)pkg/exporterhelper: Drop only the oversized profile when splitting a profiles batch, instead of discarding every profile queued behind it (#16087)Same fix as
pkg/exporterhelper: Drop only the oversized span when splitting a traces batch, instead of discarding every span queued behind it (#16087)Same fix as
pkg/pprofile: Use the profiles dictionary for resource and scope attribute strings sent over OTLP/gRPC. (#15861)The OTLP/gRPC profiles client now interns attribute strings before transmission, matching the OTLP/HTTP path. The server resolves the references before exposing pdata to consumers.
pkg/xpdata: Fixxhashproducing the same hash for different maps by length-prefixing keys, strings and bytes. (#16048)All hash values produced by
xhashchange.v0.162.0Compare Source
🛑 Breaking changes 🛑
cmd/mdatagen: Generated processor lifecycle tests now assert that the processor propagates the incoming context unchanged to the next consumer by default. (#15994)Disable with
skip_context_propagation: trueprocessor/queue_batch: Renamequeuebatchprocessor toqueue_batchprocessor. (#14396)💡 Enhancements 💡
extension/memory_limiter: Add otelcol_memorylimiter_refused_requests metric to record network request refusals in extension mode. (#15561)pkg/confighttp: Enable keepalive configuration by default. (#16026)Introduces the feature gate
pkg.confighttp.PrioritizeNewKeepalive. When disabled, this flagrestores the old behaviour of removing the keepalive configuration in favour
of the deprecated fields
IdleConnTimeout,MaxIdleConns,MaxIdleConnsPerHost,DisableKeepAliveswhen the flag is disabled.pkg/exporterhelper: Make the partition idle timeout configurable viabatch::partition::idle_timeoutand raise the default to 90s. (#15894)pkg/exporterhelper: Make the multi-batcher partition LRU cache size configurable and export cache size metrics. (#14526)Adds
sending_queue::batch::partition::cache_size(default 10000) to cap thenumber of active partition batchers. The value
must be positive. Current size and configured capacity are exported as
otelcol_exporter_queue_batch_partition_cache_sizeand
otelcol_exporter_queue_batch_partition_cache_capacity.pkg/pprofile: Speed up profiles dictionary merging during exporter-queue batching by replacing the linear-scan dedup in switchDictionary with an indexed lookup, reducing per-merge cost from O(N*L^2) to O(N+L). (#15544)No behavior change: merged dictionary contents and remapped indices are identical to before.
pkg/receiverhelper: Stop allocating a span link that is always discarded when a long-lived-context receiver starts an operation without a parent span context. (#15998)Receivers created with
LongLivedCtx: trueno longer build atrace.Linkwhen thelong-lived context carries no valid span context. The SDK already discarded such a link,
so behaviour is unchanged. This removes 3 of 7 allocations per receive operation.
pkg/xpdata: Reduce the timexhash.MapHashtakes for maps with many entries. (#15990)🧰 Bug fixes 🧰
exporter/debug: Support known sync error handling on AIX (#15924)Enable the debug exporter to handle known synchronous errors on AIX.
pkg/exporterhelper: Drop only the oversized item when splitting a batch, instead of discarding every item queued behind it (#15936)Applied to logs only for now
pkg/exporterhelper: Add exporter and data_type attributes to exporter/enqueue spans. (#16022)receiver/otlp: Error handler preserves the HTTP status code when the request Content-Type is not one a Status can be encoded in (#15995)Extends the fix in #13414, which handled a missing Content-Type. A Content-Type that was
present but unsupported, or malformed, still fell through to
500 {"code": 13, "message": "failed to marshal error message"}, reporting client errorssuch as 401 from a server auth extension or 400 from an unsupported Content-Encoding as
server faults.
v0.161.0Compare Source
🛑 Breaking changes 🛑
pkg/pprofile: Remove deprecated AggregationTemporality, Duration, SetDuration (#15855)pkg/scraperhelper/controller: Remove deprecated AddScraper func (#15934)pkg/service: Remove deprecated ZapOptions (#15935)pkg/xconfmap: Remove deprecated WithForceUnmarshaler func (#15932)💡 Enhancements 💡
pkg/pdata: avoid allocations in WriteInt64 and WriteUint64 (#15629)🧰 Bug fixes 🧰
cmd/schemagen: Accept components written without a configuration body in the generated Collector configuration schema (#15728)pkg/confmap: Fix bug where an escaped URI appearing before a valid URI prevented the subsequent URI from being expanded. (#15867)URI scanning now continues after an escaped URI while preserving the escaped expression as literal text.
pkg/featuregate: Reject feature gate IDs with an empty dot-separated segment (leading, trailing, or consecutive dots), e.g..foo,foo.,foo..bar. (#15676)pkg/pprofile: Stop erasing inline attribute keys when key_strindex is unset, and clear key_strindex once it is resolved. (#15793)pkg/pprofile: Reference resource and scope attribute strings via the ProfilesDictionary string table when marshaling and unmarshaling OTLP profiles export requests. (#15792)pkg/scraperhelper: Fix shutdown being delayed by extra scrapes when a scrape runs longer than the collection interval (#15736)If a scrape was still running when the next tick fired, the pending tick and the shutdown
signal could both be ready when it finished and the controller chose between them at random.
v0.160.0Compare Source
🚩 Deprecations 🚩
pkg/confighttp: Deprecate flat keepalive fields in client and server config in favor of the newkeepalivesection. (#14020)The following client configuration fields are deprecated in favor of the
keepalivesection:idle_conn_timeout->keepalive::idle_conn_timeoutmax_idle_conns->keepalive::max_idle_connsmax_idle_conns_per_host->keepalive::max_idle_conns_per_hostdisable_keep_alives: true->keepalive::enabled: falseThe following server configuration fields are deprecated in favor of the
keepalivesection:idle_timeout->keepalive::idle_timeoutkeep_alives_enabled: false->keepalive::enabled: falseDeprecated fields set in the configuration keep working exactly as before and produce a
deprecation warning when the client or server is created. Setting deprecated fields together
with the new
keepalivesection is an error.Code migrating off the deprecated fields can use the new
NewDefaultKeepaliveClientConfigand
NewDefaultKeepaliveServerConfigfunctions to build akeepalivesection with thedefault values.
💡 Enhancements 💡
all: Bump go version in all go.mod to 1.26.0, drop support on 1.25.0 (#15799)all: Declare windows/amd64 tier 1 and windows/arm64 tier 2 support (#15786)pkg/confmap: Remove deadisStringyStructurehelper (unused since (#12793)This is an internal, unexported code path with no user-facing behavior change.
pkg/exporterhelper: Cache the request size per sizer type so byte-sized batching no longer recomputes the serialized proto size of the whole accumulated batch on every consumed request. (#12636)With
sizer: bytes, the batcher's MinSize check calledBytesSize(), whichignored the cached size and re-walked the entire batch's protobuf on every
consumed request, making accumulation O(n^2) in the number of merged requests.
The size is now cached separately for the bytes and items dimensions and
maintained incrementally during merge/split, so the check is O(1). A single
untyped cache could not be reused safely because the batcher and the queue may
ask for different sizer types on the same request.
processor/memory_limiter: Only report memory limiter component health status when the health state changes. (#15751)🧰 Bug fixes 🧰
cmd/mdatagen: Allow underscores in feature gate IDs for compatibility with component names with underscores (#15592)pkg/pprofile: add bounds checks to FromLocationIndices and switchDictionary (#15697)FromLocationIndices now returns an error instead of panicking on an out-of-range or
negative location index, mirroring FromAttributeIndices.
The index checks used when merging profiles now also reject negative indices. These
were previously reachable with a negative index decoded from an OTLP payload, which
panicked the collector via Profiles.MergeTo.
pkg/service: Route OpenTelemetry SDK-internal errors (e.g. failed metric/log/trace exports) through the collector's configured logger instead of the OTel SDK's default global error handler, which always printed to stderr vialog.Printregardless of the configured log encoding. (#12378)v0.159.0Compare Source
💡 Enhancements 💡
pkg/exporterhelper: Add thepkg.exporterhelper.queueBatchEnabledfeature gate (#14038, #13582, #12022)When enabled, the batch settings returned by
NewDefaultQueueConfig()havebatch::enabledtrue. See migration RFC.🧰 Bug fixes 🧰
pkg/exporterhelper: Recordotelcol_exporter_queue_batch_send_sizeandotelcol_exporter_queue_batch_send_size_bytesafter batching, and addotelcol_exporter_enqueue_sizeandotelcol_exporter_enqueue_size_bytesfor enqueue-time sizes. (#14674)Previously the batch send size histograms were recorded at enqueue time (
Offer), so theymeasured incoming request sizes rather than the post-batching request handed to the
downstream sender. Those histograms are now recorded in the obs report sender.
The previous enqueue-time measurements are preserved under the new
otelcol_exporter_enqueue_sizeandotelcol_exporter_enqueue_size_bytesmetrics forqueue sizing. Users with the exporter batcher enabled will observe different values for
otelcol_exporter_queue_batch_send_size*.otelcol_exporter_queue_batch_send_sizeandotelcol_exporter_queue_batch_send_size_bytesare now only recorded when
sending_queue::batchis configured; they will not appear at allfor exporters that do not enable batching.
pkg/scraperhelper: Use{record}instead of{datapoint}as the unit of the log record and profile record scraper metrics (#15730)Affects
otelcol_scraper_scraped_log_records,otelcol_scraper_errored_log_records,otelcol_scraper_scraped_profile_recordsandotelcol_scraper_errored_profile_records.v0.158.0Compare Source
🚀 New components 🚀
processor/queuebatch: Newqueuebatchprocessorto replace the legacybatchprocessor. (#15047, #13582, #12022, #11308, #8272, #6046)New implementation is based exporterhelper, uses same configuration as
sending_queue.💡 Enhancements 💡
cmd/mdatagen: Add first-class extended type aliases (int64, duration, opaque_string, id, opaque_map, etc.) to config schemas in metadata.yaml (#15513)Authors can now write
type: int64,type: duration,type: opaque_string,type: id, ortype: opaque_mapdirectly as a property type in theconfig:section ofmetadata.yaml.Each alias expands to the correct JSON Schema representation and Go type automatically.
Existing uses of standard JSON Schema types,
format:, andx-customType:remain supportedwithout migration.
extension/memory_limiter: Promote the memory limiter extension to beta stability. (#14533)🧰 Bug fixes 🧰
cmd/mdatagen: Removes the extra line in the documentation.md around description (#15664)cmd/mdatagen: Auto-enable v1 metrics when legacy metric is enabled and v1 feature gate is on (#15650)When the v1 feature gate is enabled and a legacy metric is enabled, the corresponding
v1 metric is now programmatically enabled so users don't need to add the v1 metric
to their config.
cmd/mdatagen: Fix incorrect collision warning for versioned metrics with different emitted names (#15648)Same name collision detection (type/attribute checks) was being used for versioned metrics
with different names. This caused the legacy metric to be disabled which was incorrect and also
a warning msg was being incorrectly logged that stated the metrics had the same name when in
fact they had different names.
cmd/mdatagen: Versioned metrics don't handle renamed attributes with same type (#15595)Versioned metrics need to support emitting legacy and latest attributes when the metric name is the same but the
attributes names differ. This was not working when the attributes name changed but the type remained the same.
Here we add support to versioned metrics with renamed attributes where those attributes have the same type.
exporter/debug: Fix profile sample attribute formatting for non-string values (#15647)Previously, non-string values produced malformed output such as
%!s(int64=42).Profile sample attributes now use the debug exporter's typed attribute format, such as
Int(42).This will also change strings from
hello-worldtoStr(hello-world).pkg/config/configtls: Fix goroutine and file descriptor leak whenclient_ca_file_reloadis enabled (#9221)Every call to
ServerConfig.LoadTLSConfigwithclient_ca_file_reloadenabled started afile watcher goroutine that could never be stopped, since the reloader was not reachable
from the returned
*tls.Config. The client CA file is now checked for changes while TLShandshakes are served, at most once per second, matching how
reload_intervalalreadyreloads the server certificate. No background goroutine is started, so nothing is left
behind when a server is torn down and recreated.
v0.157.0Compare Source
🛑 Breaking changes 🛑
pkg/exporterhelper: Replace histogram bucket boundaries forotelcol_exporter_queue_batch_send_size_bytesandotelcol_processor_batch_batch_send_size_byteswith a power-of-2 byte-scale set spanning 128 B to 16 MiB. (#15535)The previous boundaries included many small sub-kilobyte buckets that were not useful for byte-scale
payloads, and
otelcol_exporter_queue_batch_send_size_bytestopped out at 6000 bytes so nearly allobservations fell into the
+Infoverflow bucket. The new boundaries are powers of two from 128 Bto
1677721(16 MiB), giving a meaningful distribution for real batch payload sizes (including smalltimeout-flushed batches) and keeping the two
metrics directly comparable on the same dashboards. Dashboards or alerts that hard-code specific
levalues for these histograms will need to be updated.
processor/batch: Replace histogram bucket boundaries forotelcol_processor_batch_batch_send_size_byteswith a power-of-2 byte-scale set spanning 128 B to 16 MiB. (#15535)The previous boundaries included many small sub-kilobyte buckets that were not useful for byte-scale
payloads. The new boundaries are powers of two from 128 B to
1677721(16 MiB), giving a meaningfuldistribution for real batch payload sizes (including small timeout-flushed batches) and keeping the
metric directly comparable with
otelcol_exporter_queue_batch_send_size_byteson the same dashboards. Dashboards or alerts thathard-code specific
levalues for this histogram will need to be updated.💡 Enhancements 💡
all: Bootstrapconfig.schema.yamlfor core components (debug/otlp/otlphttp exporters, otlp receiver, batch/memory_limiter processors, memory_limiter/zpages extensions). Implements Phase 1 of the component configuration schema roadmap RFC. (#14543)Schemas are generated using the
schemagentool from opentelemetry-collector-contrib and hand-tuned to capturevalidation rules and references to shared library schemas (confighttp, configgrpc, configretry, exporterhelper,
etc.). A
.schemagen.yamlsettings file and agenerate-schemasMakefile target are added so the schemas canbe regenerated reproducibly.
pkg/service: Apply experimentalservice::telemetry::resource::detection/developmentresource detection to the Collector's internal telemetry resource. (#14311)This follows the OpenTelemetry configuration schema by treating
service::telemetry::resource::detection/development::detectorsas detector selection.Currently supported detector entries are
container,host,process, andservice.See the OpenTelemetry Configuration Go support table and search for
ExperimentalResourceDetectorfor current detector support:https://github.com/open-telemetry/opentelemetry-configuration/blob/main/language-support-status.md#go
Example:
pkg/service: Addservice.partialReloadfeature gate (Alpha) andservice.partialReloadReceiversfeature gate (Beta) that together restart only receivers on config reload when non-receiver config sections are unchanged, avoiding unnecessary disruption to processors, exporters, and extensions. Enable with--feature-gates=service.partialReload. (#5966)🧰 Bug fixes 🧰
exporter/debug: Fix the scope index printed by thenormalverbosity marshaler; each scope was labelled with its parent resource's index instead of its own position (#15541)Affected all four signals (logs, traces, metrics, profiles) — e.g. the second scope under a resource printed
#0instead of#1.pkg/config/configgrpc: FixWaitForReadyoption not being applied to gRPC client connections. (#15615)pkg/featuregate: Fix panic when a--feature-gatesvalue contains an empty comma-separated element (e.g.--feature-gates=alpha,) (#15536)An empty identifier now produces a returned error instead of an index-out-of-range panic during flag parsing.
pkg/service: Fix collector startup panic when a resource detector emits a slice-valued attribute (e.g. theprocessdetector'sprocess.command_args) (#15571)createResourcepassed the OTel SDK attribute value straight intopcommon.Value.FromRaw, whichonly accepts
[]anyfor slices, so any string, int, float, or bool slice resource attribute producedan
<Invalid value type>error and abortedservice.New. Slice-typed attributes are now convertedelement-wise.
pkg/service: Record status events reported by extensions (#15557)v0.156.0Compare Source
💡 Enhancements 💡
cmd/mdatagen: Add support for defining stability levels for resource attributes (#15312)cmd/mdatagen: Add semantic convention reference to resource attributes (#15313)processor/memory_limiter: Adding health events for the memorylimiter (#14700)Publish health event from memorylimiter using componentstatus.ReportStatus
🧰 Bug fixes 🧰
cmd/mdatagen: Removes the extra line in the documentation.md between extended description and table (#15458)exporter/otlp_http: Treat errors parsing successful (2xx) HTTP response bodies as permanent errors to prevent retrying already-accepted data. (#15386)When a server returns a 2xx status but the response body exceeds the 64kB read limit,
the body is truncated and proto unmarshaling fails. Previously this was treated as a
retryable error, causing duplicate data to be exported. Now it is marked as a permanent
error so the retry logic will not re-send data that was already accepted by the server.
pkg/config/configretry: Always validate BackOffConfig fields regardless of the Enabled flag. (#15437)pkg/service: Ensure receivers always start after all other components (#15495)There was previously a race condition where multiple receivers using a shared internal implementation,
such as the OTLP receiver, could start sending telemetry into a pipeline before all its components had fully started.
processor/memory_limiter: Fix degenerate collector performance when exporter has problems causing permanent CPU-burning GC loop (#4981)Forced GC runs now use exponential backoff when deemed ineffective
(still above soft limit and less than 5% reclaimed) to avoid preventing
recovery by overloading CPU with excessive GC runs. The cap on the
backoff interval is exposed via
max_gc_interval_when_soft_limitedandmax_gc_interval_when_hard_limited(both default30s); set either to0to disable backoff on that path.provider/env: Fix empty env var default resolving to nil instead of empty string (#14587)When using ${env:VAR:-} with an unset variable, the empty default now correctly
resolves to an empty string instead of nil.
v0.155.0Compare Source
🛑 Breaking changes 🛑
pkg/confighttp: Remove stabilized gateconfighttp.framedSnappy(#15420)pkg/configoptional: Remove stabilized gateconfigoptional.AddEnabledField. (#15421)pkg/confmap: Remove stabilized featuregateconfmap.newExpandedValueSanitizer(#15418)pkg/exporterhelper: Remove stable gateexporter.PersistRequestContext. (#15424)pkg/otelcol: Remove stable gateotelcol.printInitialConfig(#15425)pkg/service: Remove stable featuregatetelemetry.UseLocalHostAsDefaultMetricsAddress(#15419)pkg/xpdata: Remove stable gatepdata.enableRefCounting. (#15426)processor/memory_limiter: Rename deprecated memory limiter metrics to include thememory_limiterprefix (e.g.otelcol_processor_memory_limiter_*) to clarify they are specific to this processor. (#11203)🚀 New components 🚀
cmd/schemagen: Move theschemagenCLI from opentelemetry-collector-contrib to this repository ascmd/schemagen. (#14543)The tool's source is identical to the upstream contrib version
(github.com/open-telemetry/opentelemetry-collector-contrib/cmd/schemagen) except for the module path and
the test fixtures' namespace, which now reflect the collector module
(go.opentelemetry.io/collector/cmd/schemagen). A contrib-only integration test that pointed at three
contrib components is removed; contrib's existing
make generate-schemas+ git-diff CI continues toexercise the FactoryMaps feature against real-world components.
💡 Enhancements 💡
cmd/mdatagen: Add support for versioned metrics (#15309)Allows metadata to specify versioned metrics for migrating to new semantic conventions.
There are two scenarios catered for when the metric name stays the same during migration.
When a metric name stays the same but its type differs, just the latest metric is
emitted with the new type.
When a metric name stays the same but its attributes differ, the latest version
is emitted with combined attributes during the migration period.
cmd/schemagen: AddoverlayFilesupport to deep-merge hand-curated schema fragments into generated schemas. (#14543)Components can declare an
overlayFilein.schemagen.yamlpointing to a YAML filewhose keys are recursively merged into the auto-generated schema after generation.
This allows injecting descriptions, constraints, or additional properties that cannot
be derived from Go types.
Originally added to the contrib copy of
cmd/schemageninopen-telemetry/opentelemetry-collector-contrib#48917 and brought over with the tool
in this move.
cmd/schemagen: Add-pflag to specify a custom Go package pattern for the config struct. (#14543)The new
-pflag lets callers override the default.package pattern with an arbitraryGo package selector (e.g. a sub-package whose
Configtype schemagen should walk).Originally added to the contrib copy of
cmd/schemageninopen-telemetry/opentelemetry-collector-contrib#48966 and brought over with the tool
in this move.
🧰 Bug fixes 🧰
cmd/mdatagen: Fix an issue when the last feature gate is removed, stale files are left. (#15423)cmd/mdatagen: Fix known acronyms at the end of generated Go identifiers to be all-caps, same as in any other position (#15438)cmd/schemagen: Fix mode detection when using-pto target a package outside the current directory. (#15453)A new
-m component|packageflag is available as a manual override when auto-detection is not possible.v0.154.0Compare Source
🛑 Breaking changes 🛑
cmd/builder: The--skip-get-modulesflag will no longer regenerate yourgo.modfile. (#15390)This is mostly a bug fix, as it led to adverse behaviour that was unintended in the described flow in the README.
Now when you run
--skip-get-modules, yourgo.modfile will truly be untouched byocbas the info log claims.💡 Enhancements 💡
pkg/config/configtls: Addinclude_insecure_cipher_suitesto configtls to enable insecure cipher suites. Insecure cipher suites are disabled by default for security. (#13829)pkg/confighttp: AddExposedHeadersfield toCORSConfigto allow setting theAccess-Control-Expose-Headersresponse header. (#15119)🧰 Bug fixes 🧰
cmd/mdatagen: Removes the extra line in the README.md between status and description (#15306)pkg/exporterhelper: Fix nil-pointer panic insending_queue::batchUnmarshal whensending_queue::sizeris set andsending_queue::batch::enabledis false. (#14687)When
sending_queue::sizerwas set andsending_queue::batch::enabled: falsecleared the batch Optional to None, the sizer-inheritance branch in
queuebatch.Config.Unmarshaldereferenced a nil Optional and crashed thecollector at startup. The branch now also requires
Batch.HasValue().v0.153.0Compare Source
🛑 Breaking changes 🛑
pkg/configoptional: Stabilize feature gate configoptional.AddEnabledField (#15333)pkg/confmap: Stabilize confmap.newExpandedValueSanitizer feature gate (#15339)pkg/exporterhelper: mark exporter.PersistRequestContext as stable (#15330)pkg/otelcol: Stabilize otelcol.printInitialConfig gate (#15340)pkg/pdata: Remove pdata.useCustomProtoEncoding feature gate (#15332)pkg/service: Stabilize telemetry.UseLocalHostAsDefaultMetricsAddress gate (#15342)pkg/xpdata: Stabilize pdata.enableRefCounting feature gate (#15331)🧰 Bug fixes 🧰
pkg/config/configgrpc: Fix memory corruption and fatal error in Snappy (#15237, #15320)v0.152.1: v1.58.0/v0.152.1Compare Source
Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.152.1
End User Changelog
💡 Enhancements 💡
pkg/exporterhelper: Addotelcol_exporter_in_flight_requestsmetric to track the number of export requests currently in-flight per exporter. (#15009)This UpDownCounter increments in startOp and decrements in endOp, allowing operators to monitor
concurrent export activity and detect when an exporter is saturating its worker pool.
🧰 Bug fixes 🧰
pkg/confighttp: Close the original request body after reading block-formatContent-Encoding: snappyrequests. (#15262)pkg/confighttp: Recover from panics in decompression libraries, return HTTP 400 instead of 500. (#13228)pkg/confighttp: Enforcemax_request_body_sizeonContent-Encoding: snappyrequests before the decoded buffer is allocated. (#15252)pkg/otelcol: Stop emitting verbose gRPC transport messages at WARN during normal client disconnect. (#5169)grpc-go gates chatty per-RPC notices (e.g. "HandleStreams failed to read frame:
connection reset by peer") behind
LoggerV2.V(2). zapgrpc.Logger.V conflatesgrpclog verbosity with zap severity, so V(2) returns true whenever WARN is
enabled and these messages emit at WARN. Wrap the installed grpclog.LoggerV2
with a corrected V() that compares against a fixed verbosity threshold,
matching grpclog's intended semantics. See uber-go/zap#1544.
pkg/pdata:pcommon.Value.AsStringno longer HTML-escapes<,>, and&insideValueTypeMapandValueTypeSlicevalues, matching the behavior already used forValueTypeStr. (#14662)pkg/service: Fix Prometheus config defaults mismatch when host is explicitly set in telemetry configuration. (#13867)When users explicitly configured the telemetry metrics section (e.g. to change the host),
the Prometheus exporter boolean fields (WithoutScopeInfo, WithoutUnits, WithoutTypeSuffix)
defaulted to nil/false instead of true, causing metric name format changes compared to the
implicit default configuration. This fix applies the correct defaults during config unmarshaling.
pkg/service: Return noop tracer provider when no trace processors are defined (#15135)API Changelog
🚩 Deprecations 🚩
pkg/xconfmap: Deprecatexconfmap.Validatorandconfmap.Validatein favor ofconfmap.Validatorandconfmap.Validate. (#15142)💡 Enhancements 💡
cmd/mdatagen: Addgo_struct.ignore_defaultflag to suppress default value generation for individual config fields. (#15156)Setting
go_struct.ignore_default: trueon a config field causes mdatagen to omit that field's defaultfrom the generated
createDefaultConfigfunction, emittingnilfor pointer fieldsand
configoptional.Nonefor optional fields.pkg/confmap: Add theconfmap.Validatorinterface andconfmap.Validatefunction for configuration validation. (#15142)Config structs should generally implement the interface to provide validation
of their fields. The
confmap.Validatefunction can be used to validateconfig structs in testing, but is only meant to be called at runtime by the
Collector itself.
🧰 Bug fixes 🧰
pkg/pdata:pcommon.Value.AsStringno longer HTML-escapes<,>, and&insideValueTypeMapandValueTypeSlicevalues, matching the behavior already used forValueTypeStr. (#14662)v0.152.0Compare Source
💡 Enhancements 💡
pkg/exporterhelper: Addotelcol_exporter_in_flight_requestsmetric to track the number of export requests currently in-flight per exporter. (#15009)This UpDownCounter increments in startOp and decrements in endOp, allowing operators to monitor
concurrent export activity and detect when an exporter is saturating its worker pool.
🧰 Bug fixes 🧰
pkg/confighttp: Close the original request body after reading block-formatContent-Encoding: snappyrequests. (#15262)pkg/confighttp: Recover from panics in decompression libraries, return HTTP 400 instead of 500. (#13228)pkg/confighttp: Enforcemax_request_body_sizeonContent-Encoding: snappyrequests before the decoded buffer is allocated. (#15252)pkg/otelcol: Stop emitting verbose gRPC transport messages at WARN during normal client disconnect. (#5169)grpc-go gates chatty per-RPC notices (e.g. "HandleStreams failed to read frame:
connection reset by peer") behind
LoggerV2.V(2). zapgrpc.Logger.V conflatesgrpclog verbosity with zap severity, so V(2) returns true whenever WARN is
enabled and these messages emit at WARN. Wrap the installed grpclog.LoggerV2
with a corrected V() that compares against a fixed verbosity threshold,
matching grpclog's intended semantics. See uber-go/zap#1544.
pkg/pdata:pcommon.Value.AsStringno longer HTML-escapes<,>, and&insideValueTypeMapandValueTypeSlicevalues, matching the behavior already used forValueTypeStr. (#14662)pkg/service: Fix Prometheus config defaults mismatch when host is explicitly set in telemetry configuration. (#13867)When users explicitly configured the telemetry metrics section (e.g. to change the host),
the Prometheus exporter boolean fields (WithoutScopeInfo, WithoutUnits, WithoutTypeSuffix)
defaulted to nil/false instead of true, causing metric name format changes compared to the
implicit default configuration. This fix applies the correct defaults during config unmarshaling.
pkg/service: Return noop tracer provider when no trace processors are defined (#15135)v0.151.0Compare Source
🛑 Breaking changes 🛑
cmd/builder: In the generated Collector source, thereplacestatements in the Go module will now use relative paths by default. (#15097)We expect that this will not break existing use-cases where the generated collector is only used in an interim manner for builds. It enables the possibility of tracking the generated Collector code as a longer living artifact, allowing it to be run on any machine (whereas absolute paths will be different depending on the machine the Collector source is generated on.) We have added
dist::use_absolute_replace_pathsto go back to the absolute path behaviour in the case where there is an unforeseen use-case that requires absolute paths.pkg/confighttp: Stabilize framedSnappy feature gate. (#15096)💡 Enhancements 💡
all: Add declarative schema support for service telemetry resource configuration. (#14411)The
service::telemetry::resourceconfiguration now accepts the declarative schema with explicit name/value pairs:The legacy inline attribute map format is still supported for backward compatibility:
Note:
resource.detectorsis accepted for forward compatibility but is not yet applied by the collector.exporter/otlp_grpc: Added theserver.addressandurl.pathattributes to metrics generated by the otlp exporter. (#14998)exporter/otlp_http: Added theserver.addressandurl.pathattributes to metrics generated by the otlp_http exporter. (#14998)pkg/config/configgrpc: AddUserAgentfield toClientConfigto allow overriding the default gRPC user-agent string. (#14686)The otlp gRPC exporter was unconditionally setting the User-Agent via
grpc.WithUserAgent() at dial time, which takes precedence over per-call
metadata, causing any user-configured User-Agent to be silently discarded.
A dedicated
UserAgentfield has been added toClientConfigwhich, whenset, is used in the dial option directly instead of the default BuildInfo-derived string.
pkg/config/configgrpc: Accept gRPC resolver scheme URIs in client endpoint (e.g. passthrough:///host:port) to allow control over name resolution (#14990)After the migration to grpc.NewClient, some gRPC client components such as the OTLP
exporter experienced connection issues in dual-stack DNS environments. This can now be
fixed by using the passthrough:/// gRPC resolver scheme in the endpoint field.
pkg/config/confignet: Add support for Windows Named Pipe (npipe) transport (#15085)pkg/service: Emit a warning when using the old v0.2.0 declarative config format (#15088)🧰 Bug fixes 🧰
pkg/otelcol: Print components exactly once in theotelcol componentscommand (#14682)This resolves an issue where aliased components were skipped.
pkg/otelcol: Synchronize Collector Run and Shutdown lifecycles so that Shutdown blocks until Run completes all cleanup. (#4947)Shutdown now blocks until Run finishes cleanup, matching http.Server semantics.
If Shutdown is called before Run, the next Run call returns nil after cleaning up
the config provider.
pkg/pdata: Use spec-compliant string representation for NaN, Infinity, and -Infinity in Value.AsString(). ([#14487](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/1448Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.