If you’re an application owner or developer, you’re probably familiar with many Application Performance Management (APM) tools out there. APM tools can help you quickly narrow problems down to the lines of code that are causing them. But not all problems originate with the application itself, but in how the application is delivered. Good application delivery infrastructure ensures applications can scale to handle hundreds of thousands of users and are resilient to failure.
Today we’re proudly launching a private beta release of Amplify. Amplify is a tool designed to monitor your application delivery infrastructure. With Amplify you can proactively identify problems before they affect any of your users, as well as:
- Visually identify performance bottlenecks, overloaded servers, or potential DDoS attacks
- Improve and optimize NGINX performance with intelligent advice and recommendations
- Getalerts when something is wrong with the delivery of your application
- Plan capacity and performance for web applications
- Keep track of systems running NGINX
Amplify works with a small agent application that is installed on the servers to be monitored. Similar to how APM tools work, the agent collects statistics and feeds it back to our central repository.
Graphs Provide Detailed Insight
When you first log in to Amplify, you’re presented with a graphical dashboard. From here you can see an overview of all your monitored systems with graphs of key metrics, such as CPU, memory, and disk usage.
Amplify gives you a dashboard overview when you first log in
The left column lists the Systems being monitored by Amplify (those with the Amplify agent installed). NGINX does not necessarily have to be installed, but Amplify gives you a lot of additional visibility into NGINX.
Click on a system to open detailed graphs in the center Preview column (You can also scroll up and down in the Preview column to find a system). Amplify provides graphs to monitor key system level statistics such as:
- CPU Usage – How much of the CPU is being used over time
- Memory – How much of the memory on this system is being used
- Disk – How well is the disk performing
- Network – How much traffic is going in and out of this system
If you’re monitoring NGINX you get additional statistics such as:
- Req/s – How many requests per second is NGINX handling, one of the most critical statistics in application performance
- Conn/s – How many incoming connections clients are making each second, another critical statistic in application performance
- NGINX Resource Usage – How much CPU, memory, and disk NGINX is using on the given server.
Click on an individual graph in the Preview column to bring up a larger version in the Graph Feed column on the right side. You can select the time range to display, ranging from one hour (1H) to one week (1W). In the figure, the graph is reporting disk latency for the last 4 hours. Multiple graphs can then be pinned to the Graph Feed.
When you hover over a system in the Systems column, four vertical dots appear. Click on the vertical dots to expose a pullout toolbar.
The Amplify pullout toolbar gives at a glance statistics
The toolbar reports key metrics, such as CPU utilization, in a numerical format to give you a quick view of the current state of the system. In the screenshot above, we can easily see that the CPU on ubuntu-amplify is being moderately utilized at 55.07%. The pullout bar displays both system and NGINX stats. The Systems column is sticky, so you can access the pullout toolbar no matter which Amplify screen you’re on.
Amplify Gives You Valuable Configuration Advice
When you select the Reports tab in the top menu bar, Amplify recommends configuration changes that can improve to performance, reliability, and security of your NGINX infrastructure. Most static analysis tools and compilers output cryptic error messages when they detect a problem, but Amplify gives you more. The clear and thorough recommendations tell you exactly where the problem is, why it is a problem, and how to fix it.
Your NGINX configuration can be analyzed by Amplify
In the following example, the
worker_processes directive is set to a static value in the current configuration. Amplify recommends instead that you set it to
auto, which instructs NGINX to create one NGINX worker process per core.
Amplify suggests to let NGINX automatically create one worker process per core
Amplify also detects configuration settings that might be hurting performance. In the following figure, Amplify reports that NGINX is not buffering responses from proxied servers, which potentially degrades performance and has other negative side effects. Amplify explains in detail why this configuration is not recommended and even provides alternate configurations that can actually help performance.
Amplify detects potential performance issues, and suggests fixes
Amplify further identifies potential security issues related to NGINX configuration and provides recommendations for fixing them, as in the following example.
Amplify suggests restricting access for statistics to the local machine
Amplify Sends Timely Alerts
The Alerts tab is where you can set up custom alerts. When a configured condition occurs, Amplify emails you details of the alert.
Amplify can email you when something has gone wrong
In this example, Amplify emails email@example.com when any system’s CPU goes over 95% utilization for 5 or more minutes. You can designate any email address, for example your PagerDuty email routing. After the initial alert, Amplify sends digest messages every 30 minutes until all errors are cleared.
Amplify provides in-depth monitoring and configuration guidance for both open source NGINX and NGINX Plus. Based on static analysis of your NGINX configuration files, Amplify recommends changes designed to improve the performance and security of your application delivery with best practices developed by the engineers who create NGINX.
To learn more about Amplify, please view the Amplify documentation on GitHub.