Alternatives
- Google Stackdriver
- Azure Monitor
- Elastic Observability
- Datadog
- Splunk
Digest
- Trace request across microservices/AWS services
- Analyze, Troubleshoot errors, Solve performance issues
- Gather tracing information
- From applications/components/AWS Services
- Tools to view, filter and gain insights (Ex: Service Map)
- How does Tracing work?
- Unique trace ID assigned to every client request
X-Amzn-Trace-Id:Root=1-5759e988-bd862e3fe
- Each service in request chain sends traces to X-Ray with trace ID
- X-Ray gathers all the information and provides visualization
- How do you reduce performance impact due to tracing?
- Sampling - Only a sub set of requests are sampled (Configurable)
- How can AWS Services and your applications send tracing info?
- Step 1 : Update Application Code Using X-Ray SDK
- Step 2: Use X-Ray agents (EASY to use in some services! Ex: AWS Lambda)
- Segments and Sub-segments can include an annotations object containing one or more fields that X-Ray indexes for use with Filter Expressions. It is indexed. Use up to 50 annotations per trace.
- Total sampled request per second =
Reservoir size + ((incoming requests per second - reservoir size) * fixed rate)
- Default sampling X-ray SDK first request each second and 5% of any additional requests
- Tracing header can be added in http request header
- Annotations vs Segments vs Subsegments vs metadata
- X-ray daemon listens for traffic on UDP port 2000
- X-ray SDK provides interceptors to add your code to trace incoming HTTP requests.
- X-ray in EC2: You need the X-Ray daemon to be running on your EC2 instances in order to send data to X-Ray. User data script could be used to install the X-Ray daemon in EC2 instance.
- X-ray in ECS: In Amazon ECS, create a Docker image that runs the X-Ray daemon, upload it to a Docker image repository, and then deploy it to your Amazon ECS cluster.
- X-ray in elastic beanstalk: Enable the X-Ray daemon by including the xray-daemon.config configuration file in the
.ebextensions
directory of your source code - AWS X-Ray helps developers analyze and debug production, distributed applications, such as those built using a micro-service architecture.
- A segment can break down the data about the work done into subsegments. Subsegments provide more granular timing information and details about - downstream calls that your application made to fulfill the original request.
- Add annotations to subsegment document if you want to trace downstream calls.
- Segments and subsegment can include a metadata object containing one or more fields with values of any type, including objects and arrays.
- Tracing header is added in the HTTP request header. A tracing header (
X-Amzn-Trace-ld
) can originate from the X-Ray SDK, an AWS service, or the - client request. - Use the
GetTraceSummaries
API to get the list of trace IDs of the application and then retrieve the list of traces using BatchGetTraces API in - order to develop the custom debug tool
Top comments (0)