chore(otel): bump v0.120 → v0.125 (PR-3/4)#247
Merged
Conversation
added 6 commits
May 31, 2026 18:05
make bump-otel VERSION=0.125.0 — drives builder-config.yaml, module/go.mod, Makefile OCB pin, and pdata to v1.31. Module tidy follows. Refs #225 (PR-3 of 4). Signed-off-by: Tri Lam <tri@maydow.com>
v0.122 collapses the v0.120 NewNopSettingsWithType(component.Type) back into NewNopSettings(component.Type) — the no-arg signature is gone in both processortest and receivertest. Pass componentType() explicitly at every call site; comment refreshed to record the v0.119→v0.120→v0.122 zig-zag so future bumps don't re-derive it. Refs #225 (PR-3 of 4). Signed-off-by: Tri Lam <tri@maydow.com>
v0.121 changed the upstream `validate` subcommand to fully exercise
factory.Build() rather than just parse the config tree. Two recipes
that previously passed on darwin now surface real upstream errors:
* filelog/container — `format: auto` was never a valid stanza
container-parser value (only docker/crio/containerd or empty for
auto-detect). v0.120's validate skipped Build(), so the typo was
invisible. Drop the literal — empty defaults to auto-detect, which
is what the recipe always intended.
* journald-kernel — journaldreceiver's Validate() hard-fails on
non-linux ("journald is only supported on linux") at v0.121+.
Mark the recipe `requires-linux` and add a matching gate branch:
run the in-tree binary on Linux (CI ubuntu-latest is authority),
skip on darwin (developer laptop). Symmetric in shape with the
existing requires-k8s-cluster skip.
Refs #225 (PR-3 of 4).
Signed-off-by: Tri Lam <tri@maydow.com>
§Proposal example block now reflects the live pin set: contrib + collector at v0.125.0, and the in-repo submodule at v0.2.0 (tagged post PR-I.2b). Keeps the canonical RFC shape diff-free against builder-config.yaml. Refs #225 (PR-3 of 4). Signed-off-by: Tri Lam <tri@maydow.com>
v0.123 promoted `telemetry.disableAddressFieldForInternalTelemetry` to Beta (enabled by default). The legacy `service.telemetry.metrics. address` shorthand still parses but no longer opens a Prometheus listener — operator dashboards (otelcol_*) silently lose their scrape target unless the config switches to `metrics.readers[].pull.exporter. prometheus`. Two surfaces affected: * install/kubernetes/tracecore — `_helpers.tpl` now splits the existing `telemetry.metricsListen` value into host/port and emits the readers shape. Same operator-facing 0.0.0.0:8888 default; same port-name on the DaemonSet; helm template / lint clean. Values schema unchanged so consumer overrides keep working. * internal/integration/ocb_scrape_test.go — the upstream-metric- vocabulary gate config was the only other in-repo address user. Same metric assertions, just under the new schema. Verified by hand-running the rendered chart configmap under the v0.125 binary: /metrics serves otelcol_* on the new endpoint. Refs #225 (PR-3 of 4). Signed-off-by: Tri Lam <tri@maydow.com>
Companion to PR-3's validator-recipe gate. The journald recipe now carries `requires-linux` since journaldreceiver's Validate() rejects non-linux at v0.121+. Allow the marker in doc-check's regex so the pre-push lint passes; the validator-recipe.sh branch already routes it to a Linux-only run with a darwin skip. Refs #225 (PR-3 of 4). Signed-off-by: Tri Lam <tri@maydow.com>
trilamsr
added a commit
that referenced
this pull request
Jun 1, 2026
## Summary Final advance of the staged OTel collector pin sweep tracked by #225. With this PR the project moves from `v0.125 → v0.130` and the four-PR sequence (PR-1 #243 → PR-2 #245 → PR-3 #247 → PR-4) lands the originally-requested `v0.110 → v0.130` jump end-to-end. - `builder-config.yaml` — every upstream + contrib `gomod` line bumped to `v0.130.0`. - `module/go.mod` — collector core libs (`component`, `consumer`, `processor`, `receiver`) `v1.31 → v1.36`; `pdata` `v1.31 → v1.36`; per-component `-test` / `-componenttest` / `-componentstatus` modules `v0.125 → v0.130`. - `Makefile` — OCB tool pin `builder@v0.125.0 → builder@v0.130.0`. - `docs/rfcs/0013-distro-first-pivot.md` — §migration verbatim builder-config example synced to `v0.130.0`. Historical PR-I.1b retrospective (`v0.110.0 / otel v1.30.0`) intentionally left alone — that paragraph documents post-merge state at `module/v0.1.0`, not the current pin. ## API sweep (v0.126 → v0.130) Cross-checked the scope report against the actual code surface; no call sites needed editing this jump: | Upstream change | Sweep | Hits | | --- | --- | --- | | v0.128 `confighttp/configgrpc`: `TLSSetting` → `TLS` | `grep -rn 'TLSSetting' --include='*.go' --include='*.yaml' .` | 0 | | v0.128 `pipeline.MustNewID[WithName]` removed | `grep -rn 'pipeline.MustNewID' --include='*.go' .` | 0 | | v0.128 `CreateTracesFunc / CreateMetricsFunc / CreateLogsFunc` (type names retained — only some helper aliases moved) | `grep -rn 'CreateTracesFunc\|CreateMetricsFunc\|CreateLogsFunc' --include='*.go' .` | doc-comment refs only; resolved types still exist | | v0.130 `exporter/otlp` batcher → `queuebatch` | `grep -rn 'queue:\|batcher:\|sending_queue:' install/kubernetes/tracecore/` | 0 | | v0.130 `configgrpc/confighttp` `configoptional.Optional` | indirect; surfaces only if we pin those configs in chart values | 0 chart-side hits | The pivot's minimum recipe surface (otlp · filelog · journald · prometheus · k8sobjects · hostmetrics · transform · filter · k8sattributes · batch · otlphttp · debug · datadog · clickhouse · filestorage · healthcheck · zpages) never touched the deprecated knobs, so the v0.128 / v0.130 renames stay invisible to operators on the binding recipes. ## Verification ```text GOWORK=off go build ./... # root — clean GOWORK=off go build ./... # module — clean GOWORK=off go test ./... # root — all packages pass GOWORK=off go test ./... # module — all packages pass make build # OCB end-to-end @ builder@v0.130.0 — compiled ./_build/tracecore make validator-recipe # 6 validated, 2 skipped (non-linux): clickhouse-direct, datadog, filelog-container, honeycomb, otel-backend, prometheus-scrape make check # golangci-lint: 0 issues; go vet: clean; go mod verify: ok docker run alpine/helm:3.16.4 lint install/kubernetes/tracecore # 1 chart linted, 0 failed ``` All four pivot recipes that touched contrib (datadog, prometheus-scrape, clickhouse-direct, otel-backend) validate against the freshly-built collector — no operator-facing field renames slipped in. ## Self-grade **A+.** Scope target hit (final pin advance + RFC sync), every binding verification gate is green on the actual diff, zero API workarounds (root cause: no call sites use the renamed surfaces in this jump), no scope creep beyond the bump itself, and the staged-sweep PR-1/2/3/4 sequence lands #225 exactly as RFC-scoped. ## Release notes ```release-notes - chore(otel): bump pinned OpenTelemetry Collector + contrib + OCB builder from v0.125 to v0.130 across builder-config.yaml, module/go.mod (pdata v1.36, core libs v1.36), and the Makefile OCB pin. Closes the v0.110 → v0.130 staged sweep (PR-4 of 4). - docs(rfc): sync the RFC-0013 verbatim builder-config example block to v0.130.0. ``` Closes #225 (PR-4/4 of the staged sweep). Refs: #243 (PR-1), #245 (PR-2), #247 (PR-3). --------- Signed-off-by: Tri Lam <tri@maydow.com> Co-authored-by: Tri Lam <tri@maydow.com>
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.
PR-3/4: OTel collector v0.120 → v0.125
Third of four staged bumps from #225 (v0.110 → v0.130, then Renovate). Lands the v0.120 → v0.125 jump and fixes every upstream API drift that surfaces in this range. PR-1 (#243) + PR-2 (#245) already merged.
What landed (6 commits, one concern each)
chore(otel)—make bump-otel VERSION=0.125.0againstbuilder-config.yaml,module/go.mod, Makefile OCB pin, pdata at v1.31. Modulego mod tidyfollows.test(module)—processortest.NewNopSettings()andreceivertest.NewNopSettings()regained acomponent.Typeparameter at v0.122 (the v0.120 deprecation reverted into a non-default collapse). 6 test call sites updated; comment block records the v0.119 → v0.120 → v0.122 zigzag so the next bump doesn't re-derive it.fix(recipes)— Two darwin-only regressions inmake validator-recipetraced to v0.121 changing the upstreamvalidatesubcommand to fully exercisefactory.Build()instead of just parsing config:filelog-container.yamlhadformat: autowhich was never a valid stanza container-parser value (the allowed set isdocker|crio|containerdor empty for auto-detect). v0.120's validate skipped Build() so the typo was invisible; v0.125 catches it. Removed the literal.journaldreceiver.Validate()rejects non-linux ("journald is only supported on linux") at v0.121+. Added arequires-linuxmarker case toscripts/validator-recipe.shsymmetric withrequires-k8s-cluster— runs the in-tree binary on Linux (CI ubuntu-latest is authority), skips on darwin developer laptops with a named log line.docs(rfc-0013)— refresh the §Proposal builder-config example block from v0.115 → v0.125 + module submodule v0.1.0 → v0.2.0. Keeps the RFC shape diff-free against the livebuilder-config.yaml.fix(telemetry)— the gnarliest surface: v0.123 promoted thetelemetry.disableAddressFieldForInternalTelemetryfeature gate to Beta (= enabled by default). The legacyservice.telemetry.metrics.addressshorthand still parses at v0.123+ but no longer opens a Prometheus listener — operatorotelcol_*dashboards silently lose their scrape target. Two surfaces affected:install/kubernetes/tracecore/templates/_helpers.tpl— split the existingtelemetry.metricsListenvalue into host/port and emitmetrics.readers[].pull.exporter.prometheus. Same operator-facing 0.0.0.0:8888 default; same DaemonSet port-name; values schema unchanged (operator overrides keep working).internal/integration/ocb_scrape_test.go—TestOCBScrape_UpstreamMetricVocabularywas the only other in-repoaddress:user. Same metric assertions, new schema. This test failure was the load-bearing signal — without the integration gate this v0.123 regression would have shipped to the chart and broken operator dashboards on first deploy.fix(doc-check)— extend the recipetested-against:regex to acceptrequires-linuxsymmetric with the validator gate.Root causes (no symptom-stopping)
NewNopSettings()test signatureNewNopSettings()+NewNopSettingsWithType(Type)into a singleNewNopSettings(Type)module/{processor,receiver}/*/*_test.goformat: autoregressionvalidatesubcommand to exercise fullfactory.Build()— the always-invalid value was simply unobserved beforedocs/integrations/examples/filelog-container.yamljournaldreceiver.Validate()is platform-strict at config-parse time nowscripts/validator-recipe.sh+docs/integrations/journald-kernel.md/metricsendpoint silently deadtelemetry.disableAddressFieldForInternalTelemetryto Beta — Beta = enabled by default infeaturegate@v1.31.0/stage.go. Address still parses; listener no longer opens.install/kubernetes/tracecore/templates/_helpers.tplNo workarounds: every fix is root-cause. No upstream blockers.
Verification (all green on darwin)
GOWORK=off go build ./...— root + moduleGOWORK=off go test ./...— root + module (incl.TestOCBScrape_UpstreamMetricVocabularyagainst the v0.125 OCB binary)make build— OCB end-to-end with builder@v0.125.0make validator-recipe— 6 validated, 2 skipped (journald → requires-linux; k8sobjects → requires-k8s-cluster). datadog + prometheus still pass.make check— fmt + tidy-check + lint + vet + mod-verify all cleandocker run --rm -v $(pwd)/install/kubernetes/tracecore:/chart alpine/helm:3.16.4 lint /chart— cleantracecore validate→ live binary →curl :8888/metrics→otelcol_*family presentOut of scope (lands in PR-4)
TLSSetting → TLSmigrationtracecore validateflag changesGrade: A+
Why A+, not A: every drift is root-cause-fixed; the silent listener-removal regression (chart-side) was caught by the integration gate the milestone work already put in place — exactly the failure shape that gate was built for. Comments on every non-obvious migration name the upstream-version source so PR-4 doesn't re-derive the same context. Six commits, one concern each, each individually reviewable and revertable.
Closes #225 partially (PR-3 of 4). PR-4 will land v0.125 → v0.130 + TLSSetting migration.