in extension/agenthealth/handler/useragent/useragent.go [74:136]
func (ua *userAgent) SetComponents(otelCfg *otelcol.Config, telegrafCfg *telegraf.Config) {
for _, input := range telegrafCfg.Inputs {
ua.inputs.Add(input.Config.Name)
}
for _, output := range telegrafCfg.Outputs {
ua.outputs.Add(output.Config.Name)
}
// Adding SELinux status
if envconfig.IsSelinuxEnabled() {
ua.outputs.Add(flagSELinux)
}
//Adding ROSA status
if envconfig.IsRunningInROSA() {
ua.outputs.Add(flagROSA)
}
for _, pipeline := range otelCfg.Service.Pipelines {
for _, receiver := range pipeline.Receivers {
// trim the adapter prefix from adapted Telegraf plugins
name := strings.TrimPrefix(receiver.Type().String(), adapter.TelegrafPrefix)
ua.inputs.Add(name)
if name == common.JmxKey {
cfg, ok := otelCfg.Receivers[receiver].(*jmxreceiver.Config)
if ok {
targetSystems := strings.Split(cfg.TargetSystem, ",")
for _, system := range targetSystems {
targetSystem := name + "-" + system
ua.inputs.Add(targetSystem)
}
}
}
}
for _, processor := range pipeline.Processors {
ua.processors.Add(processor.Type().String())
}
for _, exporter := range pipeline.Exporters {
ua.outputs.Add(exporter.Type().String())
if exporter.Type().String() == "awsemf" {
cfg, ok := otelCfg.Exporters[exporter].(*awsemfexporter.Config)
if ok {
if cfg.IsAppSignalsEnabled() {
ua.outputs.Add(flagAppSignals)
agent.UsageFlags().Set(agent.FlagAppSignal)
}
if cfg.IsEnhancedContainerInsights() {
ua.outputs.Add(flagEnhancedContainerInsights)
agent.UsageFlags().Set(agent.FlagEnhancedContainerInsights)
}
}
}
}
}
if !ua.isRoot {
ua.inputs.Add(flagRunAsUser)
}
ua.inputsStr.Store(componentsStr(typeInputs, ua.inputs))
ua.processorsStr.Store(componentsStr(typeProcessors, ua.processors))
ua.outputsStr.Store(componentsStr(typeOutputs, ua.outputs))
ua.notify()
}