Expanding Amazon Web Services Monitoring with AppDynamics

Enterprises are increasingly moving their applications to the cloud and Amazon Web Services (AWS) is the leading cloud provider. We announced expanded AWS monitoring with the AppDynamics Winter ‘16 release earlier this year. In this blog, I will provide some additional details on the expanded support of AWS monitoring.

Native Support of AWS components

Before the Winter ’16 release, only Amazon Simple Queue Service (SQS) was automatically discovered by AppDynamics Java APM agents and shown in the Application flow map with key performance metrics. For other AWS components, customers had to configure the discovery of the backends manually in AppDynamics or use the old Amazon Cloudwatch Monitoring extension to get the AWS metrics and track them in metric browser or dashboards.

In the AppDynamics Winter ’16 release, the following AWS components are natively supported by Java APM agents:

  • Amazon DynamoDB: A fast and flexible NoSQL database service
  • Amazon Simple Storage Service (S3): It provides secure, durable, highly scalable object storage
  • Amazon Simple Notification Service (SNS): It is Pub-sub Service for Mobile and Enterprise Messaging

By native support, I mean automatic discovery and display of the Application flow map with key performance metrics without any manual configuration. The screenshot of AppDynamics application flow map in Figure 1 below shows an application that uses Amazon DynamoDB, S3, and SNS.

Screen Shot 2016-05-18 at 4.57.37 PM.png

Figure 1 – Application using Amazon DynamoDB, S3, and SNS

19 New AWS Monitoring Extensions

The AppDynamics platform is highly extensible to monitor various technology solutions that are not discovered natively. In the past, we had Amazon Cloudwatch Monitoring extension that collected all the AWS metrics via Amazon Cloudwatch APIs and passed them to the AppDynamics controller where they were tracked in metric browsers or dashboards. This extension was not very efficient because it collected and passed a lot of data for all the AWS components even if a customer just needed to monitor one or two different AWS components they were using.

The AppDynamics Winter ’16 release announced 19 new AWS monitoring extensions to monitor different AWS components. These extensions still use Amazon Cloudwatch APIs, but collect metrics for a specific AWS component and pass it to AppDynamics controller for tracking, creating health rules and visualizing in dashboards efficiently.

Here is the list of all the new AWS monitoring extensions:

  1. AWS Custom Namespace Monitoring Extension
  2. AWS SQS Monitoring Extension
  3. AWS S3 Monitoring Extension
  4. AWS Lambda Monitoring Extension
  5. AWS CloudSearch Monitoring Extension
  6. AWS StorageGateway Monitoring Extension
  7. AWS SNS Monitoring Extension
  8. AWS Route53 Monitoring Extension
  9. AWS Redshift Monitoring Extension
  10. AWS ElasticMapReduce Monitoring Extension
  11. AWS RDS Monitoring Extension

Amazon_RDS_Metrics.png

Figure 2 – Amazon RDS Metrics in AppDynamics Metric Browser

  1. AWS ELB Monitoring Extension
  2. AWS OpsWorks Monitoring Extension
  3. AWS EBS Monitoring Extension

Amazon_EBS_Metrics.png

Figure 3 – Amazon EBS Metrics in AppDynamics Metric Browser

  1. AWS Billing Monitoring Extension
  2. AWS AutoScaling Monitoring Extension
  3. AWS DynamoDB Monitoring Extension
  4. AWS ElastiCache Monitoring Extension
  5. AWS EC2 Monitoring Extension

Customers can leverage all the core functionalities of AppDynamics (e.g. dynamic baselining, health rules, policies, actions, etc.) for all of these AWS metrics while correlating them with the performance of the application using these AWS environment.

AppDynamics Customers using AWS Monitoring

With AppDynamics, many of our customers have accelerated their application migration to the cloud while others continue to monitor cloud applications as the application complexity explodes with the move towards microservices and dynamic web services. As the workload on the these cloud applications grew, AppDynamics came to rescue by elastically scaling the AWS resources to meet the exponential demand for applications.

For example, Nasdaq accelerated their application migration to AWS and gained complete visibility into complex application ecosystem. Heather Abbott, Senior Vice President of Corporate Solutions Technology at Nasdaq, summarized their experience with AppDynamics. “The ability to trace a transaction visually and intuitively through the interface was a major benefit AppDynamics delivered. This visibility was especially valuable when Nasdaq was migrating a platform from its internal infrastructure to the AWS Cloud. We used AppDynamics extensively to understand how our system was functioning on AWS, a completely new platform for us.”

Get Into the Cloud: AppDynamics at Amazon Web Services re:Invent

