Skip to content

chore: Include Default Engine Open Telemetry Components in OTel Engine#5316

Merged
blewis12 merged 8 commits into
mainfrom
blewis12/include-default-engine-otel-component-in-otel-engine
Jan 27, 2026
Merged

chore: Include Default Engine Open Telemetry Components in OTel Engine#5316
blewis12 merged 8 commits into
mainfrom
blewis12/include-default-engine-otel-component-in-otel-engine

Conversation

@blewis12
Copy link
Copy Markdown
Member

@blewis12 blewis12 commented Jan 21, 2026

As discussed, we will also include open telemetry components that are wrapped in the Default Engine in the OTel Engine, this means users don't lose any functionality - and clears the space for a migration path in the future. This PR adds all upstream components found in the default engine over to the builder manifest for the otel engine, minus a couple which are addressed in this comment

There are two other components added as well (the grafanacloud connector, and hostmetrics receiver), that are included in the GC "new connection" -> "OpenTelemetry collector" wizard flow, and so would make sense to also have work with our own distribution

I've also made sure the components are alphabetical, just makes it a tad easier to read

@blewis12 blewis12 requested a review from a team as a code owner January 21, 2026 16:25
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jan 21, 2026

🔍 Dependency Review

Below is a review of dependency changes detected in the provided diff, focused on Go module updates and replacements.

github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filestatsreceiver v0.142.0 -> github.com/grafana/opentelemetry-collector-contrib/receiver/filestatsreceiver v0.0.0-20260126095124-0af81a9e8966
  • Status: ⚠️ Needs Review

Summary:

Impacted files (replace directive added in multiple modules):

  • collector/go.mod
  • extension/alloyengine/go.mod
  • go.mod (repo root)

Relevant snippet:

+ replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filestatsreceiver => github.com/grafana/opentelemetry-collector-contrib/receiver/filestatsreceiver v0.0.0-20260126095124-0af81a9e8966

Code changes required: None.

Suggested follow-up (when upstream is fixed and released):

- replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filestatsreceiver => github.com/grafana/opentelemetry-collector-contrib/receiver/filestatsreceiver v0.0.0-20260126095124-0af81a9e8966
+ // Remove the replace after upstream fix for FreeBSD build tags is available
Multiple OpenTelemetry Collector Contrib components v0.142.0 -> v0.142.0 (promoted from indirect to direct)
  • Status: ✅ Safe

Summary:

  • A large number of contrib modules were promoted from indirect to direct requirements at the same version (v0.142.0).
  • This aligns with the added imports and factory registrations in collector/components.go and the enriched builder-config.yaml.
  • Since the version did not change (v0.142.0 -> v0.142.0), there are no intervening releases to evaluate and no API changes to handle. The additions are to ensure the modules are retained and available for the custom distribution.

Affected modules (non-exhaustive list, all at v0.142.0):

  • Connectors: countconnector, servicegraphconnector, spanmetricsconnector, grafanacloudconnector
  • Exporters: awss3exporter, faroexporter, fileexporter, googlecloudexporter, googlecloudpubsubexporter, kafkaexporter, loadbalancingexporter, prometheusexporter, prometheusremotewriteexporter, splunkhecexporter, syslogexporter, zipkinexporter
  • Extensions: basicauthextension, bearertokenauthextension, headerssetterextension, healthcheckextension, jaegerremotesampling, oauth2clientauthextension, pprofextension, sigv4authextension, storage/filestorage
  • Processors: attributesprocessor, cumulativetodeltaprocessor, deltatocumulativeprocessor, filterprocessor, groupbyattrsprocessor, intervalprocessor, k8sattributesprocessor, metricstarttimeprocessor, probabilisticsamplerprocessor, resourceprocessor, resourcedetectionprocessor, spanprocessor, tailsamplingprocessor, transformprocessor
  • Receivers: awscloudwatchreceiver, awsecscontainermetricsreceiver, awss3receiver, cloudflarereceiver, datadogreceiver, faroreceiver, filelogreceiver, filestatsreceiver (replaced via fork), fluentforwardreceiver, googlecloudpubsubreceiver, hostmetricsreceiver, influxdbreceiver, jaegerreceiver, kafkareceiver, solacereceiver, splunkhecreceiver, syslogreceiver, tcplogreceiver, vcenterreceiver, zipkinreceiver

Evidence:

  • components.go now imports and registers factories for the above modules.
  • go.mod moves these dependencies from indirect to direct at the same version (v0.142.0).
  • No version change, no API changes required.

Code changes required: None.

Notes

  • Net-new modules used by the code (e.g., github.com/open-telemetry/opentelemetry-collector-contrib/connector/grafanacloudconnector) were added at v0.142.0; since these are additions rather than upgrades, there is no upgrade-related breakage to review here.
  • The comment regarding the Datadog exporter in builder-config.yaml indicates it is intentionally disabled for now:
  • The existing replaces for controller-runtime (sigs.k8s.io/controller-runtime v0.20.4) and runc are unchanged in behavior from a dependency-upgrade perspective.

