Skip to content

v1.102.0

@andykellr andykellr tagged this 23 Jun 12:14
* docs: add OCB canonical build spec

update spec

* chore: refactor v1 to use ocb for build

Drives the v1 BDOT Collector build through the OpenTelemetry Collector
Builder using manifests/observIQ/manifest.yaml as the source of truth for
components, with a hand-maintained main.go overlay (buildscripts/main.go)
that wires the managed-mode runtime in.

Relocates the runtime cluster (collector, opamp, logging, report, service,
packagestate, measurements) into internal/extension/opampconnectionextension/
as its own Go module; internal/processor/snapshotprocessor likewise becomes
its own module. Most subpackages move under
internal/extension/opampconnectionextension/internal/ so they're not
importable from outside the module — only the integration surfaces
(root package, runtime, measurements, report, packagestate) stay public.

Adds the runtime.Run(Options) entry point. cmd/collector/main.go (legacy
build) and buildscripts/main.go (ocb build) both delegate to it.

Adds manifests/observIQ/manifest.yaml (93 receivers, 41 processors,
42 exporters, 8 connectors, 22 extensions, 5 providers), the verify-manifest
CI gate, and the agent-ocb Makefile target. Legacy cmd/collector build path
is left intact; cutover happens in the follow-up PR.

Spec: docs/specs/ocb-canonical-build.md

pr feedback

restore flags in readme and fix gitignore

build only with the ocb

ci: guard root invocations in test/gosec/for-all on go.mod removal

Targets that walked ./... from the repo root assumed a top-level go.mod
existed. With the legacy build path deleted, there is no module at
root and gotestsum/gosec error out before reaching the per-module loop.

Guard the root-level invocation with `go list ./...`: present when there
is a module to scan, empty otherwise. Mirrors the v2.0.1-beta.3 pattern.

chore: bump manifest to OTel v0.152.0 and bindplane-otel-contrib v1.6.0

Aligns the OCB manifest with main's dependency versions and adds the
asimstandardizationprocessor (registered in the legacy factories on main,
now sourced from the manifest).

chore: bump manifest + ocb builder to OTel v0.153.0 / contrib v1.7.0

build v2 from same branch as v1

chore: bump v2 manifests to OTel v0.153.0 and bindplane-otel-contrib v1.7.0

chore: stamp git hash + build date into collector ldflags

Add GIT_HASH and BUILD_DATE Make variables and feed them through AGENT_LDFLAGS
and UPDATER_LDFLAGS so the v1/v2 agent and updater builds populate
version.gitHash and version.date. Matches the v2.0.1-beta.3 release flow and
the legacy build's behavior — `collector --version` no longer shows "unknown"
for commit and built at.

Closes FLEET-499.

ci: run make verify-manifest on every PR

Adds a verify-manifest job to checks.yml that triggers whenever a PR touches
the manifest, a sub-module's go.mod/go.sum, the Makefile, or buildscripts/.
The job installs ocb v0.151.0 and runs make verify-manifest — regenerating
sources from manifest.yaml and compiling them to /dev/null. Catches manifest
breakage at PR time instead of release time.

Closes FLEET-500.

ci: install ocb builder v0.153.0 for verify-manifest

* feat: report AvailableComponents over OpAMP

Port the four AvailableComponents helpers from upstream's opampextension
(opentelemetry-collector-contrib/extension/opampextension/opamp_agent.go
@ v0.151.0) into the observiq OpAMP client. Same function names; three
of four bodies are byte-identical to upstream; initAvailableComponents
is restructured from a *opampAgent method to a standalone function but
the body is unchanged. File header pins the upstream source so future
bug fixes can be diffed and applied by hand.

Plumbing: the opamp_connection extension's Start now type-asserts the
host to hostcapabilities.ModuleInfo and caches the resulting
ModuleInfos on the package-level manager. The Registry interface gains
a ModuleInfos() accessor. The observiq client calls that accessor after
SetClient and before opampClient.Start, builds the AvailableComponents,
and calls SetAvailableComponents. ReportsAvailableComponents is added
to the capabilities mask.

After this, snapshot/dev builds report a real SHA-256 hash of their
actual component set instead of relying on a server-side YAML keyed by
version. Matches v2 / upstream opampextension behavior.

Closes FLEET-502.

* docs: fix OpAMP spelling

* fix: source AvailableComponents from factories instead of host capture

Routing ModuleInfos through the opamp_connection extension's host
capture meant AvailableComponents only got populated if the user's
collector YAML listed the extension. Read the factories the wrapper
already holds — same data the host's ModuleInfos is derived from in
otelcol.NewCollector — so the agent reports its full component set
unconditionally.

