Skip to content

Update the otel-collector example#1303

Merged
grcevski merged 2 commits into
open-telemetry:mainfrom
MrAlias:exp-otel-coll
Feb 14, 2026
Merged

Update the otel-collector example#1303
grcevski merged 2 commits into
open-telemetry:mainfrom
MrAlias:exp-otel-coll

Conversation

@MrAlias
Copy link
Copy Markdown
Contributor

@MrAlias MrAlias commented Feb 13, 2026

  • Remove the build dir: otelcol-dev
  • Ignore the build dir
  • Update the configuration to a working state
  • Update the documentation

@MrAlias MrAlias added this to the v0.6.0 milestone Feb 13, 2026
Remove the build dir: otelcol-dev.

Ignore the build dir.

Update the configuration to a working state

Update the documentation.
@codecov
Copy link
Copy Markdown

codecov Bot commented Feb 13, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 43.52%. Comparing base (f96ddcf) to head (1290248).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1303   +/-   ##
=======================================
  Coverage   43.52%   43.52%           
=======================================
  Files         305      305           
  Lines       32864    32864           
=======================================
+ Hits        14303    14305    +2     
+ Misses      17640    17639    -1     
+ Partials      921      920    -1     
Flag Coverage Δ
integration-test 21.66% <ø> (+0.17%) ⬆️
integration-test-arm 0.00% <ø> (ø)
integration-test-vm-x86_64-5.15.152 ?
integration-test-vm-x86_64-6.10.6 ?
k8s-integration-test 2.36% <ø> (ø)
oats-test 0.00% <ø> (ø)
unittests 44.30% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@MrAlias MrAlias marked this pull request as ready for review February 13, 2026 20:54
@MrAlias MrAlias requested a review from a team as a code owner February 13, 2026 20:54
Copilot AI review requested due to automatic review settings February 13, 2026 20:54
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the examples/otel-collector workflow to stop committing the generated otelcol-dev distribution, refresh the OCB build config, and provide a working sample collector config + improved documentation for running OBI as an OpenTelemetry Collector receiver.

Changes:

  • Remove the generated examples/otel-collector/otelcol-dev source/module files from the repo and add a .gitignore rule for the generated output.
  • Update the collector config.yaml to include a batch processor and wire it into the traces pipeline.
  • Refresh the example’s builder config and expand the README with setup/run/troubleshooting guidance.

Reviewed changes

Copilot reviewed 9 out of 11 changed files in this pull request and generated no comments.

