@@ -25,11 +25,23 @@ import (
2525 secretfx "github.com/DataDog/datadog-agent/comp/core/secrets/fx"
2626 tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def"
2727 remoteTaggerFx "github.com/DataDog/datadog-agent/comp/core/tagger/fx-remote"
28+ "github.com/DataDog/datadog-agent/comp/dogstatsd/statsd"
29+ statsdotel "github.com/DataDog/datadog-agent/comp/dogstatsd/statsd/otel"
2830 hostprofiler "github.com/DataDog/datadog-agent/comp/host-profiler"
2931 collector "github.com/DataDog/datadog-agent/comp/host-profiler/collector/def"
3032 collectorimpl "github.com/DataDog/datadog-agent/comp/host-profiler/collector/impl"
33+ "github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/metricsclient"
34+ traceagentfx "github.com/DataDog/datadog-agent/comp/trace/agent/fx"
35+ traceagentcomp "github.com/DataDog/datadog-agent/comp/trace/agent/impl"
36+ gzipfx "github.com/DataDog/datadog-agent/comp/trace/compression/fx-gzip"
37+ traceconfig "github.com/DataDog/datadog-agent/comp/trace/config"
38+ payloadmodifierfx "github.com/DataDog/datadog-agent/comp/trace/payload-modifier/fx"
39+ pkgconfigmodel "github.com/DataDog/datadog-agent/pkg/config/model"
3140 "github.com/DataDog/datadog-agent/pkg/config/setup"
41+ "github.com/DataDog/datadog-agent/pkg/trace/telemetry"
3242 "github.com/DataDog/datadog-agent/pkg/util/fxutil"
43+ "github.com/DataDog/datadog-agent/pkg/util/fxutil/logging"
44+ ddgostatsd "github.com/DataDog/datadog-go/v5/statsd"
3345)
3446
3547type cliParams struct {
@@ -57,9 +69,10 @@ func MakeCommand(globalConfGetter func() *globalparams.GlobalParams) []*cobra.Co
5769 return []* cobra.Command {cmd }
5870}
5971
60- func runHostProfilerCommand (_ context.Context , cliParams * cliParams ) error {
72+ func runHostProfilerCommand (ctx context.Context , cliParams * cliParams ) error {
6173 var opts []fx.Option = []fx.Option {
6274 hostprofiler .Bundle (collectorimpl .NewParams (cliParams .GlobalParams .ConfFilePath )),
75+ logging .DefaultFxLoggingOption (),
6376 }
6477
6578 if cliParams .GlobalParams .CoreConfPath != "" {
@@ -69,12 +82,11 @@ func runHostProfilerCommand(_ context.Context, cliParams *cliParams) error {
6982 ConfigParams : config .NewAgentParams (cliParams .GlobalParams .CoreConfPath ),
7083 LogParams : log .ForDaemon (command .LoggerName , "log_file" , setup .DefaultHostProfilerLogFile ),
7184 }),
85+ fx .Provide (collectorimpl .NewExtraFactoriesWithAgentCore ),
86+ )
87+ opts = append (opts , getRemoteTaggerOptions (cliParams )... )
88+ opts = append (opts , getTraceAgentOptions (ctx )... )
7289
73- ipcfx .ModuleReadOnly (),
74- secretfx .Module (),
75- remoteTaggerFx .Module (tagger .NewRemoteParams ()),
76- configsyncimpl .Module (configsyncimpl .NewParams (cliParams .SyncTimeout , true , cliParams .SyncOnInitTimeout )),
77- fx .Provide (collectorimpl .NewExtraFactoriesWithAgentCore ))
7890 } else {
7991 opts = append (opts , fx .Provide (collectorimpl .NewExtraFactoriesWithoutAgentCore ))
8092 }
@@ -85,3 +97,44 @@ func runHostProfilerCommand(_ context.Context, cliParams *cliParams) error {
8597func run (collector collector.Component ) error {
8698 return collector .Run ()
8799}
100+
101+ func getRemoteTaggerOptions (cliParams * cliParams ) []fx.Option {
102+ return []fx.Option {
103+ ipcfx .ModuleReadOnly (),
104+ secretfx .Module (),
105+ remoteTaggerFx .Module (tagger .NewRemoteParams ()),
106+ configsyncimpl .Module (configsyncimpl .NewParams (cliParams .SyncTimeout , true , cliParams .SyncOnInitTimeout )),
107+ }
108+ }
109+
110+ func getTraceAgentOptions (ctx context.Context ) []fx.Option {
111+ return []fx.Option {
112+ traceagentfx .Module (),
113+ traceconfig .Module (),
114+
115+ fx .Supply (& traceagentcomp.Params {
116+ CPUProfile : "" ,
117+ MemProfile : "" ,
118+ PIDFilePath : "" ,
119+ DisableInternalProfiling : true ,
120+ }),
121+ fx .Provide (func (cfg traceconfig.Component ) telemetry.TelemetryCollector {
122+ return telemetry .NewCollector (cfg .Object ())
123+ }),
124+ fx .Supply (metricsclient .NewStatsdClientWrapper (& ddgostatsd.NoOpClient {})),
125+ fx .Provide (func (client * metricsclient.StatsdClientWrapper ) statsd.Component {
126+ return statsdotel .NewOTelStatsd (client )
127+ }),
128+
129+ gzipfx .Module (),
130+ payloadmodifierfx .NilModule (),
131+ fx .Supply (fx .Annotate (ctx , fx .As (new (context.Context )))),
132+
133+ fx .Decorate (func (config config.Component ) config.Component {
134+ config .Set ("apm_config.debug.port" , 0 , pkgconfigmodel .SourceDefault ) // Disabled as in the otel-agent
135+ config .Set (setup .OTLPTracePort , 0 , pkgconfigmodel .SourceDefault ) // Disabled as in the otel-agent
136+ config .Set ("apm_config.receiver_enabled" , false , pkgconfigmodel .SourceDefault ) // disable HTTP receiver
137+ return config
138+ }),
139+ }
140+ }
0 commit comments