Describe the feature
Enable EmfMetricLoggingPublisher to optionally accept a Supplier<Map<String, String>> that it uses to add properties/metadata to the emf records.
Use Case
Prior to the introduction of EmfMetricLoggingPublisher, I implement a custom emf publisher (#2068 (comment)) to use in my lambda functions.
Now looking to move to the SDK-provided EmfMetricLoggingPublisher, I'm realizing there's a gap. In my custom publisher, I enriched the emf record with some additional metadata like function request id, and other properties to enable emf record analysis/correlation with function invocations.
EmfMetricLoggingPublisher provides no way to interact with the generated emf records and from the implementation I see it's a custom implementation.
I believe the ability to enrich emf records, with identifiers/properties to facilitate investigations/correlating with other metadata is a good practice.
Proposed Solution
The proposal is to update EmfMetricLoggingPublisher.builder() to accept a .propertiesSupplier(...) that takes a Supplier<Map<String, String>> to add as properties - equivalent to https://github.com/awslabs/aws-embedded-metrics-java/blob/master/src/main/java/software/amazon/cloudwatchlogs/emf/logger/MetricsLogger.java#L110
Other Information
No response
Acknowledgements
AWS Java SDK version used
2.39.5
JDK version used
25
Operating System and version
Amazon Linux 2023
Describe the feature
Enable
EmfMetricLoggingPublisherto optionally accept aSupplier<Map<String, String>>that it uses to add properties/metadata to the emf records.Use Case
Prior to the introduction of
EmfMetricLoggingPublisher, I implement a custom emf publisher (#2068 (comment)) to use in my lambda functions.Now looking to move to the SDK-provided
EmfMetricLoggingPublisher, I'm realizing there's a gap. In my custom publisher, I enriched the emf record with some additional metadata like function request id, and other properties to enable emf record analysis/correlation with function invocations.EmfMetricLoggingPublisherprovides no way to interact with the generated emf records and from the implementation I see it's a custom implementation.I believe the ability to enrich emf records, with identifiers/properties to facilitate investigations/correlating with other metadata is a good practice.
Proposed Solution
The proposal is to update
EmfMetricLoggingPublisher.builder()to accept a.propertiesSupplier(...)that takes aSupplier<Map<String, String>>to add as properties - equivalent to https://github.com/awslabs/aws-embedded-metrics-java/blob/master/src/main/java/software/amazon/cloudwatchlogs/emf/logger/MetricsLogger.java#L110Other Information
No response
Acknowledgements
AWS Java SDK version used
2.39.5
JDK version used
25
Operating System and version
Amazon Linux 2023