Screen Shot 2015-10-01 at 12.22.58 PM.png

The AppDynamics and Amazon Web Services (AWS) relationship grows stronger each year, with marquee joint customers such as Nasdaq. Our Application Intelligence Platform continues to evolve enabling enterprises to manage their cloud applications more efficiently and gain complete visibility and control into an expanded set of AWS services, with an exclusive 60 day free trial for AWS customers.

AppDynamics at AWS re:Invent

October 6 – 9, 2015

AWS re:Invent, the Amazon Web Services annual user conference, is the Mecca for the AWS community. The AWS team has pulled together another great event in Las Vegas featuring keynote announcements, training and certification opportunities, over 250 technical sessions, a partner expo, after hours activities, and more.

AppDynamics will have expanded presence at the sold-out event.

Screen Shot 2015-09-30 at 3.42.20 PM.png

Join us at Booth #550, during the expo hours from October 6 to 9, where we’ll showcase how we can help our customers:

  • Accelerate application migration to the cloud

  • Manage cloud applications as complexity explodes

  • Scale cloud applications as workloads grow.

We’ll be handing out AWS exclusive t-shirts highlighting AppDynamics’ cloud story, with daily surprise social media giveaways.  Be sure to follow us on Twitter @AppDynamics for the latest developments on AppDynamics and AWS.

AppDynamics at AWS re:Invent

Global Partner Summit

October 6, 2015

AWS leadership will discuss about the future of the business and the AWS Partner Network (APN) at the Global Partner Summit at AWS re:Invent. Join us during the following session:

Topic: Realizing the Benefits of Cloud: Cloud Migration & Application Optimization

Speaker: Tom Laszewski, Global Partner Solution Architect Senior Manager at Amazon Web Services.

Tom will discuss application optimization and highlight the value AppDynamics brings to our joint customers.

Wait.  It’s Just the Beginning.  

The AppDynamics ADVANTAGE at AppSphere 2015

November 30 – December 4, 2015

Las Vegas

We’re happy to exclusively announce that Stephen Orban, Global Head of Amazon Web Services Enterprise Strategy, will serve as AppSphere Keynote on Tuesday, December 1. Stephen will discuss the Future of Enterprise IT.  

AppSphere is AppDynamics’ annual user conference — we’re focusing on enabling businesses to bring a competitive advantage to market and driving success to their organizations. Attendees will the future landscape of the software-defined business and gain insights from topics around SaaS at scale, mobile performance, business data analytics, working towards a DevOps structure and much more.

For AWS customers, we’re offering an exclusive $100 discount on AppSphere tickets if you register here with promo code AWSCUST.  Customers who register by 11/6 with promo code AWSCUST will enter to win a free trip to Vegas.

To learn more, AppDynamics solution for AWS ecosystem, please visit appdynamics.com/aws and sign up for a 60-day free trial of AppDynamics designed exclusively for AWS customers.

The AppDynamics Team and I are looking forward to sharing these customer stories, best practices and demonstrating the AppDynamics solution at re:Invent 2015 in Las Vegas.

Scaling our End User Monitoring Cloud

Why End User Monitoring?

In a previous post, my colleague Tom Levey explained the value of Monitoring the Real End User Experience. In this post, we will dive into how we built a service to scale to billions of users.

The “new normal” for enterprise web applications includes multiple application tiers communicating via a service-oriented architecture that interacts with several databases and third-party web services. The modern application has multiples clients from browser-based desktops to native applications on mobile. At AppDynamics, we believe that application performance monitoring should cover all aspects of your application from the client-side to the server-side all the way back to the database. The goal of end user monitoring is to provide insight into client-side performance and capture errors from modern javascript-intensive applications. The challenge of building an end user monitoring service is that every single request needs to be instrumented. This means that for every request your application processes, we will process a beacon. With clients like FamilySearch, Fox News, BackCountry, ManPower, and Wowcher, we have to handle millions of concurrent requests.

1geo

AppDynamics End User Monitoring enables application owners to:

  • Monitor Their Global Audience and track End User Experience across the World to pinpoint which geo-locations may be impacted by poor Application Performance
  • Capture end-to-end performance metrics for all business transactions – including page rendering time in the Browser, Network time, and processing time in the Application Infrastructure
  • Identify bottlenecks anywhere in the end-to-end business transaction flow to help Operations and Development teams triage problems and troubleshoot quickly
  • Compare performance across all browsers types – such as Internet Explorer, FireFox, Google Chrome, Safari, iOS and Android
  • Track javascript errors