Show a summary per file
File Description
examples/otel-collector/otelcol-dev/main_windows.go Removed generated Windows entrypoint for the dev collector distribution.
examples/otel-collector/otelcol-dev/main_others.go Removed generated non-Windows entrypoint for the dev collector distribution.
examples/otel-collector/otelcol-dev/main.go Removed generated main for the dev collector distribution.
examples/otel-collector/otelcol-dev/components.go Removed generated factory wiring for the dev collector distribution.
examples/otel-collector/otelcol-dev/go.mod Removed generated Go module file for the dev collector distribution.
examples/otel-collector/otelcol-dev/go.sum Removed generated dependency lockfile for the dev collector distribution.
examples/otel-collector/config.yaml Adds batch processor config and attaches it to the traces pipeline; cleans up exporter config.
examples/otel-collector/builder-config.yaml Updates OCB config (versions + local replace + OBI receiver import).
examples/otel-collector/README.md Rewrites/expands instructions for generating eBPF assets, building with OCB, running, and troubleshooting.
examples/otel-collector/Dockerfile Minor documentation note added (but currently still assumes a pre-existing otelcol-dev dir).
.gitignore Ignores the generated examples/otel-collector/otelcol-dev/* output.
Comments suppressed due to low confidence (1)

examples/otel-collector/Dockerfile:22

  • The Docker build currently assumes examples/otel-collector/otelcol-dev exists in the repository (WORKDIR /app/examples/otel-collector/otelcol-dev + go build ...). This PR deletes/ignores that directory, so docker build will fail unless the Dockerfile generates the collector distribution first (e.g., run ocb --config examples/otel-collector/builder-config.yaml in the builder stage and then build/copy the resulting binary from the generated output_path).
# Note: libc6-compat is not needed since the binary is statically linked

WORKDIR /
COPY --from=builder /app/examples/otel-collector/otelcol-dev/otelcol-dev /otelcol
COPY examples/otel-collector/config.yaml /etc/otelcol/config.yaml

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Copy Markdown
Contributor

@grcevski grcevski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Great write up

@grcevski
Copy link
Copy Markdown
Contributor

For the failing tests it seems example.com is down or throttling us. Maybe we should pick something else? I hope it passes.

@grcevski
Copy link
Copy Markdown
Contributor

Something is up with the example.com certificate, the Java service hits this when making the client call:

sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at java.base/sun.security.provider.certpath.SunCertPathBuilder.build(Unknown Source) ~[na:na]
	at java.base/sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source) ~[na:na]
	at java.base/java.security.cert.CertPathBuilder.build(Unknown Source) ~[na:na]
	at java.base/sun.security.validator.PKIXValidator.doBuild(Unknown Source) ~[na:na]
	at java.base/sun.security.validator.PKIXValidator.engineValidate(Unknown Source) ~[na:na]
	at java.base/sun.security.validator.Validator.validate(Unknown Source) ~[na:na]
	at java.base/sun.security.ssl.X509TrustManagerImpl.checkTrusted(Unknown Source) ~[na:na]
	at java.base/sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source) ~[na:na]
	at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.checkServerCerts(Unknown Source) ~[na:na]
	at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.onConsumeCertificate(Unknown Source) ~[na:na]
	at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.consume(Unknown Source) ~[na:na]
	at java.base/sun.security.ssl.SSLHandshake.consume(Unknown Source) ~[na:na]
	at java.base/sun.security.ssl.HandshakeContext.dispatch(Unknown Source) ~[na:na]
	at java.base/sun.security.ssl.SSLEngineImpl$DelegatedTask$DelegatedAction.run(Unknown Source) ~[na:na]
	at java.base/sun.security.ssl.SSLEngineImpl$DelegatedTask$DelegatedAction.run(Unknown Source) ~[na:na]
	at java.base/java.security.AccessController.doPrivileged(Unknown Source) ~[na:na]
	at java.base/sun.security.ssl.SSLEngineImpl$DelegatedTask.run(Unknown Source) ~[na:na]
	at java.base/java.util.ArrayList.forEach(Unknown Source) ~[na:na]
	at java.net.http/jdk.internal.net.http.common.SSLFlowDelegate.lambda$executeTasks$3(Unknown Source) ~[java.net.http:na]
	at java.net.http/jdk.internal.net.http.HttpClientImpl$DelegatingExecutor.execute(Unknown Source) ~[java.net.http:na]
	at java.net.http/jdk.internal.net.http.common.SSLFlowDelegate.executeTasks(Unknown Source) ~[java.net.http:na]
	at java.net.http/jdk.internal.net.http.common.SSLFlowDelegate.doHandshake(Unknown Source) ~[java.net.http:na]
	at java.net.http/jdk.internal.net.http.common.SSLFlowDelegate$Reader.processData(Unknown Source) ~[java.net.http:na]
	at java.net.http/jdk.internal.net.http.common.SSLFlowDelegate$Reader$ReaderDownstreamPusher.run(Unknown Source) ~[java.net.http:na]
	at java.net.http/jdk.internal.net.http.common.SequentialScheduler$LockingRestartableTask.run(Unknown Source) ~[java.net.http:na]
	at java.net.http/jdk.internal.net.http.common.SequentialScheduler$CompleteRestartableTask.run(Unknown Source) ~[java.net.http:na]
	at java.net.http/jdk.internal.net.http.common.SequentialScheduler$TryEndDeferredCompleter.complete(Unknown Source) ~[java.net.http:na]
	at java.net.http/jdk.internal.net.http.common.SequentialScheduler$CompleteRestartableTask.run(Unknown Source) ~[java.net.http:na]
	at java.net.http/jdk.internal.net.http.common.SequentialScheduler$SchedulableTask.run(Unknown Source) ~[java.net.http:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[na:na]
	at java.base/java.lang.Thread.run(Unknown Source) ~[na:na]

I'm replacing with google.com and I'll push a fix with my PR.

@grcevski
Copy link
Copy Markdown
Contributor

Pushed fix here: #1304

@grcevski grcevski merged commit 67e61d0 into open-telemetry:main Feb 14, 2026
72 of 74 checks passed
@MrAlias MrAlias deleted the exp-otel-coll branch February 17, 2026 16:32
@MrAlias MrAlias mentioned this pull request Mar 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants