Last week at re:invent, Amazon announced the preview of AWS X-Ray - a new service to analyze and debug distributed systems. You could feel the shock of established APM vendors in their booths at the re:invent conference and also see the feedback on social media:
So in this article, we analyze the impact of AWS X-Ray on the APM industry and why Instana believes this is a positive and great move by AWS.
What is AWS X-Ray?
First of all AWS X-Ray is not a full APM tool, it provides data on distributed traces for applications running in AWS. X-Ray provides distributed tracing for developers, so they can analyze performance and availability of their services and applications running on AWS EC2, AWS Container Service or AWS Beanstalk. Support for AWS Lambda should come in the future.
X-Ray works by supplying developers with an SDK to add trace information to their code. These data sets are called segments - multiple segments can be aggregated into a trace. The SDK is available for Java, .NET and Node.js and there are Helper frameworks for some AWS services like DynamoDB to automatically collect metadata for calls to these services. The data is collected by an X-Ray daemon running beside the application process and sends the data to the backend. X-Ray also builds a service map based on the traces and visualizes it in a 2D map that shows the flow and calls between different application services.
Instana uses the same concept but makes the tracing automatic, with no SDK or manual instrumentation required, as well as supporting Open Tracing. We are working on X-Ray integration to also support the X-Ray SDK. This will allow our customers to mix our automated trace information with Open Tracing and X-Ray. With this capability, our customers can visualize a single trace from their own servers, to code running on an AWS server, making service calls into Lambda services - true end to end visibility of their processing no matter where or how the processing is happening!
Distributed Tracing is Commodity!
The key message of AWS X-Ray to the market is: Distributed Tracing is Commodity! Open Tracing and OpenZipkin are already doing the same but with X-Ray this functionality is an easy to use service. The price to record a million traces per month is $5 for AWS X-Ray. This is a fraction of the price of the traditional APM vendors. Of course these vendors provide additional capabilities but at their core, the value is still distributed tracing and service mapping. By giving distributed tracing for AWS applications almost for free, Amazon has commoditized the recording of application data. Just capturing traces and showing them in a dependency map is no innovation anymore. This also means that customers will not pay hundreds of thousands of dollars for these solutions anymore. The next innovation in APM is to generated actionable information and knowledge out of the data.
Go Beyond Data
At Instana, we see Traces as data. Specifically, the application monitoring data you need to understand and deliver quality of service to your users. Our innovation really is the understanding of the data - especially in highly dynamic and distributed environments. That is the reason why we innovated the Dynamic Graph. Instana learns the application’s behaviour in terms of performance, throughput, availability and capacity for each service based on enhanced machine learning technology. We derive KPIs for each service and application and detect any quality degradation. Instana then alarms the user giving a full history of the incident including a root cause analysis down to the code level and infrastructure metrics.
It is not about simply collecting millions of traces (how does one interpret them?). Now it’s about building a continuous understanding of the quality of your application’s processing in highly distributed and dynamic architectures leveraging that data into real understanding.
Why X-Ray is good for Instana
Our algorithms to understand applications rely on high quality data - the more data we get the better we can analyze the quality of the services and the better we can pinpoint problems. X-Ray represents a new source of high quality data that Instana can contextualize and, using our machine learning methods, extend the understanding of quality across the whole processing ecosystem.
There are technologies that we cannot trace and we rely on the technology provider to collect the data for us. This is especially true for cloud services like AWS, Azure or Google Cloud. As an example Instana can trace the outgoing calls to a DynamoDB service but it cannot trace calls from DynamoDB to EBS or S3 as we have no access to the internal implementation of DynamoDB. If the abstraction level of a service gets even higher, e.g. with serverless approaches like AWS Lambda or Google Cloud Functions, it is nearly impossible to trace into these services. This is were X-Ray can help by providing processing details into AWS services. It is great news that AWS has started to provide this data to its users - Google Cloud had this service already with Stackdriver Trace. We also wish that Cloud Watch would provide higher granularity and visibility into the metrics of AWS services.
Because of the open and extensible model, Instana is able to provide a consistent view of the quality for all services - even in very hybrid environments with applications running On-Premise, external software components and services running in different clouds. Instana will utilize this data to derive precise understanding of the usage of AWS services and pinpoint problems related to them. Instana will also help optimize usage patterns and resource utilization to manage costs.
Last but not least we have reasonable pricing, $29 per host per month with full infrastructure, application and end-user visibility covered in this price. This allows customers to monitor all of their services and applications and get a comprehensive understanding of their application health.