All notable changes to this project will be documented in this file.
This project follows Keep a Changelog format for changes and adheres to Semantic Versioning.
- SQS Batch processing: Prevent message to be marked as success if failed sending to DLQ for non retryable exceptions. #731
- SQS Batch processing: Improve documentation on IAM premissions required by function when using utility with an encrypted SQS queue with customer managed KMS keys.
- Tracing: Ability to override object mapper used for serializing method response as trace metadata when enabled. This provides users ability to customize how and what you want to capture as metadata from method response object. #698
- Logging: Upgrade Log4j to version 2.17.1 for CVE-2021-44832
- Logging: Modern log4j configuration to customise structured logging. Refer docs to start using new config. #670
- SQS Batch: Support batch size greater than 10. #667
- Logging: Upgrade Log4j to version 2.17.0 for CVE-2021-45105
- Tracing: add
Service
annotation. #654
- Upgrading Log4j to version 2.16.0 for CVE-2021-45046
- Upgrading Log4j to version 2.15.0 for CVE-2021-44228
- Powertools Cloudformation module (NEW): New module simplifying AWS Lambda-backed custom resources written in Java. #560
- SQS Large message processing: Ability to override the default
S3Client
use to fetch payload from S3. #602
- Logging:
@Logging
annotation now works with@Tracing
annotation onRequestStreamHandler
when used inlogEvent
mode. #567
- deps: Bump third party dependencies to the latest versions.
- SQS Batch processing: Ability to move non retryable message to configured dead letter queue(DLQ). #500
- Powertools All Modules: Upgrade to the latest(1.14.0) aspectj-maven-plugin which also supports Java 9 and newer versions. Users no longer need to depend on com.nickwongdev as a workaround. #489
- Logging: Performance optimisation to improve cold start. #484
- SQS Batch processing/Large message: Module now lazy loads default SQS client. #484
- Logging: Support for extracting Correlation id using
@Logging
annotation viacorrelationIdPath
attribute andsetCorrelationId()
method inLoggingUtils
(#448). - Logging: New
clearState
attribute on@Logging
annotation to clear previously added custom keys upon invocation(#453).
- deps: Bump third party dependencies to the latest versions.
- Tracing: Support for Boolean and Number type as value in
TracingUtils.putAnnotation()
(#423). - Logging: API to remove any additional custom key from logger entry using
LoggingUtils.removeKeys()
(#395).
- deps: Bump third party dependencies to the latest versions.
- Metrics: Ability to set multiple dimensions as default dimensions via
MetricsUtils.defaultDimensions()
. Introduced in v1.4.0MetricsUtils.defaultDimensionSet()
is deprecated now for better user experience.
-
Metrics: Ability to set default dimension for metrics via
MetricsUtils.defaultDimensionSet()
.Note: If your monitoring depends on default dimensions captured before via aws-embedded-metrics-java, those either need to be updated or has to be explicitly captured via
MetricsUtils.defaultDimensionSet()
. -
Metrics: Remove validation of having minimum one dimension. EMF now support Dimension set being empty as well.
- Powertools: It now works out of the box with code guru profile handler implementation.
- Logging: Ability to override object mapper used for logging event. This provides customers ability to customize how and what they want to log from event.
- Metrics: Module now by default captures AWS Request id as property if used together with Metrics annotation. It will also capture Xray Trace ID as property if tracing is enabled. This ensures good observability and tracing.
- Metrics:
withSingleMetric
from `MetricsUtils can now pick the default namespace specified either on Metrics annotation or via POWERTOOLS_METRICS_NAMESPACE env var, without need to specify explicitly for each call. - Metrics:
Metrics
annotation captures metrics even in case of unhandled exception from Lambda function. - Docs: Migrated from Gatsby to MKdocs documentation system