What to Expect:
- AWS Lambda concepts
- Common Serverless use cases
- Monolithic vs. service oriented architecture
- Debugging applications with AWS Cloudwatch and AWS X-Ray
16. The traditional process of debugging doesn’t scale well for
production applications or those built using a service-
oriented, microservice, or serverless architecture
It’s tedious, repetitive, and time consuming.
34. X-Ray Key Concepts
Trace End-to-end data related a single request across services
Segments Portions of the trace that correspond to a single service
Sub-segments Remote call or local compute sections within a service
Annotations Business data that can be used to filter traces
Metadata Business data that can be added to the trace but not used
for filtering traces
Errors Normalized error message and stack trace
Sampling Percentage of requests to your application to capture as
traces
35. X-Ray SDK
Available for Java, .NET, and Node.js
Adds filters to automatically captures metadata for calls to:
• AWS services using the AWS SDK
• Non-AWS services over HTTP and HTTPS
• Databases (MySQL, PostgreSQL, and Amazon DynamoDB)
• Queues (Amazon SQS)
Enables you to get started quickly without having to manually
instrument your application code to log metadata about requests
36. X-Ray Daemon
Receives data from the SDK over UDP and acts as a local buffer.
Data is flushed to the backend every second or when the local
buffer fills.
Available for Amazon Linux AMI, RHEL, Ubuntu, OS X, and
Windows.
Can be run anywhere as long as AWS credentials are provided
(e.g.: EC2, ECS, on premise, developer machine, etc.)
37. Sampling configuration
{
"rules": {
"move": {
"id": 1,
"service_name": "*",
"http_method": "*",
"url_path": "/api/move/*",
"fixed_target": 0,
"rate": 0.05
},
"base": {
"id": 2,
"service_name": "*",
"http_method": "*",
"url_path": "*",
"fixed_target": 1,
"rate": 0.1
}
}
}
This example defines two rules.
The first rule applies a five-percent sampling rate
with no minimum number of requests to trace to
requests with paths under /api/move
The second overrides the default sampling rule
with a rule that traces the first request each
second and 10 percent of additional requests.
39. X-Ray API
Raw trace data is available using batch get APIs.
X-Ray provides a set of APIs to enable you to send, filter, and retrieve
trace data.
You can send trace data directly to the service without having to use
our SDKs. (e.g. you can write your own SDKs for languages/frameworks not currently supported)
You can build your own data analysis applications on top of the data
collected by X-Ray.
40. X-Ray API
PutTraceSegments Uploads segment documents to AWS X-Ray
BatchGetTraces Retrieves a list of traces specified by ID
GetServiceGraph Retrieves a document that describes services in your
application and their connections
GetTraceSummaries Retrieves IDs and metadata for traces available for a
specified time frame using an optional filter
50. X-Ray pricing
Free during the preview. After that:
Free tier
• The first 100,000 traces recorded per month are free
• The first 1,000,000 traces retrieved or scanned per month are free
Additional charges
• Beyond the free tier, traces recorded cost $5.00 per million per month
• Beyond the free tier, traces retrieved or scanned cost $0.50 per million per
month
51. Available Today!
The AWS X-Ray service is available today.
Go to https://aws.amazon.com/xray to get started.
Documentation: http://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html
.NET Sample: https://github.com/awslabs/aws-xray-dotnet-webapp
Java Sample: https://github.com/awslabs/eb-java-scorekeep/tree/xray
Node.js Sample: https://github.com/awslabs/eb-node-express-sample/tree/xray