common

package
v1.300033.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 31, 2024 License: MIT Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
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"
)
View Source
const (
	PipelineNameHost             = "host"
	PipelineNameHostDeltaMetrics = "hostDeltaMetrics"
	PipelineNameEmfLogs          = "emf_logs"
	AppSignals                   = "app_signals"
	AppSignalsRules              = "rules"
)
View Source
const KubernetesEnvVar = "K8S_NAMESPACE"

Variables

View Source
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
	}
)
View Source
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

func ConfigKey(keys ...string) string

ConfigKey joins the keys separated by confmap.KeyDelimiter. This helps translators navigate the confmap.Conf that the JSON config is loaded into.

func GetArray

func GetArray[C any](conf *confmap.Conf, key string) []C

GetArray gets the array value for the key. If the key is missing, the return value will be nil

func GetBool

func GetBool(conf *confmap.Conf, key string) (value bool, ok bool)

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

func GetDuration(conf *confmap.Conf, key string) (time.Duration, bool)

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

func GetNumber(conf *confmap.Conf, key string) (float64, bool)

GetNumber gets the number value for the key. The switch works through all reasonable number types (the default is typically float64)

func GetOrDefaultBool

func GetOrDefaultBool(conf *confmap.Conf, key string, defaultVal bool) bool

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

func GetOrDefaultNumber(conf *confmap.Conf, key string, defaultVal float64) float64

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

func GetString(conf *confmap.Conf, key string) (string, bool)

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 GetYamlFileToYamlConfig(cfg interface{}, yamlFile string) (interface{}, error)

func IsAppSignalsKubernetes added in v1.300031.0

func IsAppSignalsKubernetes() bool

func IsEKS added in v1.300033.0

func IsEKS() (bool, error)

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

func ParseDuration(v interface{}) (time.Duration, error)

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

type MissingKeyError struct {
	ID      component.ID
	JsonKey string
}

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 MockDetector struct {
	mock.Mock
}

type Translator

type Translator[C any] interface {
	Translate(*confmap.Conf) (C, error)
	ID() component.ID
}

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL