serverless-plugin-tracing
Enables AWS X-Ray (https://aws.amazon.com/xray/) for the entire Serverless stack or individual functions.
Note: this plugin is currently Beta.
Note: tested to work well with serverless@1.13.2
. Some older versions of serverless
may not work due to outdated Javascript SDK that
does not support TracingConfig
.
npm install --save-dev serverless-plugin-tracing
Example serverless.yml
:
service: my-great-service
provider:
name: aws
stage: test
tracing: true
iamRoleStatements:
- Effect: "Allow"
Action:
- "xray:PutTraceSegments"
- "xray:PutTelemetryRecords"
Resource:
- "*"
plugins:
- serverless-plugin-tracing
functions:
mainFunction:
handler: src/app/index.handler
healthcheck:
tracing: false
Output after serverless deploy
:
Serverless: Tracing ENABLED for function
"my-great-service-test-mainFunction"
Serverless: Tracing DISABLED for function
"my-great-service-test-healthcheck"
Important: in addition to using the plugin, you need to enable capturing
traces in the code as well:
const awsXRay = require('aws-xray-sdk');
const awsSdk = awsXRay.captureAWS(require('aws-sdk'));
The plugin only controls the checkbox that be viewed in AWS Console:
go to AWS Lambda -> select a Lambda function -> Configuration tab -> Advanced settings ->
"Enable active tracing". If tracing
ends up being true
for a function,
the checkbox will be checked for that function.