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

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.

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

Traditional 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.

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.

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.

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

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

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.

In high-production environments where release cycles are measured in hours or minutes — not days or weeks — there's little room for mistakes and no room for confusion. Everyone has to understand what's happening, in real time, and have the means to do whatever is necessary to keep applications up and running optimally.

DevOps is a high-stakes world, but done well, it delivers the agility and performance to significantly impact business competitiveness.