@blewis12
Copy link
Copy Markdown
Member Author

making a link to #5247 -> since this is a stepping stone for that proposal

@blewis12
Copy link
Copy Markdown
Member Author

blewis12 commented Jan 21, 2026

hmm, looks like the file stat receiver is not compatible with FreeBSD, I can see we've also got build restrictions in our own component. I see two options:

  1. Modify our generation logic to somehow exclude this component from the build(?)
  2. Not include this component in our first iteration -> i'm tempted to do this and track the issue for the sake of itera
    ting. Maybe there's a change that can be made upstream to help in this situation, but we can investigate that separately

edit: actually - it might not be this component that's causing an issue, looking into it more

@blewis12 blewis12 force-pushed the blewis12/include-default-engine-otel-component-in-otel-engine branch 5 times, most recently from 001c96c to 7a34205 Compare January 26, 2026 10:23
@blewis12 blewis12 force-pushed the blewis12/include-default-engine-otel-component-in-otel-engine branch from 6f25985 to 214e5c0 Compare January 26, 2026 10:58
@blewis12
Copy link
Copy Markdown
Member Author

blewis12 commented Jan 26, 2026

OK - had a further look into this, the reason we saw failures is because Alloy wraps upstream components which are not compatible with FreeBSD (which is not listed as a supported platform upstream). There were two components brought in from the default engine with this problem:

  • Filestatreceiver: I created a branch in our fork of the collector-contrib to address this since the fix is simple enough, and there is an upstream issue tracking it with recent comments and interest in getting it fixed
  • Datadogexporter: I have removed this for now since I couldn't find any upstream issue for it. We could create a fork to address this (even if the fork just implements a noop component for FreeBSD), but I want to track this as well as discussion of this subject in this issue

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

Expands the OTel Engine’s embedded OpenTelemetry Collector distribution to include the upstream components already wrapped by the Default Engine (plus grafanacloud connector and hostmetrics receiver), preserving functionality and enabling a smoother migration path.

Changes:

  • Adds a broad set of OTel Contrib receivers/processors/exporters/extensions/connectors to the OTel Engine builder manifest and generated factories list.
  • Introduces a replace to a Grafana fork of filestatsreceiver to address FreeBSD build tag issues (tracked via upstream issue).
  • Updates Go module metadata (go.mod/go.sum) across the root, extension module, and collector module to reflect the new dependency set.

Reviewed changes

Copilot reviewed 6 out of 9 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
go.mod Adds generated replace for filestatsreceiver fork to address FreeBSD build tags.
go.sum Updates module checksums reflecting the filestatsreceiver fork.
extension/alloyengine/go.mod Mirrors the generated replace for filestatsreceiver fork.
extension/alloyengine/go.sum Updates checksums reflecting the filestatsreceiver fork.
dependency-replacements.yaml Adds the new replacement rule so it propagates through the generation pipeline.
collector/go.mod Adds direct requirements for newly included OTel Contrib components; includes filestatsreceiver replace.
collector/go.sum Updates checksums for newly included components (e.g., grafanacloud connector, hostmetrics receiver, forked filestatsreceiver).
collector/components.go Updates generated factory registration to include the expanded component set.
collector/builder-config.yaml Updates the OTel Collector Builder manifest to include the expanded component set and the new replace.

Comment thread collector/builder-config.yaml Outdated
Comment thread dependency-replacements.yaml Outdated
Comment thread go.mod Outdated
Comment thread extension/alloyengine/go.mod Outdated
blewis12 added a commit that referenced this pull request Jan 26, 2026
@blewis12 blewis12 force-pushed the blewis12/include-default-engine-otel-component-in-otel-engine branch from 7144faf to 4eed769 Compare January 26, 2026 13:56
@blewis12 blewis12 force-pushed the blewis12/include-default-engine-otel-component-in-otel-engine branch from ff544e5 to e272af4 Compare January 26, 2026 14:03
Copy link
Copy Markdown
Contributor

@thampiotr thampiotr left a comment

Choose a reason for hiding this comment

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

Seems like we are adding:

  • hostmetricsreceiver - but I don't see it in Alloy's otelcol.* ?
  • grafanacloudconnector - I guess this is fine :)

Seems like we are not adding:

Copy link
Copy Markdown
Contributor

@thampiotr thampiotr left a comment

Choose a reason for hiding this comment

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

Discussed the concerns on Slack. LGTM!

@blewis12
Copy link
Copy Markdown
Member Author

@thampiotr exactly yeah, I didn't catch otelcol.receiver.opencensus though - but since it's deprecated I will leave it out

@blewis12 blewis12 merged commit 87af458 into main Jan 27, 2026
48 checks passed
@blewis12 blewis12 deleted the blewis12/include-default-engine-otel-component-in-otel-engine branch January 27, 2026 15:28
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants