Amazon Web Services (AWS), has been leading the charge in driving broad cloud computing adoption. This has been in no small part due to the plethora of cloud computing services and API’s made available on a pay-as-you-go basis allowing businesses to get the most of the platform. As an AWS Partner, we here at Swipe iX are always thrilled when new products are launched, since it helps us improve our own service offerings and provide the most advanced cloud computing solutions to our clients. Swipe attended the AWS re:Invent conference in Las Vegas back in 2016, and at this mind blowing event, AWS launched numerous products and services, one of which being AWS X-Ray which has since been fully adopted by our engineers.
Modern applications are mostly built around individual services traditionally consisting of micro or distributed architecture, containers and serverless components, but the main challenge with these modern applications is how to understand the impact of issues and errors across your distributed system. Compared to classic monolithic applications where you have one central log that you can scan through and track down the issues, X-Ray is designed to identify distributed system problems by debugging and tracking down which service is resulting in the issues customers are experiencing on your application.
The three main components of AWS X-Ray are the SDK, the X-Ray daemon and the console interface.
It’s essential to instrument your application with the SDK so that it can send the information to the X-Ray daemon. The SDK is language specific but the list of supported languages is growing by the day.
The SDK sends JSON segment documents to the daemon, which in turn, buffers and batch uploads these segments to X-Ray. By using trace data, AWS X-Ray is able to produce detailed service graphs, making use of a traceID to stitch all the log information from your different services together and present them as a full transaction trace. The service graph is useful for bottleneck identification, pinpointing latency spikes and identifying other performance issues related to your application.
The console service map is a visual representation of the service graph, illustrating a variety of service nodes for each application in your account. To simplify the process of issue identification and data navigation, the X-Ray console is equipped with different viewing filters, making it easier to filter requests, services and edges. The console supports filter expressions, deep linking, histograms, sampling and analytics, which allows developers to conduct data deep dives and identify What their applications are doing, Why their applications are performing in a certain way, and Who the application issues are impacting.
Normally developers devote a lot of time to debugging and trekking down the root cause of application issues, but with AWS X-Ray streamlining the process and drastically reducing the time spent on these time consuming tasks, customer support response times will decrease significantly, freeing up valuable time which can be allocated towards application feature development. The Analytics tools and aggregated reports in X-Ray console will also allow developers to allocate their time more efficiently, identifying the most popular application sections and pinpointing which will benefit the most from further development and improved scaling.
X-Ray is not bound by the cloud, and can be installed on your current applications, local data warehouse or even just on a developer's local development environment. AWS X-Ray can thus be installed basically anywhere where it has access to the internet and has the credentials to talk to the X-Ray daemon.
The SDKs for all the supported languages are in Github and allows everyone to contribute. After X-Ray’s initial launch, support has also been added for numerous additional languages, including access to source of the X-Ray daemon as well as some of the most popular languages, namely: Node, Java, Python, DotNet, Ruby on Rails and Go.
If you ignore the Free Tier pricing and only look at the normal pricing structure, it is evident that the prices are more than fair and the numerous benefits accompanying the use of AWS X-Ray, far outweighs its cost. You are only billed per million traces recorded, retrieved and scanned, of which recording costs the most ($5 per million traces recorded).
New Relic is an AWS partner tool that allows you to monitor changes in your cloud environment as you deploy and utilise the AWS elastic services. This tool provides detailed reports on all the different aspects of your application but it comes at a price and does not offer pay-as-you-go services. Another important aspect to consider is that New Relic lacks automatic integration support with AWS services such as SQS, SNS and S3 (to name a few), which ultimately limits the view on your service to applications that can push their logs to New Relic.
In January 2018, SolarWinds acquired Loggly, a cloud-based monitoring and analytics software provider. Loggly enables developers to identify trends, answer key questions and create actionable reports from aggregated log data. Loggly is a tremendously useful tool, but also lacks automatic AWS service integrations, limiting logs to registered applications. This service also lacks the pay as you go option, and going over quota results in clients basically flying blind until the quotas reset at the end of the month or alternatively, having to upgrade your account to support additional data required
Over the past few years, AWS X-Ray has helped developers tremendously, living up to its reputation as a well thought out, easy to use and fairly priced service. The attention and constant updates to the service also seems never ending. If you haven’t tried out AWS X-Ray, why not use your free time during social distancing and give it a go? We promise you won’t regret it.