Skip to content

Commit 73f100d

Browse files
committed
complete sqs batch example with logs and traces annotations
1 parent 56499e2 commit 73f100d

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

examples/powertools-examples-batch/src/main/java/org/demo/batch/sqs/AbstractSqsBatchHandler.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,12 @@
2323
import org.demo.batch.model.Product;
2424
import org.slf4j.Logger;
2525
import org.slf4j.LoggerFactory;
26+
import org.slf4j.MDC;
2627
import software.amazon.awssdk.core.sync.RequestBody;
2728
import software.amazon.awssdk.http.urlconnection.UrlConnectionHttpClient;
2829
import software.amazon.awssdk.services.s3.S3Client;
2930
import software.amazon.awssdk.services.s3.model.PutObjectRequest;
31+
import software.amazon.lambda.powertools.logging.Logging;
3032
import software.amazon.lambda.powertools.tracing.Tracing;
3133
import software.amazon.lambda.powertools.tracing.TracingUtils;
3234

@@ -42,10 +44,14 @@ public class AbstractSqsBatchHandler {
4244
* @param p deserialized product
4345
* @param context Lambda context
4446
*/
47+
@Logging
4548
@Tracing
4649
protected void processMessage(Product p, Context context) {
4750
TracingUtils.putAnnotation("productId", p.getId());
51+
TracingUtils.putAnnotation("Thread", Thread.currentThread().getName());
52+
MDC.put("product", String.valueOf(p.getId()));
4853
LOGGER.info("Processing product {}", p);
54+
4955
char c = (char)(r.nextInt(26) + 'a');
5056
char[] chars = new char[1024 * 1000];
5157
Arrays.fill(chars, c);
@@ -57,6 +63,8 @@ protected void processMessage(Product p, Context context) {
5763
PutObjectRequest.builder().bucket(bucket).key(p.getId()+".json").build(), RequestBody.fromFile(file));
5864
} catch (IOException e) {
5965
throw new RuntimeException(e);
66+
} finally {
67+
MDC.remove("product");
6068
}
6169
}
6270
}

examples/powertools-examples-batch/src/main/java/org/demo/batch/sqs/SqsParallelBatchHandler.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import org.demo.batch.model.Product;
2222
import org.slf4j.Logger;
2323
import org.slf4j.LoggerFactory;
24+
import org.slf4j.MDC;
2425
import software.amazon.lambda.powertools.batch.BatchMessageHandlerBuilder;
2526
import software.amazon.lambda.powertools.batch.handler.BatchMessageHandler;
2627
import software.amazon.lambda.powertools.logging.Logging;
@@ -41,6 +42,7 @@ public SqsParallelBatchHandler() {
4142
@Override
4243
public SQSBatchResponse handleRequest(SQSEvent sqsEvent, Context context) {
4344
LOGGER.info("Processing batch of {} messages", sqsEvent.getRecords().size());
45+
MDC.put("requestId", context.getAwsRequestId()); // should be propagated to other threads
4446
return handler.processBatchInParallel(sqsEvent, context);
4547
}
4648
}

0 commit comments

Comments
 (0)