1

I am working on an AWS serverless architecture that can be roughly described as follows:

1 Things reporting to IOT Core

2 From IOT Core the messages arrive to Kinesis

3 Kinesis to different Lambda functions

4 Lambda send messages (or not) to be stored on dynamodb

This is obviously a VERY high level description but I hope it might be enough to explain my question.

What I would like to do is understand how long my messages are spending on each station along the way. So for example, Message X took a total of 1 second to process and complete its life cycle and the time spent is divided as follows: 100ms on IOT Core, 100ms on Kinesis, 400ms on a specific lambda function and another 400ms to store on dynamodb.

To do the above, AWS XRAY seems to be the natural option but according to its supported services, IOT Core and Kinesis are not included. Is there any other way to do the request above? Am I missing something with XRAY?

PloniStacker
  • 574
  • 4
  • 23

1 Answers1

0

Unfortunately, since AWS X-Ray does not support tracing with kinesis per message level tracing would be hard. However you may write custom code using X-Ray SDK to propagate context information manually. I would recommend to check out X-Ray SDK (language of your choice). Here's some reference on that (How can use the Java Kinesis Client Library together with X-Ray?)