Documentation
¶
Overview ¶
Package utils offers a number of high level helpers to work with the configuration
Index ¶
- Constants
- func AddAgentVersionToDomain(DDURL string, app string) (string, error)
- func BuildURLWithPrefix(prefix, site string) string
- func ConfFileDirectory(c pkgconfigmodel.Reader) string
- func GetClusterAgentEndpoint() (string, error)
- func GetConfiguredDCATags(c pkgconfigmodel.Reader) []string
- func GetConfiguredTags(c pkgconfigmodel.Reader, includeDogstatsd bool) []string
- func GetInfraEndpoint(c pkgconfigmodel.Reader) string
- func GetMRFEndpoint(c pkgconfigmodel.Reader, prefix, ddMRFURLKey string) (string, error)
- func GetMRFInfraEndpoint(c pkgconfigmodel.Reader) (string, error)
- func GetMRFLogsEndpoint(c pkgconfigmodel.Reader, prefix string) (string, error)
- func GetMainEndpoint(c pkgconfigmodel.Reader, prefix string, ddURLKey string) string
- func GetMainEndpointBackwardCompatible(c pkgconfigmodel.Reader, prefix string, ddURLKey string, backwardKey string) string
- func GetMultipleEndpoints(c pkgconfigmodel.Reader) (map[string][]string, error)
- func GetTraceAgentDefaultEnv(c pkgconfigmodel.Reader) string
- func IsAPMEnabled(cfg pkgconfigmodel.Reader) bool
- func IsCheckTelemetryEnabled(checkName string, cfg pkgconfigmodel.Reader) bool
- func IsCoreAgentEnabled(cfg pkgconfigmodel.Reader) bool
- func IsTelemetryEnabled(cfg pkgconfigmodel.Reader) bool
- func SanitizeAPIKey(key string) string
- func SetLogLevel(level string, config pkgconfigmodel.Writer, source pkgconfigmodel.Source) error
- type MetadataAsTags
- type MetadataProviders
Constants ¶
const ( // InfraURLPrefix is the default infra URL prefix for datadog InfraURLPrefix = "https://app." // MRFLogsPrefix is the logs-specific MRF site prefix. This is used for both pure logs as well as EvP-based payloads (Database // Monitoring, Netflow, etc) MRFLogsPrefix = "logs.mrf." // MRFInfraPrefix is the infrastructure-specific MRF site prefix. This is used for metadata, metrics, etc. MRFInfraPrefix = "mrf." )
Variables ¶
This section is empty.
Functions ¶
func AddAgentVersionToDomain ¶
AddAgentVersionToDomain prefixes the domain with the agent version: X-Y-Z.domain
func BuildURLWithPrefix ¶ added in v0.52.0
BuildURLWithPrefix will return an HTTP(s) URL for a site given a certain prefix
func ConfFileDirectory ¶
func ConfFileDirectory(c pkgconfigmodel.Reader) string
ConfFileDirectory returns the absolute path to the folder containing the config file used to populate the registry
func GetClusterAgentEndpoint ¶ added in v0.60.0
GetClusterAgentEndpoint provides a validated https endpoint from configuration keys in datadog.yaml: 1st. configuration key "cluster_agent.url" (or the DD_CLUSTER_AGENT_URL environment variable),
add the https prefix if the scheme isn't specified
2nd. environment variables associated with "cluster_agent.kubernetes_service_name"
${dcaServiceName}_SERVICE_HOST and ${dcaServiceName}_SERVICE_PORT
func GetConfiguredDCATags ¶ added in v0.61.0
func GetConfiguredDCATags(c pkgconfigmodel.Reader) []string
GetConfiguredDCATags returns list of tags from a configuration, based on `cluster_checks.extra_tags` (DD_CLUSTER_CHECKS_EXTRA_TAGS) and `orchestrator_explorer.extra_tags (DD_ORCHESTRATOR_EXPLORER_EXTRA_TAGS).
func GetConfiguredTags ¶
func GetConfiguredTags(c pkgconfigmodel.Reader, includeDogstatsd bool) []string
GetConfiguredTags returns list of tags from a configuration, based on `tags` (DD_TAGS) and `extra_tags“ (DD_EXTRA_TAGS), with `dogstatsd_tags` (DD_DOGSTATSD_TAGS) if includeDogdstatsd is true.
func GetInfraEndpoint ¶
func GetInfraEndpoint(c pkgconfigmodel.Reader) string
GetInfraEndpoint returns the main DD Infra URL defined in config, based on the value of `site` and `dd_url`
func GetMRFEndpoint ¶ added in v0.54.0
func GetMRFEndpoint(c pkgconfigmodel.Reader, prefix, ddMRFURLKey string) (string, error)
GetMRFEndpoint returns the generic MRF endpoint to use.
This is based on the `multi_region_failover.site` setting. If `ddMRFURLKey` is not empty, we attempt to use it as a lookup key in the configuration. If a valid is set at the given key, it is used as an override URL that takes precedence over `multi_region_failover.site`.
func GetMRFInfraEndpoint ¶ added in v0.54.0
func GetMRFInfraEndpoint(c pkgconfigmodel.Reader) (string, error)
GetMRFInfraEndpoint returns the infrastructure-specific MRF endpoint to use.
This is based on the `multi_region_failover.site` setting. If `ddMRFURLKey` is not empty, we attempt to use it as a lookup key in the configuration. If a valid is set at the given key, it is used as an override URL that takes precedence over `multi_region_failover.site`.
func GetMRFLogsEndpoint ¶ added in v0.60.0
func GetMRFLogsEndpoint(c pkgconfigmodel.Reader, prefix string) (string, error)
GetMRFLogsEndpoint returns the logs-specific MRF endpoint to use.
This is based on the `multi_region_failover.site` setting. If `ddMRFURLKey` is not empty, we attempt to use it as a lookup key in the configuration. If a valid is set at the given key, it is used as an override URL that takes precedence over `multi_region_failover.site`.
func GetMainEndpoint ¶
func GetMainEndpoint(c pkgconfigmodel.Reader, prefix string, ddURLKey string) string
GetMainEndpoint returns the main DD URL defined in the config, based on `site` and the prefix, or ddURLKey
func GetMainEndpointBackwardCompatible ¶
func GetMainEndpointBackwardCompatible(c pkgconfigmodel.Reader, prefix string, ddURLKey string, backwardKey string) string
GetMainEndpointBackwardCompatible implements the logic to extract the DD URL from a config, based on `site`,ddURLKey and a backward compatible key
func GetMultipleEndpoints ¶
func GetMultipleEndpoints(c pkgconfigmodel.Reader) (map[string][]string, error)
GetMultipleEndpoints returns the api keys per domain specified in the main agent config
func GetTraceAgentDefaultEnv ¶
func GetTraceAgentDefaultEnv(c pkgconfigmodel.Reader) string
GetTraceAgentDefaultEnv returns the default env for the trace agent
func IsAPMEnabled ¶ added in v0.61.0
func IsAPMEnabled(cfg pkgconfigmodel.Reader) bool
IsAPMEnabled checks if APM is enabled or if Error Tracking standalone is enabled, simplifying the setup for Error Tracking standalone only via the apm_config.error_tracking_standalone.enabled option instead of requiring to enable also apm_config.enabled.
func IsCheckTelemetryEnabled ¶
func IsCheckTelemetryEnabled(checkName string, cfg pkgconfigmodel.Reader) bool
IsCheckTelemetryEnabled returns if we want telemetry for the given check. Returns true if a * is present in the telemetry.checks list.
func IsCoreAgentEnabled ¶ added in v0.61.0
func IsCoreAgentEnabled(cfg pkgconfigmodel.Reader) bool
IsCoreAgentEnabled checks if the Agent is able to send the payloads it and other Agents need to function with
func IsTelemetryEnabled ¶
func IsTelemetryEnabled(cfg pkgconfigmodel.Reader) bool
IsTelemetryEnabled returns whether or not telemetry is enabled
func SanitizeAPIKey ¶
SanitizeAPIKey strips newlines and other control characters from a given string.
func SetLogLevel ¶ added in v0.57.0
func SetLogLevel(level string, config pkgconfigmodel.Writer, source pkgconfigmodel.Source) error
SetLogLevel validates and sets the "log_level" setting in the configuration. The logger will automatically react to this configuration change. It takes a `level` string representing the desired log level and a `source` model.Source indicating where the new level came from (CLI, Remote Config, ...). It returns an error if the log level is invalid
Types ¶
type MetadataAsTags ¶ added in v0.58.0
type MetadataAsTags interface { // GetPodLabelsAsTags returns pod labels as tags GetPodLabelsAsTags() map[string]string // GetPodAnnotationsAsTags returns pod annotations as tags GetPodAnnotationsAsTags() map[string]string // GetNodeLabelsAsTags returns node labels as tags GetNodeLabelsAsTags() map[string]string // GetNodeAnnotationsAsTags returns node annotations as tags GetNodeAnnotationsAsTags() map[string]string // GetNamespaceLabelsAsTags returns namespace labels as tags GetNamespaceLabelsAsTags() map[string]string // GetNamespaceAnnotationsAsTags returns namespace annotations as tags GetNamespaceAnnotationsAsTags() map[string]string // GetResourcesLabelsAsTags returns resources labels as tags GetResourcesLabelsAsTags() map[string]map[string]string // GetResourcesAnnotationsAsTags returns resources annotations as tags GetResourcesAnnotationsAsTags() map[string]map[string]string }
MetadataAsTags contains the labels as tags and annotations as tags for each kubernetes resource based on the user configurations of the following options ordered in increasing order of priority:
kubernetes_pod_labels_as_tags kubernetes_pod_annotations_as_tags kubernetes_node_labels_as_tags kubernetes_node_annotations_as_tags kubernetes_namespace_labels_as_tags kubernetes_namespace_annotations_as_tags kubernetes_resources_labels_as_tags kubernetes_resources_anotations_as_tags
In case of conflict, higher priority configuration value takes precedences For example, if kubernetes_pod_labels_as_tags = {`l1`: `v1`, `l2`: `v2`} and kubernetes_resources_labels_as_tags = {`pods`: {`l1`: `x`}}, the resulting labels as tags for pods will be {`l1`: `x`, `l2`: `v2`}
func GetMetadataAsTags ¶ added in v0.58.0
func GetMetadataAsTags(c pkgconfigmodel.Reader) MetadataAsTags
GetMetadataAsTags returns a merged configuration of all labels and annotations as tags set by the user
type MetadataProviders ¶
type MetadataProviders struct { Name string `mapstructure:"name"` Interval time.Duration `mapstructure:"interval"` }
MetadataProviders helps unmarshalling `metadata_providers` config param
func GetMetadataProviders ¶
func GetMetadataProviders(c pkgconfigmodel.Reader) ([]MetadataProviders, error)
GetMetadataProviders returns the "metadata_providers" set in the configuration