Skip to content

Refactor /comp/core/telem to follow components v2 patterns - #42069

Closed
scottopell wants to merge 17 commits into
mainfrom
sopell-refactor/telemetry-multimodule
Closed

Refactor /comp/core/telem to follow components v2 patterns#42069
scottopell wants to merge 17 commits into
mainfrom
sopell-refactor/telemetry-multimodule

Conversation

@scottopell

Copy link
Copy Markdown
Contributor

What does this PR do?

Refactor comp/core/telemetry to multi-module architecture + update consumers

Motivation

Instrumenting trace-agent with prometheus needed a way to use the telemetry
component without causing any importers of pkg/trace to pull in the prometheus
golang client library.

Describe how you validated your changes

Pending, did basic evals locally, will expand this section.

Additional Notes

Trace-agent instrumentation will be done in subsequent PR

…nsumers

This refactoring moves telemetry to a def/impl/impl-noop/fx structure
to enable clean separation between interface definitions (no prometheus)
and implementations, allowing third-party consumers of pkg/trace to avoid
the prometheus dependency tree.

Cascading updates to all comp/core modules to use new telemetry/def.
Added missing import for telemetry/def to fix undefined references.
Changed createAtel parameter from telemetry.Component to telemetryimpl.Component
to match the actual dependencies.
Changed from telemetry.MetricFamily to dto.MetricFamily.
@scottopell scottopell added changelog/no-changelog No changelog entry needed and removed long review PR is complex, plan time to review it team/agent-runtimes labels Oct 17, 2025
@agent-platform-auto-pr

agent-platform-auto-pr Bot commented Oct 17, 2025

Copy link
Copy Markdown
Contributor

Go Package Import Differences

Baseline: 6d8fc84
Comparison: a700d39

