Monitoring NGINX with AppDynamics

January 29 2015
 

How can AppDynamics help monitor NGINX and other web servers? Read More


Did you know the AppDynamics Application Intelligence Platform includes monitoring for hundreds of IT components out of the box, including NGINX and NGINX Plus? They’re all featured in the AppDynamics Exchange.

With the AppDynamics extension for NGINX, you gain powerful capabilities and insights including:

  • Business Context: Application transaction tracing automatically associates IT components with business activities
  • Self-learning: Dynamically baselines behavior, eliminating static threshold configuration and false positives
  • Unified Monitoring: One platform and a single UI for end-user, application, and infrastructure monitoring
  • DevOps Automation: From remediation to cloud capacity scaling, automate for proactivity and efficiency

I’m getting ahead of myself though. Let’s back up a minute and cover the basics.

First and foremost, what exactly is NGINX?

From NGINX, they “accelerates content and application delivery, improves security, facilitates availability and scalability for the busiest websites on the Internet.” Next layer explanation: NGINX (open source) and NGINX Plus (commercial) are an HTTP server and reverse proxy, and an IMAP/POP3 proxy server. And if you want to get technical: NGINX is one of a handful of servers written to address the C10K problem. Unlike traditional servers, NGINX doesn’t rely on threads to handle requests. Instead, it uses a much more scalable event-driven (asynchronous) architecture. This architecture uses small, but more importantly, predictable amounts of memory under load.

That last part is a big deal, especially given the large-scale, complex, distributed web application architectures of today. Which is where AppDynamics comes in.

AppDynamics provides 24/7 visibility and management of your entire application environment, whether you’re running 10 servers or 10 thousand. We do this via our Application Intelligence Platform, a core pillar of which provides Unified Monitoring for your end-users, applications, and infrastructure.

Unifying monitoring sounds great and all, but it’s how we do it that makes the difference, which brings me back to the beginning of this blog.

Business Context and why it matters

Screen Shot 2015-01-28 at 4.13.56 PMTraditional monitoring solutions take a bottom-up approach: start with the infrastructure and attempt to logically associate it with the business. This barely worked with the static, monolithic IT systems of yesterday and is hopelessly inadequate for the service-oriented, high-distributed systems and agile processes of today.

A new top-down approach to monitoring is required, and it starts with the Business Transaction (BT): a unit of measure based on a business-level application transaction (e.g. customer checkout) that is automatically associated with the IT components used for its execution, including application code and infrastructure resources. This is accomplished by automatically tagging and tracing the execution of each and every application transaction through underlying IT systems. I wrote more in depth about this BT-focused method in a previous blog post.

Self-learning, so what?

If you’ve ever been a part of an IT operations team, you know what a pain it is to define altering thresholds. The entire process is predicated on knowing what’s normal, and from there when to be warned and when to be alerted there’s a critical problem. Static thresholds, on the other hand, are too rigid and in danger of either alert storms and/or missing performance issues.

AppDynamics dynamically baselines every metric – from CPU, memory, network, and disk utilization to end-user, transaction, and database query response times. This proactively detects anomalies and alerts intelligently.

Okay, so what about NGINX specifically? Take all the above and apply it to what we track directly from NGINX, including:

  • Active connections
  • Total number of requests
  • Accepted and handled requests
  • Reading, writing, and waiting metrics

Once you have the NGINX extension configured and integrated with AppDynamics, you can see all the NGINX metrics in the AppDynamics Metric Browser. For example, in the screen shot below you can see all the Active Connections to the NGINX during a certain time interval.

Screen Shot 2015-01-28 at 4.11.09 PM

As mentioned earlier, you can monitor the entire business transaction all the way from a mobile device or web browser to the NGINX web server through to the database. For example, you can analyze the NGINX metrics against the connected server. In the screenshot below, you can see the correlation between the number of NGINX active connections and the app server threads. As the traffic increased you can see the NGINX connection increase as well with the server responding with more threads serving more web requests. This causes the number of active connections to decrease.

Screen Shot 2015-01-28 at 4.11.16 PM

You can also set-up health rules triggering actions such as sending emails, executing remedial scripts, etc. after crossing a certain threshold.

Screen Shot 2015-01-28 at 4.11.23 PM

With AppDynamics, you can create custom dashboards for specific KPIs and metrics.

Screen Shot 2015-01-28 at 4.11.30 PM

Monitoring NGINX with AppDynamics is more than just stats and graphs. With automatic transaction tracing, you’ll see your web application in business context, while the self-learning baselines alert you with what’s normal – and abnormal – without configuring a thing.

If you’d like to learn more, check out our webinar with NGINX!

Kevin Goldberg
Kevin is the Senior Content Marketing Manager for AppDynamics. He's a longtime suffering San Diego Chargers and Padres fan. You can follow him on Twitter at @Kevin_Goldberg

Thank you! Your submission has been received!

Oops! Something went wrong while submitting the form