AWS Lambda integration assistance

Hello I am trying to integrate the New Relic AWS lambda monitoring plugin into our account. We current are forwarding our cloudwatch logs to new relic by following these directions
https://docs.newrelic.com/docs/integrations/amazon-integrations/aws-integrations-list/aws-metric-stream/#set-up-metric-stream

We have also modified our lambda and attached New Relic’s layer and set env variables according to
https://docs.newrelic.com/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-lambda-monitoring/enable-serverless-monitoring-aws-lambda-legacy/

We can see cloudwatch events in New Relic but have not been able to get error messages, or distributed tracing for lambdas yet. Would someone be able to assist integrating this step?

hey @aidan6,

Thanks for posting your question about how to instrument a Lambda function using a Metric Streams integration + legacy method.

Which language is your function? Depending on the language, we may or may not have a layer you can use. Node.js, Python, and Java functions have layers which include a wrapper that loads an agent + Extension that ships payloads (bypassing CloudWatch). Go and .NET functions don’t have a layer with a no-code-change wrapper and agent, but they can use the Extension layer which just has the Extension.

The Extension has these config options:

It’s also a good idea to check your Metric Stream integration to make sure it is working. If it says no metrics have been received, it’s likely due to either a permissions issue:

config:BatchGetResourceConfig
config:ListDiscoveredResources
tag:GetResources

Or you need to configure the Metric Stream in CloudWatch → Streams. I recommend the CloudFormation option and make sure to specify the Config S3 backup bucket name field. Stack creation completed successfully after I specified this field.
https://docs.newrelic.com/docs/integrations/amazon-integrations/aws-integrations-list/aws-metric-stream/#setup-cloudformation

Note: Some of the legacy docs may not be updated yet to include using the Extension layer as an option to ship invocation telemetry instead of the newrelic-log-ingestion function.
https://github.com/newrelic/newrelic-lambda-extension#installation

Here’s how you can tell if your function is instrumented, meaning the NR_LAMBDA_MONITORING payload without the Extension, or Agent telemetry bytes with Extension has made it to New Relic.
https://discuss.newrelic.com/t/lambda-troubleshooting-framework-general-knowledge-part-1/146356#heading–awslambdainvocation

1 Like