powertools-lambda-typescript icon indicating copy to clipboard operation
powertools-lambda-typescript copied to clipboard

Feature request: Ability to post custom timestamps with metrics

Open bml1g12 opened this issue 1 year ago • 3 comments

Use case

I've setup a cron job to log daily costs from cost explorer to cloudwatch metrics (i.e. looking at the previous day's data for each invocation). I realised today that it might not be possible to assign the correct timestamp using powertools for this use case, as I think it assumes the timestamp is the time of publishing?

Related to this, I could not see any documentation on https://docs.powertools.aws.dev/lambda/typescript/latest/core/metrics/ for how the timestamp is determined (is it time of addMetrics() or time of .flush()?

Solution/User Experience

Allow specification of timestamp with the addMetric() call

Alternative solutions

In the mean time, I think I'll need to use https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudwatch/command/PutMetricDataCommand/

I notice this feature seems to already be available in the Python toolkit: https://docs.powertools.aws.dev/lambda/python/latest/core/metrics/#changing-default-timestamp and maybe not in Java

Acknowledgment

Future readers

Please react with 👍 and your use case to help us understand customer demand.

bml1g12 avatar Oct 04 '24 10:10 bml1g12

Hi @bml1g12, thanks for opening this feature request!

I think it's more than valid since as you pointed out, the feature itself already present in another version of Powertools for AWS.

In terms of DX, we'll most likely align with the one introduced in the Python version rather than adding a new parameter to the method to add a metric.

I'll add this to the backlog and mark it as open for contributors. If anyone is interested to take it, please leave a comment so we can assign it you. Feel free to ask any questions.

If it's not picked up, we'll prioritize it to be worked on within the team as time allows it.

dreamorosi avatar Oct 04 '24 11:10 dreamorosi

Hi @bml1g12, thanks for opening this feature request!

I think it's more than valid since as you pointed out, the feature itself already present in another version of Powertools for AWS.

In terms of DX, we'll most likely align with the one introduced in the Python version rather than adding a new parameter to the method to add a metric.

I'll add this to the backlog and mark it as open for contributors. If anyone is interested to take it, please leave a comment so we can assign it you. Feel free to ask any questions.

If it's not picked up, we'll prioritize it to be worked on within the team as time allows it.

That makes sense, thanks

bml1g12 avatar Oct 04 '24 11:10 bml1g12

Also, @bml1g12, I missed your other question about the timestamp.

The timestamp is generated here, which is called during the publishStoredMetrics() method.

We should clarify this in the API docs of the feature.

dreamorosi avatar Oct 04 '24 11:10 dreamorosi

I will work on this ✋️

arnabrahman avatar Nov 08 '24 14:11 arnabrahman