* release: wire goreleaser to use ocb-built binaries

Switch the v1 release flow to v2.0.1-beta.3's pattern: pre-build the
collector and updater via `make build-all-non-aix OUTDIR="tmp"`, then
have goreleaser package the binaries with `builder: prebuilt`. Drops
the duplicated go-build/ldflags configuration from .goreleaser.yml and
.goreleaser.arm64.yml since the Make targets (AGENT_LDFLAGS,
UPDATER_LDFLAGS, -tags bindplane,ocb) already stamp everything.

Adds `make build-all-non-aix` as an alias for `build-all` matching
v2.0.1-beta.3's target name so future v1+v2 release scripts can share
entry points.

Restores goreleaser-driven releases that were broken by PR #3502
deleting cmd/collector/ and the top-level go.mod.

Closes FLEET-501.

make target for installing ocb; call make install-ocb in ci

* chore: Changes for releasing from epic (#3532)

* Add azureauthextension to manifest; remove outdated replaces for stanza and wel

* Add embed_library build tag

* fix: stamp prerelease versions into release binaries

The Makefile's CURRENT_TAG detection only matches stable tags
(vX.Y.Z), so building from a prerelease tag like vX.Y.Z-alpha.1 fell
back to <previous-tag>-SNAPSHOT-<sha>. Since the goreleaser refactor
moved ldflags ownership from goreleaser to make, every release binary
(all platforms, MSIs, updater) would self-report the wrong version on
a prerelease tag. Pass VERSION explicitly from the goreleaser before
hooks and the MSI build workflows.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix: scan all modules in govulncheck workflow

govulncheck ran './...' at the repo root, which no longer has a go.mod
since the ocb refactor. The scan errored, the 'go list -m all' fallback
errored too, and the workflow posted a false 'no vulnerabilities found'
result every week. Iterate the repo's modules instead (skipping ones
migrated to contrib, matching the Makefile's exclusion logic) and fail
the job on scan errors instead of swallowing them.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix: exclude ocb-generated build tree from ALL_MODULES

After 'make agent', the gitignored ./build/ directory contains an
ocb-generated go.mod, so the find behind ALL_MODULES picked it up and
for-all/for-all-modules targets (tidy, test, generate, ...) tried to
operate on the throwaway generated module.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix: build modules explicitly for CodeQL Go analysis

CodeQL's autobuild traced the build from the repo root, which no
longer has a go.mod since the ocb refactor, so Go extraction would
find nothing to trace. Build each module explicitly (skipping ones
migrated to contrib, matching the rest of CI) so the tracer extracts
all first-party packages.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* docs: update ocb build spec open items

The goreleaser, CI workflow, and ldflags items are done; record that
and keep the genuinely open ones (v2 release wiring, dependabot
manifest bumps, docker image re-verification).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* docs: replace stale factories-package reference in CLAUDE.md

Component registration moved from the deleted factories package to
ocb-generated wiring driven by the manifest.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* ci: match module go.mod/go.sum in change-detection filters

The go and gomod filters watched the root go.mod/go.sum, which no
longer exist since the ocb refactor, so dependency-only changes in any
module stopped triggering tests, lint, gosec, check-mod-paths, and
check-dependabot. Watch **/go.mod and **/go.sum instead.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* chore: clean up stale goreleaser build comments and mod_timestamp

The comments claimed the build tags were 'bindplane,ocb'; the actual
Make tags are 'bindplane embed_library'. mod_timestamp is a no-op
under the prebuilt builder (nothing is compiled), so drop it.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* REVERT THIS; dont upload to google artifacts or bucket for test

* internalcomponents need correct versions

* Revert "REVERT THIS; dont upload to google artifacts or bucket for test"

This reverts commit 80a0e7ff2373abdd04b89ae23019cf0037d07404.

* Revert "fix: stamp prerelease versions into release binaries"

This reverts commit 5d6c0c1ff9ab56ce740e575c697f6095ee234e71.

* update replace statements

* update otel to v0.154.0/v1.60.0

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* deps: Add awsneuronreceiver and genainormalizerprocessor to v1 manifests; Update bdot-contrib in manifest to v1.8.0

* deps: Add azureencodingextension

* chore: Update verify-manifest action

* deps: Ensure OTel v0.154.0

* chore: Dont include .deb and .rpm in archive

* pr review

* fix gomod & remove v2 references

* add internal/report replace statement

* update enhanceindexing version & gosec target

* Revert "chore: Dont include .deb and .rpm in archive"

This reverts commit 4a3748a211e28397532d24cfb9cf71dc8573c7d2.

---------

Co-authored-by: Dakota Paasman <dpaasman00@gmail.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Assets 2
Loading