Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 26 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
.PHONY: test test-extras test-extras-sustained test-extras-fuzz test-extras-fuzz-kmsg test-extras-fuzz-journald test-extras-fuzz-nccl-fr test-extras-race bench bench-check

# Format + tidy
.PHONY: fmt fmt-fix vet lint lint-fix tidy tidy-check mod-verify
.PHONY: fmt fmt-fix vet lint lint-fix tidy tidy-check mod-verify bump-otel

# Code generation
.PHONY: generate-fixtures generate-fixtures-check
Expand Down Expand Up @@ -58,7 +58,7 @@ build: ## Build tracecore via OpenTelemetry Collector Builder using builder-con
@# the binary's release-tag namespace.
@# 3. builder-config.yaml's hardcoded dist.version (fallback when
@# neither works — shallow clone with no v* tag, no git, etc).
GOOS= GOARCH= GOBIN=$(CURDIR)/_build/.tools go install go.opentelemetry.io/collector/cmd/builder@v0.110.0
GOOS= GOARCH= GOBIN=$(CURDIR)/_build/.tools go install go.opentelemetry.io/collector/cmd/builder@v0.115.0
@version="$${TRACECORE_VERSION:-$$(git describe --tags --always --match 'v*' --dirty=-dev 2>/dev/null || true)}"; \
if [ -z "$$version" ]; then \
echo "make build: TRACECORE_VERSION empty and git describe failed; using builder-config.yaml dist.version unchanged"; \
Expand Down Expand Up @@ -136,6 +136,30 @@ tidy-check: ## Verify go.mod / go.sum are tidy without mutating; fails with a d
mod-verify: ## Verify go.mod / go.sum hashes match (does not mutate; pair with `make tidy` to update).
go mod verify

bump-otel: ## Bump pinned OpenTelemetry Collector minor across builder-config.yaml + module/go.mod + Makefile OCB pin. Usage: make bump-otel VERSION=0.115.0 (no leading `v`). Pdata defaults to v1.<minor-94>.0 (e.g. v0.115 → v1.21); override with PDATA_VERSION=1.21.0.
@# Single-source the contrib/collector minor bump. The three places
@# we pin must move in lockstep or OCB build/MVS goes mismatched:
@# 1. builder-config.yaml — OCB reads this; every v0.<minor>.0 line
@# under receivers:/processors:/exporters:/extensions: is bumped.
@# 2. module/go.mod — the in-repo submodule must agree with OCB's
@# expected collector version or _build/ won't compile.
@# 3. Makefile — the `builder@v0.<minor>.0` pin on the OCB tool.
@# pdata sits on the v1.x train with a fixed -94 offset from collector
@# minors (v0.110 ↔ v1.16, v0.115 ↔ v1.21, v0.130 ↔ v1.36). PDATA_VERSION
@# overrides for off-cycle bumps.
@# This target only runs sed; commit the diff manually after running
@# `go mod tidy` in module/ and verifying the build.
@if [ -z "$(VERSION)" ]; then echo "usage: make bump-otel VERSION=0.X.0 [PDATA_VERSION=1.Y.0]"; exit 2; fi
@case "$(VERSION)" in 0.*) ;; *) echo "VERSION must look like 0.X.0 (no leading v); got $(VERSION)"; exit 2;; esac
@minor=$$(echo "$(VERSION)" | cut -d. -f2); \
pdata="$(PDATA_VERSION)"; \
if [ -z "$$pdata" ]; then pdata="1.$$((minor - 94)).0"; fi; \
echo "bump-otel: collector v0.$$minor.0 -> v$(VERSION); pdata -> v$$pdata"; \
sed -i.bak -E '/(go\.opentelemetry\.io\/collector|opentelemetry-collector-contrib)/ s| v0\.[0-9]+\.[0-9]+$$| v$(VERSION)|' builder-config.yaml && rm -f builder-config.yaml.bak; \
sed -i.bak -E '/^\tgo\.opentelemetry\.io\/collector/ s|v0\.[0-9]+\.[0-9]+|v$(VERSION)|; /^\tgo\.opentelemetry\.io\/collector\/pdata / s|v1\.[0-9]+\.[0-9]+|v'"$$pdata"'|; /^\tgo\.opentelemetry\.io\/collector\/pdata\/pprofile / s|v0\.[0-9]+\.[0-9]+|v$(VERSION)|' module/go.mod && rm -f module/go.mod.bak; \
sed -i.bak -E 's|builder@v0\.[0-9]+\.[0-9]+|builder@v$(VERSION)|' Makefile && rm -f Makefile.bak
@echo "bump-otel: done. Next: (cd module && GOWORK=off go mod tidy) && GOWORK=off go build ./module/..."

