Skip to content

Commit 151ed77

Browse files
authored
Do not show error messages even if neither DD_API_KEY nor DD_KMS_API_KEY is set when Lambda Extension is running (#102)
1 parent 23c42de commit 151ed77

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

ddlambda.go

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -214,16 +214,17 @@ func initializeListeners(cfg *Config) []wrapper.HandlerListener {
214214
logger.SetLogLevel(logger.LevelDebug)
215215
}
216216
extensionManager := extension.BuildExtensionManager()
217+
isExtensionRunning := extensionManager.IsExtensionRunning()
217218

218219
// Wrap the handler with listeners that add instrumentation for traces and metrics.
219220
tl := trace.MakeListener(cfg.toTraceConfig(), extensionManager)
220-
ml := metrics.MakeListener(cfg.toMetricsConfig(), extensionManager)
221+
ml := metrics.MakeListener(cfg.toMetricsConfig(isExtensionRunning), extensionManager)
221222
return []wrapper.HandlerListener{
222223
&tl, &ml,
223224
}
224225
}
225226

226-
func (cfg *Config) toMetricsConfig() metrics.Config {
227+
func (cfg *Config) toMetricsConfig(isExtensionRunning bool) metrics.Config {
227228

228229
mc := metrics.Config{
229230
ShouldRetryOnFailure: false,
@@ -263,8 +264,10 @@ func (cfg *Config) toMetricsConfig() metrics.Config {
263264
if mc.KMSAPIKey == "" {
264265
mc.KMSAPIKey = os.Getenv(DatadogKMSAPIKeyEnvVar)
265266
}
266-
if mc.APIKey == "" && mc.KMSAPIKey == "" && !mc.ShouldUseLogForwarder {
267-
logger.Error(fmt.Errorf("couldn't read DD_API_KEY or DD_KMS_API_KEY from environment"))
267+
if !isExtensionRunning && mc.APIKey == "" && mc.KMSAPIKey == "" && !mc.ShouldUseLogForwarder {
268+
logger.Error(fmt.Errorf(
269+
"couldn't read %s or %s from environment", DatadogAPIKeyEnvVar, DatadogKMSAPIKeyEnvVar,
270+
))
268271
}
269272

270273
enhancedMetrics := os.Getenv("DD_ENHANCED_METRICS")

internal/metrics/listener.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,14 @@ func MakeListener(config Config, extensionManager *extension.ExtensionManager) L
106106
}
107107
}
108108

109+
// canSendMetrics reports whether l can send metrics.
110+
func (l *Listener) canSendMetrics() bool {
111+
return l.isAgentRunning || l.apiClient.apiKey != "" || l.config.KMSAPIKey != "" || l.config.ShouldUseLogForwarder
112+
}
113+
109114
// HandlerStarted adds metrics service to the context
110115
func (l *Listener) HandlerStarted(ctx context.Context, msg json.RawMessage) context.Context {
111-
if l.apiClient.apiKey == "" && l.config.KMSAPIKey == "" && !l.config.ShouldUseLogForwarder {
116+
if !l.canSendMetrics() {
112117
logger.Error(fmt.Errorf("datadog api key isn't set, won't be able to send metrics"))
113118
}
114119

0 commit comments

Comments
 (0)