func()

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()
}