license-check: ## Verify every Go file has the SPDX-License-Identifier header.
@missing=$$(find . -name '*.go' -not -path './.git/*' -not -path './vendor/*' -not -path './_build/*' -not -path './.claude/worktrees/*' \
| xargs grep -L '^// SPDX-License-Identifier: Apache-2.0' || true); \
Expand Down
34 changes: 17 additions & 17 deletions builder-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,17 @@ dist:
module: github.com/tracecoreai/tracecore

receivers:
- gomod: go.opentelemetry.io/collector/receiver/otlpreceiver v0.110.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.110.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/journaldreceiver v0.110.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8sobjectsreceiver v0.110.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.110.0
- gomod: go.opentelemetry.io/collector/receiver/otlpreceiver v0.115.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.115.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/journaldreceiver v0.115.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8sobjectsreceiver v0.115.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.115.0
# RFC-0013 PR-E (2026-05-30): hostmetricsreceiver replaces the
# planned-but-nonexistent telemetrygeneratorreceiver as the bench
# heartbeat source. Two upstream proposals (contrib #41687, #43657)
# closed `not_planned`; re-evaluation trigger is a generator-shaped
# receiver landing in contrib at any future tag.
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.110.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.115.0
# RFC-0013 PR-I.1b (2026-05-31): nccl_fr receiver moved out of the
# root module into the in-repo Go submodule at
# module/receiver/ncclfrreceiver/. The submodule has a single
Expand All @@ -41,21 +41,21 @@ receivers:
import: github.com/tracecoreai/tracecore/module/receiver/ncclfrreceiver

processors:
- gomod: go.opentelemetry.io/collector/processor/batchprocessor v0.110.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.110.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.110.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.110.0
- gomod: go.opentelemetry.io/collector/processor/batchprocessor v0.115.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.115.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.115.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.115.0

exporters:
- gomod: go.opentelemetry.io/collector/exporter/otlphttpexporter v0.110.0
- gomod: go.opentelemetry.io/collector/exporter/debugexporter v0.110.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.110.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/clickhouseexporter v0.110.0
- gomod: go.opentelemetry.io/collector/exporter/otlphttpexporter v0.115.0
- gomod: go.opentelemetry.io/collector/exporter/debugexporter v0.115.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.115.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/clickhouseexporter v0.115.0

extensions:
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage/filestorage v0.110.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.110.0
- gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.110.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage/filestorage v0.115.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.115.0
- gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.115.0

# RFC-0013 PR-I.1b (2026-05-31): in-repo Go submodule under module/ now
# hosts ncclfrreceiver (this PR). PR-I.2 will add the two processor
Expand Down
34 changes: 17 additions & 17 deletions docs/rfcs/0013-distro-first-pivot.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,32 +37,32 @@ dist:
module: github.com/tracecoreai/tracecore

receivers:
- gomod: go.opentelemetry.io/collector/receiver/otlpreceiver v0.110.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.110.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/journaldreceiver v0.110.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8sobjectsreceiver v0.110.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.110.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.110.0 # ← swapped from telemetrygeneratorreceiver per §migration PR-E; original receiver does not exist in contrib
- gomod: go.opentelemetry.io/collector/receiver/otlpreceiver v0.115.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.115.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/journaldreceiver v0.115.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8sobjectsreceiver v0.115.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.115.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.115.0 # ← swapped from telemetrygeneratorreceiver per §migration PR-E; original receiver does not exist in contrib
- gomod: github.com/tracecoreai/tracecore/module/receiver/ncclfrreceiver v0.1.0

processors:
- gomod: go.opentelemetry.io/collector/processor/batchprocessor v0.110.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.110.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.110.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.110.0
- gomod: go.opentelemetry.io/collector/processor/batchprocessor v0.115.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.115.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.115.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.115.0
- gomod: github.com/tracecoreai/tracecore/module/processor/rankjoinprocessor v0.1.0
- gomod: github.com/tracecoreai/tracecore/module/processor/patterndetectorprocessor v0.1.0

exporters:
- gomod: go.opentelemetry.io/collector/exporter/otlphttpexporter v0.110.0
- gomod: go.opentelemetry.io/collector/exporter/debugexporter v0.110.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.110.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/clickhouseexporter v0.110.0
- gomod: go.opentelemetry.io/collector/exporter/otlphttpexporter v0.115.0
- gomod: go.opentelemetry.io/collector/exporter/debugexporter v0.115.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.115.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/clickhouseexporter v0.115.0

