This repository configures a build of the OpenTelemetry Collector with the supported components for a Red Hat OpenShift distributed tracing product.
- Update Makefile and manifest.yaml to select the desired upstream version and component selection for the product release.
- Run
make build generate-schemasormake build-in-podman - Update changelog in RPM spec
- Create a pull request with the changes, including changes in the
_builddirectory.
The OpenTelemetry eBPF Instrumentation (OBI) receiver is pinned in two places that must be kept in sync:
manifest.yamldeclares the module version, e.g.go.opentelemetry.io/obi v0.10.0..obi-srcis a git submodule (see.gitmodules) pinned to a specific commit. Areplacedirective inmanifest.yaml(go.opentelemetry.io/obi => ../.obi-src) redirects the module to this local checkout, so the submodule commit is what actually gets built. The eBPF artifacts are generated from it bymake generate-obi.
To bump to a new OBI release (e.g. v0.11.0):
- Move the submodule to the matching upstream tag or commit:
git -C .obi-src fetch --tags git -C .obi-src checkout v0.11.0 git add .obi-src - Update the module version string in
manifest.yamlto match (go.opentelemetry.io/obi v0.11.0). - Run
make build generate-schemasormake build-in-podman. This regenerates the OBI eBPF artifacts and the contents of the_builddirectory. - Create a pull request with the changes, including the updated submodule pointer,
manifest.yaml, and the_builddirectory.
git tag v0.48.0 && git push origin v0.48.0
To build srpm and rpms we used packit.
# build srpm
make clean packit/srpm
# build rpm (includes srpm)
make clean packit/rpm/mock
dnf copr enable frzifus/redhat-opentelemetry-collector-main
dnf install -y opentelemetry-collector
The end-to-end tests are located at openshift/distributed-tracing-qe/tests/e2e-otel.