Documentation ¶
Index ¶
- Constants
- Variables
- func ConfigKey(keys ...string) string
- func GetArray[C any](conf *confmap.Conf, key string) []C
- func GetBool(conf *confmap.Conf, key string) (value bool, ok bool)
- func GetDuration(conf *confmap.Conf, key string) (time.Duration, bool)
- func GetNumber(conf *confmap.Conf, key string) (float64, bool)
- func GetOrDefaultBool(conf *confmap.Conf, key string, defaultVal bool) bool
- func GetOrDefaultDuration(conf *confmap.Conf, keychain []string, defaultDuration time.Duration) time.Duration
- func GetOrDefaultNumber(conf *confmap.Conf, key string, defaultVal float64) float64
- func GetString(conf *confmap.Conf, key string) (string, bool)
- func GetYamlFileToYamlConfig(cfg interface{}, yamlFile string) (interface{}, error)
- func IsAppSignalsKubernetes() bool
- func IsEKS() (bool, error)
- func ParseDuration(v interface{}) (time.Duration, error)
- type ComponentTranslators
- type Detector
- type EksDetector
- type MissingKeyError
- type MockDetector
- type Translator
- type TranslatorMap
Constants ¶
const ( AgentKey = "agent" MetricsKey = "metrics" LogsKey = "logs" TracesKey = "traces" MetricsCollectedKey = "metrics_collected" LogsCollectedKey = "logs_collected" TracesCollectedKey = "traces_collected" ECSKey = "ecs" KubernetesKey = "kubernetes" PrometheusKey = "prometheus" EMFProcessorKey = "emf_processor" DisableMetricExtraction = "disable_metric_extraction" XrayKey = "xray" OtlpKey = "otlp" EndpointOverrideKey = "endpoint_override" RegionOverrideKey = "region_override" ProxyOverrideKey = "proxy_override" InsecureKey = "insecure" LocalModeKey = "local_mode" CredentialsKey = "credentials" RoleARNKey = "role_arn" MetricsCollectionIntervalKey = "metrics_collection_interval" MeasurementKey = "measurement" DropOriginalMetricsKey = "drop_original_metrics" ForceFlushIntervalKey = "force_flush_interval" ContainerInsightsMetricGranularity = "metric_granularity" // replaced with enhanced_container_insights EnhancedContainerInsights = "enhanced_container_insights" PreferFullPodName = "prefer_full_pod_name" Console = "console" DiskIOKey = "diskio" NetKey = "net" Emf = "emf" StructuredLog = "structuredlog" ServiceAddress = "service_address" Udp = "udp" Tcp = "tcp" Region = "region" LogGroupName = "log_group_name" LogStreamName = "log_stream_name" )
const ( PipelineNameHost = "host" PipelineNameHostDeltaMetrics = "hostDeltaMetrics" PipelineNameEmfLogs = "emf_logs" AppSignals = "app_signals" AppSignalsRules = "rules" )
const KubernetesEnvVar = "K8S_NAMESPACE"
Variables ¶
var ( AppSignalsTraces = ConfigKey(TracesKey, TracesCollectedKey, AppSignals) AppSignalsMetrics = ConfigKey(LogsKey, MetricsCollectedKey, AppSignals) AppSignalsConfigKeys = map[component.DataType]string{ component.DataTypeTraces: AppSignalsTraces, component.DataTypeMetrics: AppSignalsMetrics, } )
var ( // TestEKSDetector is used for unit testing EKS route TestEKSDetector = func() (Detector, error) { cm := &v1.ConfigMap{ TypeMeta: metav1.TypeMeta{Kind: "ConfigMap", APIVersion: "v1"}, ObjectMeta: metav1.ObjectMeta{Namespace: "kube-system", Name: "aws-auth"}, Data: make(map[string]string), } return &EksDetector{Clientset: fake.NewSimpleClientset(cm)}, nil } // TestK8sDetector is used for unit testing k8s route TestK8sDetector = func() (Detector, error) { return &EksDetector{Clientset: fake.NewSimpleClientset()}, nil } )
var ( // NewDetector creates a new singleton detector for EKS NewDetector = func() (Detector, error) { var errors error once.Do(func() { if clientset, err := getClient(); err != nil { errors = err } else { detectorSingleton = &EksDetector{Clientset: clientset} } }) return detectorSingleton, errors } )
Functions ¶
func ConfigKey ¶
ConfigKey joins the keys separated by confmap.KeyDelimiter. This helps translators navigate the confmap.Conf that the JSON config is loaded into.
func GetArray ¶
GetArray gets the array value for the key. If the key is missing, the return value will be nil
func GetBool ¶
GetBool gets the bool value for the key. If the key is missing or the value is not a bool type, then ok will be false.
func GetDuration ¶
GetDuration gets the value for the key and calls ParseDuration on it. If the key is missing, it is unable to parse the duration, or the duration is set to 0, then the returned bool will be false.
func GetNumber ¶
GetNumber gets the number value for the key. The switch works through all reasonable number types (the default is typically float64)
func GetOrDefaultBool ¶
GetOrDefaultBool gets the bool value for the key. If the key is missing or the value is not a bool type, then the defaultVal is returned.
func GetOrDefaultDuration ¶
func GetOrDefaultDuration(conf *confmap.Conf, keychain []string, defaultDuration time.Duration) time.Duration
GetOrDefaultDuration from the first section in the keychain with a parsable duration. If none are found, returns the defaultDuration.
func GetOrDefaultNumber ¶
GetOrDefaultNumber gets the number value for the key. If the key is missing or the value is not a number type, then the defaultVal is returned.
func GetString ¶
GetString gets the string value for the key. If the key is missing, ok will be false.
func GetYamlFileToYamlConfig ¶ added in v1.300031.0
func IsAppSignalsKubernetes ¶ added in v1.300031.0
func IsAppSignalsKubernetes() bool
func IsEKS ¶ added in v1.300033.0
IsEKS checks if the agent is running on EKS. This is done by using the kubernetes API to determine if the aws-auth configmap exists in the kube-system namespace
func ParseDuration ¶
ParseDuration attempts to parse the input into a duration. Returns a zero duration and an error if invalid.
Types ¶
type ComponentTranslators ¶
type ComponentTranslators struct { Receivers TranslatorMap[component.Config] Processors TranslatorMap[component.Config] Exporters TranslatorMap[component.Config] Extensions TranslatorMap[component.Config] }
ComponentTranslators is a component ID and respective service pipeline.
type Detector ¶ added in v1.300033.0
type Detector interface {
// contains filtered or unexported methods
}
type EksDetector ¶ added in v1.300033.0
type EksDetector struct {
Clientset kubernetes.Interface
}
type MissingKeyError ¶
A MissingKeyError occurs when a translator is used for a JSON config that does not have a required key. This typically means that the pipeline was configured incorrectly.
func (*MissingKeyError) Error ¶
func (e *MissingKeyError) Error() string
type MockDetector ¶ added in v1.300033.0
type Translator ¶
Translator is used to translate the JSON config into an OTEL config.
type TranslatorMap ¶
type TranslatorMap[C any] interface { // Set a translator to the map. If the ID is already present, replaces the translator. // Otherwise, adds it to the end of the list. Set(Translator[C]) // Get the translator for the component.ID. Get(component.ID) (Translator[C], bool) // Merge another translator map in. Merge(TranslatorMap[C]) // Keys is the ordered component.IDs. Keys() []component.ID // Range iterates over each translator in order and calls the callback function on each. Range(func(Translator[C])) // Len is the number of translators in the map. Len() int }
TranslatorMap is a set of translators by their types.
func NewTranslatorMap ¶
func NewTranslatorMap[C any](translators ...Translator[C]) TranslatorMap[C]
NewTranslatorMap creates a TranslatorMap from the translators.