extensions:
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage/filestorage v0.110.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.110.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/zpagesextension v0.110.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage/filestorage v0.115.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.115.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/zpagesextension v0.115.0
```

The `github.com/tracecoreai/tracecore/module` Go submodule (lives in-repo at `module/` with its own `go.mod`; root `go.work` lists both `.` and `./module` so dev builds resolve without publishing; OCB consumes via `gomod:` + `replaces: ./module` per §migration PR-I) contains only:
Expand Down
64 changes: 35 additions & 29 deletions module/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,29 +3,35 @@ module github.com/tracecoreai/tracecore/module
go 1.22.0

// RFC-0013 PR-I.1b (2026-05-31): collector / otel version pins match the
// OCB distribution baseline at builder-config.yaml (contrib v0.110.0).
// The receiver is built into the OCB-generated _build/ binary and must
// agree with contrib's expected collector/{component,receiver,...}
// versions; pinning the submodule to the OCB baseline keeps MVS from
// pulling forward to v1.59.0 inside _build/go.mod, which would break
// hostmetricsreceiver (`scraperhelper` moved out of receiver between
// v0.110.0 and v1.59.0). The root module independently uses v1.59.0
// for its non-OCB code paths; MVS reconciles to the higher version
// where root + submodule overlap, which is fine for root.
// OCB distribution baseline at builder-config.yaml. Bumped v0.110.0 →
// v0.115.0 in #225 PR-1/4 (2026-05-31); the v0.110→v0.130 catch-up is
// staged across four PRs because the API surface drifted (notably the
// *profiles → x* rename at v0.120, TLSSetting → TLS at v0.123, and the
// Go 1.23 floor at v0.119). The receiver is built into the OCB-generated
// _build/ binary and must agree with contrib's expected
// collector/{component,receiver,...} versions; pinning the submodule to
// the OCB baseline keeps MVS from pulling forward to v1.59.0 inside
// _build/go.mod, which would break hostmetricsreceiver (`scraperhelper`
// moved out of receiver between v0.110.0 and v1.59.0). The root module
// independently uses v1.59.0 for its non-OCB code paths; MVS reconciles
// to the higher version where root + submodule overlap, which is fine
// for root. Use `make bump-otel VERSION=0.X.0` to bump in lockstep.
require (
go.opentelemetry.io/collector/component v0.110.0
go.opentelemetry.io/collector/consumer v0.110.0
go.opentelemetry.io/collector/pdata v1.16.0
go.opentelemetry.io/collector/receiver v0.110.0
go.opentelemetry.io/otel v1.30.0
go.opentelemetry.io/otel/metric v1.30.0
go.opentelemetry.io/otel/sdk/metric v1.30.0
go.opentelemetry.io/collector/component v0.115.0
go.opentelemetry.io/collector/consumer v1.21.0
go.opentelemetry.io/collector/pdata v1.21.0
go.opentelemetry.io/collector/receiver v0.115.0
go.opentelemetry.io/otel v1.32.0
go.opentelemetry.io/otel/metric v1.32.0
go.opentelemetry.io/otel/sdk/metric v1.32.0
go.uber.org/zap v1.27.0
)

require go.opentelemetry.io/collector/receiver/receivertest v0.115.0

require (
github.com/santhosh-tekuri/jsonschema/v6 v6.0.2
github.com/stretchr/testify v1.9.0
github.com/stretchr/testify v1.10.0
)

require (
Expand All @@ -38,21 +44,21 @@ require (
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
go.opentelemetry.io/collector/component/componentprofiles v0.110.0 // indirect
go.opentelemetry.io/collector/config/configtelemetry v0.110.0 // indirect
go.opentelemetry.io/collector/consumer/consumerprofiles v0.110.0 // indirect
go.opentelemetry.io/collector/internal/globalsignal v0.110.0 // indirect
go.opentelemetry.io/collector/pdata/pprofile v0.110.0 // indirect
go.opentelemetry.io/collector/pipeline v0.110.0 // indirect
go.opentelemetry.io/collector/receiver/receiverprofiles v0.110.0 // indirect
go.opentelemetry.io/otel/sdk v1.30.0 // indirect
go.opentelemetry.io/otel/trace v1.30.0 // indirect
go.opentelemetry.io/collector/component/componenttest v0.115.0 // indirect
go.opentelemetry.io/collector/config/configtelemetry v0.115.0 // indirect
go.opentelemetry.io/collector/consumer/consumererror v0.115.0 // indirect
go.opentelemetry.io/collector/consumer/consumerprofiles v0.115.0 // indirect
go.opentelemetry.io/collector/pdata/pprofile v0.115.0 // indirect
go.opentelemetry.io/collector/pipeline v0.115.0 // indirect
go.opentelemetry.io/collector/receiver/receiverprofiles v0.115.0 // indirect
go.opentelemetry.io/otel/sdk v1.32.0 // indirect
go.opentelemetry.io/otel/trace v1.32.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
golang.org/x/net v0.28.0 // indirect
golang.org/x/sys v0.25.0 // indirect
golang.org/x/sys v0.27.0 // indirect
golang.org/x/text v0.17.0 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20240822170219-fc7c04adadcd // indirect
google.golang.org/grpc v1.66.2 // indirect
google.golang.org/protobuf v1.34.2 // indirect
google.golang.org/grpc v1.67.1 // indirect
google.golang.org/protobuf v1.35.2 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)
Loading
Loading