binaryosarchchange
agentlinuxamd64
+5, -3
-github.com/DataDog/datadog-agent/comp/core/telemetry
-github.com/DataDog/datadog-agent/comp/core/telemetry/noopsimpl
-github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl
+github.com/DataDog/datadog-agent/comp/core/telemetry/def
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx-full
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl-noop
agentlinuxarm64
+5, -3
-github.com/DataDog/datadog-agent/comp/core/telemetry
-github.com/DataDog/datadog-agent/comp/core/telemetry/noopsimpl
-github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl
+github.com/DataDog/datadog-agent/comp/core/telemetry/def
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx-full
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl-noop
agentwindowsamd64
+5, -3
-github.com/DataDog/datadog-agent/comp/core/telemetry
-github.com/DataDog/datadog-agent/comp/core/telemetry/noopsimpl
-github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl
+github.com/DataDog/datadog-agent/comp/core/telemetry/def
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx-full
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl-noop
agentdarwinamd64
+5, -3
-github.com/DataDog/datadog-agent/comp/core/telemetry
-github.com/DataDog/datadog-agent/comp/core/telemetry/noopsimpl
-github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl
+github.com/DataDog/datadog-agent/comp/core/telemetry/def
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx-full
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl-noop
agentdarwinarm64
+5, -3
-github.com/DataDog/datadog-agent/comp/core/telemetry
-github.com/DataDog/datadog-agent/comp/core/telemetry/noopsimpl
-github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl
+github.com/DataDog/datadog-agent/comp/core/telemetry/def
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx-full
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl-noop
iot-agentlinuxamd64
+4, -3
-github.com/DataDog/datadog-agent/comp/core/telemetry
-github.com/DataDog/datadog-agent/comp/core/telemetry/noopsimpl
-github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl
+github.com/DataDog/datadog-agent/comp/core/telemetry/def
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl-noop
iot-agentlinuxarm64
+4, -3
-github.com/DataDog/datadog-agent/comp/core/telemetry
-github.com/DataDog/datadog-agent/comp/core/telemetry/noopsimpl
-github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl
+github.com/DataDog/datadog-agent/comp/core/telemetry/def
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl-noop
heroku-agentlinuxamd64
+5, -3
-github.com/DataDog/datadog-agent/comp/core/telemetry
-github.com/DataDog/datadog-agent/comp/core/telemetry/noopsimpl
-github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl
+github.com/DataDog/datadog-agent/comp/core/telemetry/def
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx-full
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl-noop
cluster-agentlinuxamd64
+4, -3
-github.com/DataDog/datadog-agent/comp/core/telemetry
-github.com/DataDog/datadog-agent/comp/core/telemetry/noopsimpl
-github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl
+github.com/DataDog/datadog-agent/comp/core/telemetry/def
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl-noop
cluster-agentlinuxarm64
+4, -3
-github.com/DataDog/datadog-agent/comp/core/telemetry
-github.com/DataDog/datadog-agent/comp/core/telemetry/noopsimpl
-github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl
+github.com/DataDog/datadog-agent/comp/core/telemetry/def
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl-noop
cluster-agent-cloudfoundrylinuxamd64
+4, -3
-github.com/DataDog/datadog-agent/comp/core/telemetry
-github.com/DataDog/datadog-agent/comp/core/telemetry/noopsimpl
-github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl
+github.com/DataDog/datadog-agent/comp/core/telemetry/def
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl-noop
cluster-agent-cloudfoundrylinuxarm64
+4, -3
-github.com/DataDog/datadog-agent/comp/core/telemetry
-github.com/DataDog/datadog-agent/comp/core/telemetry/noopsimpl
-github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl
+github.com/DataDog/datadog-agent/comp/core/telemetry/def
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl-noop
dogstatsdlinuxamd64
+4, -3
-github.com/DataDog/datadog-agent/comp/core/telemetry
-github.com/DataDog/datadog-agent/comp/core/telemetry/noopsimpl
-github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl
+github.com/DataDog/datadog-agent/comp/core/telemetry/def
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl-noop
dogstatsdlinuxarm64
+4, -3
-github.com/DataDog/datadog-agent/comp/core/telemetry
-github.com/DataDog/datadog-agent/comp/core/telemetry/noopsimpl
-github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl
+github.com/DataDog/datadog-agent/comp/core/telemetry/def
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl-noop
process-agentlinuxamd64
+3, -2
-github.com/DataDog/datadog-agent/comp/core/telemetry
-github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl
+github.com/DataDog/datadog-agent/comp/core/telemetry/def
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl
process-agentlinuxarm64
+3, -2
-github.com/DataDog/datadog-agent/comp/core/telemetry
-github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl
+github.com/DataDog/datadog-agent/comp/core/telemetry/def
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl
process-agentwindowsamd64
+3, -2
-github.com/DataDog/datadog-agent/comp/core/telemetry
-github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl
+github.com/DataDog/datadog-agent/comp/core/telemetry/def
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl
process-agentdarwinamd64
+3, -2
-github.com/DataDog/datadog-agent/comp/core/telemetry
-github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl
+github.com/DataDog/datadog-agent/comp/core/telemetry/def
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl
process-agentdarwinarm64
+3, -2
-github.com/DataDog/datadog-agent/comp/core/telemetry
-github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl
+github.com/DataDog/datadog-agent/comp/core/telemetry/def
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl
heroku-process-agentlinuxamd64
+3, -2
-github.com/DataDog/datadog-agent/comp/core/telemetry
-github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl
+github.com/DataDog/datadog-agent/comp/core/telemetry/def
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl
security-agentlinuxamd64
+3, -2
-github.com/DataDog/datadog-agent/comp/core/telemetry
-github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl
+github.com/DataDog/datadog-agent/comp/core/telemetry/def
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl
security-agentlinuxarm64
+3, -2
-github.com/DataDog/datadog-agent/comp/core/telemetry
-github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl
+github.com/DataDog/datadog-agent/comp/core/telemetry/def
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl
security-agentwindowsamd64
+3, -2
-github.com/DataDog/datadog-agent/comp/core/telemetry
-github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl
+github.com/DataDog/datadog-agent/comp/core/telemetry/def
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl
sbomgenlinuxamd64
+2, -2
-github.com/DataDog/datadog-agent/comp/core/telemetry
-github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl
+github.com/DataDog/datadog-agent/comp/core/telemetry/def
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl
sbomgenlinuxarm64
+2, -2
-github.com/DataDog/datadog-agent/comp/core/telemetry
-github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl
+github.com/DataDog/datadog-agent/comp/core/telemetry/def
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl
serverlesslinuxamd64
+6, -2
+database/sql
-github.com/DataDog/datadog-agent/comp/core/telemetry
-github.com/DataDog/datadog-agent/comp/core/telemetry/noopsimpl
+github.com/DataDog/datadog-agent/comp/core/telemetry/def
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx-noop
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl-noop
+github.com/prometheus/client_golang/prometheus/collectors
serverlesslinuxarm64
+6, -2
+database/sql
-github.com/DataDog/datadog-agent/comp/core/telemetry
-github.com/DataDog/datadog-agent/comp/core/telemetry/noopsimpl
+github.com/DataDog/datadog-agent/comp/core/telemetry/def
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx-noop
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl-noop
+github.com/prometheus/client_golang/prometheus/collectors
system-probelinuxamd64
+3, -2
-github.com/DataDog/datadog-agent/comp/core/telemetry
-github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl
+github.com/DataDog/datadog-agent/comp/core/telemetry/def
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl
system-probelinuxarm64
+3, -2
-github.com/DataDog/datadog-agent/comp/core/telemetry
-github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl
+github.com/DataDog/datadog-agent/comp/core/telemetry/def
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl
system-probewindowsamd64
+3, -2
-github.com/DataDog/datadog-agent/comp/core/telemetry
-github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl
+github.com/DataDog/datadog-agent/comp/core/telemetry/def
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl
trace-agentlinuxamd64
+3, -2
-github.com/DataDog/datadog-agent/comp/core/telemetry
-github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl
+github.com/DataDog/datadog-agent/comp/core/telemetry/def
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx-full
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl
trace-agentlinuxarm64
+3, -2
-github.com/DataDog/datadog-agent/comp/core/telemetry
-github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl
+github.com/DataDog/datadog-agent/comp/core/telemetry/def
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx-full
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl
trace-agentwindowsamd64
+3, -2
-github.com/DataDog/datadog-agent/comp/core/telemetry
-github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl
+github.com/DataDog/datadog-agent/comp/core/telemetry/def
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx-full
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl
trace-agentdarwinamd64
+3, -2
-github.com/DataDog/datadog-agent/comp/core/telemetry
-github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl
+github.com/DataDog/datadog-agent/comp/core/telemetry/def
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx-full
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl
trace-agentdarwinarm64
+3, -2
-github.com/DataDog/datadog-agent/comp/core/telemetry
-github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl
+github.com/DataDog/datadog-agent/comp/core/telemetry/def
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx-full
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl
heroku-trace-agentlinuxamd64
+3, -2
-github.com/DataDog/datadog-agent/comp/core/telemetry
-github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl
+github.com/DataDog/datadog-agent/comp/core/telemetry/def
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx-full
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl
otel-agentlinuxamd64
+4, -2
-github.com/DataDog/datadog-agent/comp/core/telemetry
-github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl
+github.com/DataDog/datadog-agent/comp/core/telemetry/def
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx-full
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl
otel-agentlinuxarm64
+4, -2
-github.com/DataDog/datadog-agent/comp/core/telemetry
-github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl
+github.com/DataDog/datadog-agent/comp/core/telemetry/def
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx-full
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl
installerwindowsamd64
+3, -2
-github.com/DataDog/datadog-agent/comp/core/telemetry
-github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl
+github.com/DataDog/datadog-agent/comp/core/telemetry/def
+github.com/DataDog/datadog-agent/comp/core/telemetry/fx
+github.com/DataDog/datadog-agent/comp/core/telemetry/impl

