Add Service and Environment dimensions to EMF metrics #299
+325
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
When both
OTEL_AWS_APPLICATION_SIGNALS_ENABLEDandOTEL_AWS_APPLICATION_SIGNALS_EMF_EXPORT_ENABLEDare set totrue, EMF metrics will now include Service and Environment as dimensions:service.nameresource attribute, falls back to"UnknownService"deployment.environmentresource attribute, falls back to"lambda:default"For Lambda, both env vars default to
truevia theotel-instrumentwrapper script.Changes
src/exporter/aws/metrics/emf-exporter-base.tsisApplicationSignalsEmfExportEnabled()to check both env varshasDimensionCaseInsensitive()for case-insensitive dimension checkingaddApplicationSignalsDimensions()to inject Service/Environment dimensionscreateEmfLog()to call the new methodlambda-layer/packages/layer/scripts/otel-instrumentOTEL_AWS_APPLICATION_SIGNALS_EMF_EXPORT_ENABLED="true"for Lambdatest/exporter/aws/metrics/aws-cloudwatch-emf-exporter.test.tsTest plan
npm run lintpasses (0 errors)npm run compilebuilds successfullyManual Testing
Lambda Code
CW Metrics
Application Signals Related Metrics
🤖 Generated with Claude Code