AWS DevOps Pro Certification Blog Post Series: AWS X-Ray
This is part of the blog post series: AWS DevOps Pro Certification
Caveat emptor
Using AWS costs money, some of these services may not be part of the AWS Free Tier. You can keep costs down by tearing down anything you've created whilst learning, but it's still possible to run up a hefty bill so pay attention to the instances you setup!
I'm very lucky to be able to use my employer's AWS account. You should ask your place of work if a similar arrangement can be made as part of your study.
Velocius quam asparagi conquantur
The format of the blog posts is liable to change as I try to refine my mental model of each domain, so be sure to revisit the blog posts on a regular basis.
What?
AWS X-Ray is an application performance monitoring (APM) tool similar to New Relic, Solarwind TraceView or Microsoft Applications Insights. APM tools go beyond the usual metric level of capturing, instead of performing traces which are data rich with information about application requests, the response time of blocks of code and latency. In short, they can often give you a context into what the application was done with at a request at a given time.
In addition to full data capture around an application, X-Ray can also build a service map that shows the various components that your application interacts with. The example application in the Getting Started guide shows the interactions between the Java app, DynamoDB, SNS and external API.
The following AWS service (that are in scope for this exam) that provide integration with X-Ray are:
- AWS Lambda
- ELB
- AWS Elastic Beanstalk
The full list of services integrated with X-Ray can be found in the Developer Guide
Additional resources:
Why?
Previously debugging of application could be done in a post-mortem fashion analysing dumps, stack traces. This was often done offline. With the advent of APMs, you can now look at your application's health whilst in-flight.
When?
X-Ray only makes sense in a Production environment as it's used as a troubleshooting tool. There might be some value in using in other environments as a learning aid.
How?
There's an excellent tutorial that is part of the Getting Started guide. It's highly recommended to get familiar with the feature set of X-Ray.
As always, remember you may incur a charge for the resources started using this guide.
API and CLI features and verbs
Features*
- Groups
- Sampling Rules
Verbs (CRUD)
- create group/sampling-rule
- get group(s)/sampling-rule
- update group/sampling-rule
- delete groupsampling-rule
Outliers
- batch-get-traces
- get-encryption-config
- get-sampling-statistic-summaries
- get-sampling-targets
- get-service-graph
- get-time-series-service-statistics
- get-trace-graph
- get-trace-summaries
- put-encryption-config
- put-telemetry-records
- put-trace-segments
Remember there's specific APIs for Java, .Net (and Core), Ruby, Node and Python SDKs.
AWS DevOps Pro Certification Blog Post Series
- Intro
- Domain 1: SDLC automation
- Domain 2: Configuration Management and Infrastructure as Code
- Domain 3: Monitoring and Logging
- CloudWatch
- AWS X-Ray
- Domain 4: Policies and Standards Automation
- Domain 5: Incident and Event Response
- Domain 6: High Availability, Fault Tolerance, and Disaster Recovery