Documentation
¶
Index ¶
- Constants
- func AddTraceHeaders(ctx context.Context, req *http.Request)
- func Distribution(metric string, value float64, tags ...string)
- func GetContext() context.Context
- func GetTraceHeaders(ctx context.Context) map[string]string
- func InvokeDryRun(callback func(ctx context.Context), cfg *Config) (interface{}, error)
- func Metric(metric string, value float64, tags ...string)
- func MetricWithTimestamp(metric string, value float64, timestamp time.Time, tags ...string)
- func WrapHandler(handler interface{}, cfg *Config) interface{}
- type Config
Constants ¶
const ( // DatadogAPIKeyEnvVar is the environment variable that will be used as an API key by default DatadogAPIKeyEnvVar = "DD_API_KEY" // DatadogKMSAPIKeyEnvVar is the environment variable that will be sent to KMS for decryption, then used as an API key. DatadogKMSAPIKeyEnvVar = "DD_KMS_API_KEY" // DatadogSiteEnvVar is the environment variable that will be used as the API host. DatadogSiteEnvVar = "DD_SITE" // DatadogLogLevelEnvVar is the environment variable that will be used to check the log level. // if it equals "debug" everything will be logged. DatadogLogLevelEnvVar = "DD_LOG_LEVEL" // DatadogShouldUseLogForwarderEnvVar is the environment variable that is used to enable log forwarding of metrics. DatadogShouldUseLogForwarderEnvVar = "DD_FLUSH_TO_LOG" // DefaultSite to send API messages to. DefaultSite = "datadoghq.com" // EnhancedMetrics is the environment variable used to enable enhanced metrics EnhancedMetrics = "DD_ENHANCED_METRICS" )
Variables ¶
This section is empty.
Functions ¶
func AddTraceHeaders ¶
AddTraceHeaders adds DataDog trace headers to a HTTP Request
func Distribution ¶
Distribution sends a distribution metric to DataDog Deprecated: Use Metric method instead
func GetContext ¶
GetContext retrieves the last created lambda context. Only use this if you aren't manually passing context through your call hierarchy.
func GetTraceHeaders ¶
GetTraceHeaders reads a map containing the DataDog trace headers from a context object.
func InvokeDryRun ¶ added in v0.5.0
InvokeDryRun is a utility to easily run your lambda for testing
func MetricWithTimestamp ¶ added in v0.5.0
MetricWithTimestamp sends a distribution metric to DataDog with a custom timestamp
func WrapHandler ¶
func WrapHandler(handler interface{}, cfg *Config) interface{}
WrapHandler is used to instrument your lambda functions, reading in context from API Gateway. It returns a modified handler that can be passed directly to the lambda.Start function.
Types ¶
type Config ¶
type Config struct {
// APIKey is your Datadog API key. This is used for sending metrics.
APIKey string
// KMSAPIKey is your Datadog API key, encrypted using the AWS KMS service. This is used for sending metrics.
KMSAPIKey string
// ShouldRetryOnFailure is used to turn on retry logic when sending metrics via the API. This can negatively effect the performance of your lambda,
// and should only be turned on if you can't afford to lose metrics data under poor network conditions.
ShouldRetryOnFailure bool
// ShouldUseLogForwarder enabled the log forwarding method for sending metrics to Datadog. This approach requires the user to set up a custom lambda
// function that forwards metrics from cloudwatch to the Datadog api. This approach doesn't have any impact on the performance of your lambda function.
ShouldUseLogForwarder bool
// BatchInterval is the period of time which metrics are grouped together for processing to be sent to the API or written to logs.
// Any pending metrics are flushed at the end of the lambda.
BatchInterval time.Duration
// Site is the host to send metrics to. If empty, this value is read from the 'DD_SITE' environment variable, or if that is empty
// will default to 'datadoghq.com'.
Site string
// DebugLogging will turn on extended debug logging.
DebugLogging bool
// EnhancedMetrics enables the reporting of enhanced metrics under `aws.lambda.enhanced*` and adds enhanced metric tags
EnhancedMetrics bool
}
Config gives options for how ddlambda should behave