@agagniere agagniere left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

It seems several imports were renamed but the code using them wasn't

package infraattributesprocessor

import (
"github.com/DataDog/datadog-agent/comp/core/telemetry/noopsimpl"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

could be named telemetry-noop-impl or telemetry-impl-noop because the current file is outside temlemetry.

More importantly, you forgot to rename it when using it (line 16)

"fmt"
"strings"

"github.com/DataDog/datadog-agent/comp/core/telemetry"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

could be called telemetry-def, and don't forget to rename it on uses e.g. line 87

import (
"fmt"

"github.com/DataDog/datadog-agent/comp/core/telemetry"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Same comment, telemetry-def and rename it when using it (e.g. line 57)

@github-actions github-actions Bot added the long review PR is complex, plan time to review it label Oct 17, 2025
@dd-octo-sts

dd-octo-sts Bot commented Nov 6, 2025

Copy link
Copy Markdown
Contributor

This pull request has been automatically marked as stale because it has not had activity in the past 15 days.

It will be closed in 30 days if no further activity occurs. If this pull request is still relevant, adding a comment or pushing new commits will keep it open. Also, you can always reopen the pull request if you missed the window.

Thank you for your contributions!

@dd-octo-sts dd-octo-sts Bot added the stale label Nov 6, 2025
@scottopell scottopell closed this Feb 26, 2026
@gh-worker-devtools-f43747
gh-worker-devtools-f43747 Bot deleted the sopell-refactor/telemetry-multimodule branch April 22, 2026 03:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog/no-changelog No changelog entry needed component/system-probe long review PR is complex, plan time to review it stale team/agent-runtimes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants