13
votes

I want to monitor my lambda function. I am able to see CloudWatch logs from Logs menu but I want to see monitoring results from Lambda console. When I click on the monitoring tab all the graphs are empty and it says that "No data available". What should I do to be able to see CloudWatch metric results?

enter image description here

5
Are you sure events happened in the selected time range? Top right above the graphs there are options for different intervals of time, you might be selecting one too small.Deiv
How do you know that your AWS Lambda function is being invoked? The graphs suggest that it isn't being used. (Do you have CloudWatch permissions?)John Rotenstein
When I click on different time ranges, there is still no data available. I can monitor the same lambda function from Cloudwatch logs. I have created a custom dashboard and added same metrics so I have managed to get the same diagrams by adding them manually from the list of metrics.Nil
Are you still having this problem? I have several Lambdas that don't have this problem and one that does. The one that does was deployed with HashiCorp's Terraform, so I'm wondering if that's how you deployed yours as well. I'm wondering if Terraform creates the lambda in such a way that the metrics don't work properly. I tried the Alias approach (approved answer) below and it didn't work for mechadmyers

5 Answers

17
votes

Workaround:

  1. Go to Lambda page
  2. Press "Qualifiers" button to open menu.
  3. Instead Unqualified, select the specific alias you want to look at.
  4. Go to Monitoring tab

Now the graphs should be there.

Direct link: https://eu-west-1.console.aws.amazon.com/lambda/home?region=eu-west-1#/functions/myLambdaFunctionName/aliases/myLambdaFunctionAlias?tab=monitoring

3
votes

If your Lambda function is associated with CloudFront go to CloudFront and select monitoring on the left menu

cloudfront lambda metrics

Direct link: https://console.aws.amazon.com/cloudfront/v2/home?#/monitoring

Then select the function and click "View function metrics"

function metrics

1
votes

The accepted answer works. But here us why it works.

In the AWS lambda metrics console, by default it selects the "LATEST" alias in qualifiers. If your lambda is not versioned or doesn't have an alias set, this works without any issue.

However if your lambda is versioned and you set an alias to the latest version, you have to select this alias instead of the "LATEST" in the qualifier tab.

A simple example of how this can happen is if you are using AWS SAM.

If your lambda is created using SAM (AWS Serverless Application Model) [1][2] and use an autopublish alias[2], you get your metrics in the lambda console for that alias.

Resources

  1. https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/what-is-sam.html
  2. https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md
  3. https://github.com/awslabs/serverless-application-model/blob/master/docs/safe_lambda_deployments.rst#instant-traffic-shifting-using-lambda-aliases
1
votes

Had this problem even though a specific version of the function was already selected (make sure you are NOT looking at the "unqualified" version of the function).

Had to click the below link to finally see the monitoring data.

enter image description here

This was probably needed because the function is in a different region than where invocations happened.

0
votes

I have managed to create a custom dashboard in CloudWatch dashboards menu. I have selected exactly same lambda metrics: invocations, errors, throttles and duration. I have also added different versions of duration (max, min and average) to make it look like the Lambda monitoring menu. I can see the filled graphs now. This is not the proper solution for the above problem but I get what I need.

enter image description here