“Fox News already depends upon AppDynamics for ease-of-use and rapid troubleshooting capability in our production environment,” said Ryan Jairam, Internet Operations Lead at Fox News. “What we’ve seen with AppDynamics’ End-User Monitoring release is an even greater ability to understand application performance, from what’s happening on the browser level to the network all the way down to the code in the application. Getting this level of insight and visibility for an application as complex and agile as ours has been a tremendous benefit, and we’re extremely happy with this powerful new addition to the AppDynamics Pro solution.”

EUM Cloud Service

The End User Monitoring cloud is our super-scalable platform for data analysis and processing end user requests. In this post we will discuss some of the design challenges of building a cloud service capable of supporting billions of requests and the underlying architecture. Once End User Experience monitoring is enabled in the controller, your application’s requests are automatically instrumented with a very small piece of javascript that allows AppDynamics to capture critical performance metrics.

Screen Shot 2013-07-25 at 9.47.14 AM

The javascript agent leverages Web Episodes javascript timing library and the W3C Navigation Timing Specification to capture the end user experience metrics. Once the metrics are collected, they are pushed to the End User Monitoring cloud via a beacon for processing.

EUM (End User Monitoring) Cloud Service is our on-demand, cloud based, multi-tenant SaaS infrastructure that acts as an aggregator for the entire EUM metrics traffic. All the EUM metrics from the end user browsers from different customers are reported to EUM Cloud service. The raw browser information received from the browser is verified, aggregated, and rolled up at the EUM Cloud Service. All the AppDynamics Controllers (SaaS or on-premise) connect to the EUM Cloud service to download metrics every minute, for each application.

Design Challenges

On-Demand highly available

End users access customer web applications anywhere in the world and any time of the day in different time zones, whenever an AppDynamics instrumented web page is accessed. From the browser, EUM metrics are reported to the EUM Cloud Service. This requires a highly available on-demand system accessed from different geo locations and different time zones.

Extremely Concurrent usage

All end users of all AppDynamics customers using EUM solution continuously report browser information on the same EUM Cloud Service. EUM Cloud Service processes all the reported browser information concurrently and generate metrics and collect snapshot samples continuously.

High Scalability

The usage pattern for different applications throughout the day is different; the number of records to be processed at EUM Cloud vary with different applications at different times. The EUM Cloud Service automatically scale up to handle any surge in the incoming records and accordingly scale down with lower load.

Multi Tenancy support

The EUM Cloud Service process EUM metrics reported from different applications for different customers; the cloud service provides multi-tenancy. The reported browser information is partitioned based on customers and their different applications. EUM Cloud Service provides a mechanism for different customer controllers to download aggregated metrics and snapshots based on customer and application identification.

Cost

The EUM Cloud Service needs to be able to dynamically scale based on demand. The problem with supporting massive scale is that we have to pay for hardware upfront and over provision to handle huge spikes. One of the motivating factors when choosing to use Amazon Web Services is that costs scale linearly with demand.

Architecture

The EUM Cloud Service is hosted on Amazon Web Services infrastructure for horizontal scaling. The service has two functional components – collector and aggregator. Multiple instances of these components work in parallel to collect and aggregate the EUM metrics received from the end user browser/device. The transient metric data be transient is stored in Amazon S3 buckets. All the meta data information related to applications and other configuration is stored in the Amazon DynamoDB tables.

A single page load will send one or more beacon–one per base page and every iframe onload and one per ajax request. Javascript errors occurring post page load are also sent as error beacons.

The functionality of the nodes is to receive the metric data from the browser and process it for the controller:

  • Resolve the GEO information (request coming from the country/region/city) and add it to the metric using a in-process maxmind Geo-resolver.
  • Parse the User-Agent information and add browser information, device information and OS information to the metrics.
  • Validate the incoming browser reported metrics and discard invalid metrics
  • Mark the metrics/snapshots SLOW/VERY SLOW categories based on a dynamic standard deviation algorithm or using static threshold

Load Testing

For maximum scalability, we leverage Amazon Web Services global presence for optimal performance in every region (Virginia, Oregon, Ireland, Tokyo, Singapore, Sao Paulo). In our most recent load test, we tested the system as a collective to about 6.5 B requests per day. The system is designed to easily scale up as needed to support infinite load. We’ve tested the system running at many billions of requests per day without breaking a sweat.

Check out your end user experience data in AppDynamics

4breakdown

Find out more about AppDynamics Pro and get started monitoring your application with a free 15 day trial.

As always, please feel free to comment if you think I have missed something or if you have a request for content in an upcoming post.