translator/translate/otel/extension/k8smetadata/translator.go (37 lines of code) (raw):

// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: MIT package k8smetadata import ( "go.opentelemetry.io/collector/component" "go.opentelemetry.io/collector/confmap" "go.opentelemetry.io/collector/extension" "github.com/aws/amazon-cloudwatch-agent/extension/k8smetadata" "github.com/aws/amazon-cloudwatch-agent/translator/translate/otel/common" ) type translator struct { name string factory extension.Factory } var _ common.ComponentTranslator = (*translator)(nil) func NewTranslator() common.ComponentTranslator { return &translator{ factory: k8smetadata.NewFactory(), } } func (t *translator) ID() component.ID { return component.NewIDWithName(t.factory.Type(), t.name) } // Translate creates an extension configuration. func (t *translator) Translate(conf *confmap.Conf) (component.Config, error) { cfg := t.factory.CreateDefaultConfig().(*k8smetadata.Config) if t.isOTLP(conf) { cfg.Objects = []string{"endpointslices"} } if t.isAppSignals(conf) { cfg.Objects = []string{"endpointslices", "services"} } return cfg, nil } func (t *translator) isAppSignals(conf *confmap.Conf) bool { return conf.IsSet(common.AppSignalsMetrics) || conf.IsSet(common.AppSignalsTraces) || conf.IsSet(common.AppSignalsMetricsFallback) || conf.IsSet(common.AppSignalsTracesFallback) } func (t *translator) isOTLP(conf *confmap.Conf) bool { return conf.IsSet(common.OTLPLogsKey) || conf.IsSet(common.OTLPMetricsKey) }