mdatagen: avoid panic when run without arguments#14506
Merged
Merged
Conversation
22ba914 to
40cb9e7
Compare
Member
|
Could you add a test? |
40cb9e7 to
31bfefe
Compare
Contributor
Author
Added a regression test covering the zero-args case. Thanks. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #14506 +/- ##
==========================================
- Coverage 91.84% 91.84% -0.01%
==========================================
Files 677 677
Lines 42744 42745 +1
==========================================
- Hits 39260 39258 -2
- Misses 2429 2431 +2
- Partials 1055 1056 +1 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
dmathieu
approved these changes
Feb 4, 2026
codeboten
approved these changes
Feb 5, 2026
Contributor
Contributor
TimoBehrendt
pushed a commit
to TimoBehrendt/tracebasedlogsampler
that referenced
this pull request
Mar 19, 2026
…ocessortest to v0.147.0 (#38) This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [go.opentelemetry.io/collector/processor/processortest](https://github.com/open-telemetry/opentelemetry-collector) | `v0.144.0` → `v0.147.0` |  |  | --- ### Release Notes <details> <summary>open-telemetry/opentelemetry-collector (go.opentelemetry.io/collector/processor/processortest)</summary> ### [`v0.147.0`](https://github.com/open-telemetry/opentelemetry-collector/blob/HEAD/CHANGELOG.md#v1530v01470) [Compare Source](open-telemetry/opentelemetry-collector@v0.146.1...v0.147.0) ##### 💡 Enhancements 💡 - `exporter/debug`: Output bucket counts for exponential histogram data points in normal verbosity. ([#​10463](open-telemetry/opentelemetry-collector#10463)) - `pkg/exporterhelper`: Add `metadata_keys` configuration to `sending_queue.batch.partition` to partition batches by client metadata ([#​14139](open-telemetry/opentelemetry-collector#14139)) The `metadata_keys` configuration option is now available in the `sending_queue.batch.partition` section for all exporters. When specified, batches are partitioned based on the values of the listed metadata keys, allowing separate batching per metadata partition. This feature is automatically configured when using `exporterhelper.WithQueue()`. ##### 🧰 Bug fixes 🧰 - `cmd/builder`: Fix duplicate error output when CLI command execution fails in the builder tool. ([#​14436](open-telemetry/opentelemetry-collector#14436)) - `cmd/mdatagen`: Fix duplicate error output when CLI command execution fails in the mdatagen tool. ([#​14436](open-telemetry/opentelemetry-collector#14436)) - `cmd/mdatagen`: Fix semconv URL validation for metrics with underscores in their names ([#​14583](open-telemetry/opentelemetry-collector#14583)) Metrics like `system.disk.io_time` now correctly validate against semantic convention URLs containing underscores in the anchor tag. - `extension/memory_limiter`: Use ChainUnaryInterceptor instead of UnaryInterceptor to allow multiple interceptors. ([#​14634](open-telemetry/opentelemetry-collector#14634)) If multiple extensions that use the UnaryInterceptor are set the binary panics at start time. - `extension/memory_limiter`: Add support for streaming services. ([#​14634](open-telemetry/opentelemetry-collector#14634)) - `pkg/config/configmiddleware`: Add context.Context to HTTP middleware interface constructors. ([#​14523](open-telemetry/opentelemetry-collector#14523)) This is a breaking API change for components that implement or use extensionmiddleware. - `pkg/confmap`: Fix another issue where configs could fail to decode when using interpolated values in string fields. ([#​14034](open-telemetry/opentelemetry-collector#14034)) For example, a resource attribute can be set via an environment variable to a string that is parseable as a number, e.g. `1234`. (A similar bug was fixed in a previous release: that one was triggered when the field was nested in a struct, whereas this one is triggered when the field internally has type "pointer to string" rather than "string".) - `pkg/otelcol`: The featuregate subcommand now rejects extra positional arguments instead of silently ignoring them. ([#​14554](open-telemetry/opentelemetry-collector#14554)) - `pkg/queuebatch`: Fix data race in partition\_batcher where resetTimer() was called outside mutex, causing concurrent timer.Reset() calls and unpredictable batch flush timing under load. ([#​14491](open-telemetry/opentelemetry-collector#14491)) - `pkg/scraperhelper`: Log scrapers now emit log-appropriate receiver telemetry ([#​14654](open-telemetry/opentelemetry-collector#14654)) Log scrapers previously emitted the same receiver telemetry as metric scrapers, such as the otelcol\_receiver\_accepted\_metric\_points metric (instead of otelcol\_receiver\_accepted\_log\_records), or spans named receiver/myreceiver/MetricsReceived (instead of receiver/myreceiver/LogsReceived). This did not affect scraper-specific spans and metrics. - `processor/batch`: Fixes a bug where the batch processor would not copy `SchemaUrl` metadata from resource and scope containers during partial batch splits. ([#​12279](open-telemetry/opentelemetry-collector#12279), [#​14620](open-telemetry/opentelemetry-collector#14620)) <!-- previous-version --> ### [`v0.146.1`](https://github.com/open-telemetry/opentelemetry-collector/blob/HEAD/CHANGELOG.md#v1520v01461) [Compare Source](open-telemetry/opentelemetry-collector@v0.146.0...v0.146.1) <!-- previous-version --> ### [`v0.146.0`](https://github.com/open-telemetry/opentelemetry-collector/blob/HEAD/CHANGELOG.md#v01460) [Compare Source](open-telemetry/opentelemetry-collector@v0.145.0...v0.146.0) ##### 🛑 Breaking changes 🛑 - `all`: Increase minimum Go version to 1.25 ([#​14567](open-telemetry/opentelemetry-collector#14567)) ##### 🚩 Deprecations 🚩 - `pdata/pprofile`: Declare removed aggregation elements as deprecated. ([#​14528](open-telemetry/opentelemetry-collector#14528)) ##### 💡 Enhancements 💡 - `all`: Add detailed failure attributes to exporter send\_failed metrics at detailed telemetry level. ([#​13956](open-telemetry/opentelemetry-collector#13956)) The `otelcol_exporter_send_failed_{spans,metric_points,log_records}` metrics now include failure attributes when telemetry level is Detailed: `error.type` (OpenTelemetry semantic convention describing the error class) and `error.permanent` (indicates if error is permanent/non-retryable). The `error.type` attribute captures gRPC status codes (e.g., "Unavailable", "ResourceExhausted"), standard Go context errors (e.g., "canceled", "deadline\_exceeded"), and collector-specific errors (e.g., "shutdown"). This enables better alerting and debugging by providing standardized error classification. - `cmd/builder`: Introduce new experimental `init` subcommand ([#​14530](open-telemetry/opentelemetry-collector#14530)) The new `init` subcommand initializes a new custom collector - `cmd/builder`: Add "telemetry" field to allow configuring telemetry providers ([#​14575](open-telemetry/opentelemetry-collector#14575)) Most users should not need to use this, this field should only be set if you intend to provide your own OpenTelemetry SDK. - `cmd/mdatagen`: Introduce additional metadata (the version since the deprecation started, and the deprecation reason) for deprecated metrics. ([#​14113](open-telemetry/opentelemetry-collector#14113)) - `cmd/mdatagen`: Add optional `relationships` field to entity schema in metadata.yaml ([#​14284](open-telemetry/opentelemetry-collector#14284)) - `exporter/debug`: Add `output_paths` configuration option to control output destination when `use_internal_logger` is false. ([#​10472](open-telemetry/opentelemetry-collector#10472)) When `use_internal_logger` is set to `false`, the debug exporter now supports configuring the output destination via the `output_paths` option. This allows users to send debug exporter output to `stdout`, `stderr`, or a file path. The default value is `["stdout"]` to maintain backward compatibility. - `pkg/confmap`: Add experimental `ToStringMapRaw` function to decode `confmap.Conf` into a string map without losing internal types ([#​14480](open-telemetry/opentelemetry-collector#14480)) This method exposes the internal structure of a `confmap.Conf` which may change at any time without prior notice ##### 🧰 Bug fixes 🧰 - `cmd/mdatagen`: Reset aggDataPoints during metric init to avoid index out of range panic across emit cycles when reaggregation is enabled. ([#​14569](open-telemetry/opentelemetry-collector#14569)) - `cmd/mdatagen`: Fix panic when mdatagen is run without arguments. ([#​14506](open-telemetry/opentelemetry-collector#14506)) - `pdata/pprofile`: Fix off-by-one issue in dictionary lookups. ([#​14534](open-telemetry/opentelemetry-collector#14534)) - `pkg/config/confighttp`: Fix high cardinality span name from request method from confighttp server internal telemetry ([#​14516](open-telemetry/opentelemetry-collector#14516)) Follow spec to bound request method cardinality. - `pkg/otelcol`: Ignore component aliases in the `otelcol components` command ([#​14492](open-telemetry/opentelemetry-collector#14492)) - `pkg/otelcol`: Order providers and converters in alphabetical order in the `components` subcommand. ([#​14476](open-telemetry/opentelemetry-collector#14476)) <!-- previous-version --> ### [`v0.145.0`](https://github.com/open-telemetry/opentelemetry-collector/blob/HEAD/CHANGELOG.md#v1510v01450) [Compare Source](open-telemetry/opentelemetry-collector@v0.144.0...v0.145.0) ##### 💡 Enhancements 💡 - `pkg/scraperhelper`: ScraperID has been added to the logs for metrics, logs, and profiles ([#​14461](open-telemetry/opentelemetry-collector#14461)) ##### 🧰 Bug fixes 🧰 - `exporter/otlp_grpc`: Fix the OTLP exporter balancer to use round\_robin by default, as intended. ([#​14090](open-telemetry/opentelemetry-collector#14090)) - `pkg/config/configoptional`: Fix `Unmarshal` methods not being called when config is wrapped inside `Optional` ([#​14500](open-telemetry/opentelemetry-collector#14500)) This bug notably manifested in the fact that the `sending_queue::batch::sizer` config for exporters stopped defaulting to `sending_queue::sizer`, which sometimes caused the wrong units to be used when configuring `sending_queue::batch::min_size` and `max_size`. As part of the fix, `xconfmap` exposes a new `xconfmap.WithForceUnmarshaler` option, to be used in the `Unmarshal` methods of wrapper types like `configoptional.Optional` to make sure the `Unmarshal` method of the inner type is called. The default behavior remains that calling `conf.Unmarshal` on the `confmap.Conf` passed as argument to an `Unmarshal` method will skip any top-level `Unmarshal` methods to avoid infinite recursion in standard use cases. - `pkg/confmap`: Fix an issue where configs could fail to decode when using interpolated values in string fields. ([#​14413](open-telemetry/opentelemetry-collector#14413)) For example, a header can be set via an environment variable to a string that is parseable as a number, e.g. `1234` - `pkg/service`: Don't error on startup when process metrics are enabled on unsupported OSes (e.g. AIX) ([#​14307](open-telemetry/opentelemetry-collector#14307)) <!-- previous-version --> </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My41LjQiLCJ1cGRhdGVkSW5WZXIiOiI0My41LjQiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=--> Reviewed-on: https://gitea.t000-n.de/t.behrendt/tracebasedlogsampler/pulls/38 Reviewed-by: t.behrendt <t.behrendt@noreply.localhost> Co-authored-by: Renovate Bot <renovate@t00n.de> Co-committed-by: Renovate Bot <renovate@t00n.de>
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.
Running mdatagen without arguments panics due to missing arg validation.
Expected behavior
Error: accepts 1 arg(s), received 0
Actual behavior
panic: runtime error: index out of range [0] with length 0
Steps to reproduce