refactor(metrics): replace EnvironmentVariablesService with cached #envConfig #4188
+48
−71
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.
EnvironmentVariablesService
class.#envConfig
object populated once duringsetOptions()
.Metrics.ts
to use#envConfig
for values likenamespace
,serviceName
,functionName
, etc.envVarsService
, includinggetEnvVarsService()
andsetEnvVarsService()
methods.This refactor improves runtime performance by avoiding redundant environment variable reads and follows a cleaner, more functional approach. It also aligns with the
setOptions()
pattern for centralized config management and eliminates ~50 lines of unnecessary code.Summary
What’s being changed?
This PR removes the verbose class-based
EnvironmentVariablesService
and replaces it with a private, cached#envConfig
object in theMetrics
class. The object is populated once during initialization via thesetOptions()
method using functional utilities from@aws-lambda-powertools/commons/utils/env
.Why?
Benefits
#4136
By submitting this pull request, I confirm that I can use, modify, copy, and redistribute this contribution under the terms of my choice.
Disclaimer: We value your time and bandwidth. As such, any pull requests created on non-triaged issues might not be successful.