Table of Contents
It is important to monitor Heroku applications’ performance to ensure their productive and stable operation. In this article, we will talk about what tools Heroku provides for monitoring applications, which are the most important metrics to monitor, and how MetricFire can help you with this.
Background of Heroku Monitoring
Heroku is a cloud-based container platform as a service (PaaS) that allows developers to easily build, deploy, manage, and scale applications. It supports many programming languages, including Ruby, Java, Node.js, Python, Scala, Go, and more.
Monitoring Heroku applications is an important process that allows you to evaluate the overall state of the application, identify performance problems and other weak areas, and find potential errors and possible ways to optimize the application. Monitoring tools allow you to automate the process of collecting, processing, and analyzing various metrics, as well as sending notifications when certain metrics go beyond the norm.
Heroku provides different monitoring options for detailed analysis of various aspects of your applications, including logging and collecting metrics of various types.
Logs are files that contain data about various actions and processes that occur during the creation, deployment, and operation of an application. Heroku's logging tools collect and store your application's logs. When errors occur, you can use the saved logs to analyze and identify the root cause of the failure.
There are different types of logs that Heroku stores:
Runtime Logs. These include logs that contain application output, system data about Heroku platform infrastructure activity, activity messages from developers working on the application, and messages from additional services.
Build Logs contain data generated during application development and deployment.
Metrics are measuring or computational data about application performance. For example, memory and CPU usage, response time, bandwidth, etc.
There are different types of metrics that help developers find app problems before they lead to program crashes, identify and fix performance issues, optimize app performance, and find root causes of bugs.
Heroku Metrics To Monitor
Heroku's monitoring tools allow you to collect various types of software metrics including dyno, Postgres, Redis, errors, APM metrics, uptime, and others. Let's take a closer look at the most popular metrics.
Dyno metrics allow you to get information about memory usage, dyno load, and events for all types of processes. In addition, for web processes, you can get data about response time and throughput.
If the memory usage is too high, it can slow down applications, indicating that the application needs to be optimized or scaled, so controlling memory usage is very important.
Heroku allows you to monitor various memory metrics:
Memory quota - the maximum amount of RAM for the selected type of dynamometer.
Average total memory (rss + swap) - the part of memory that users can optimize.
RSS - the amount of memory stored in RAM in the dynamics of a certain type of process.
Swap - part of the dynamometer memory stored on disk.
You can get the average and maximum Dyno load over a period of time. This value indicates the number of processes and threads that are running or queued.
The list of events includes the following entries:
Actions performed by the user. For example, deployments, configuration changes, scaling, and restarts.
Heroku errors. For example, memory overflow, application crash, and request timeout.
Herokuu provides you data about the average response time (50th percentile) of HTTP requests for the specified period, the 95th percentile, the 99th percentile, and the maximum response time for all HTTP requests are recorded.
Throughput metrics reflect the number of requests received, the number of requests successfully completed, and the number of unfulfilled requests.
Application Performance Monitoring (APM) tools show application performance data, help you analyze and identify slow-performing parts of your application, and optimize their performance. You can also examine request queues and test the performance of external services, such as external APIs and databases.
This group of metrics allows you to measure the accessibility of the application from the point of view of the end user. Uptime monitoring tools allow you to check the availability of the application in different regions, detect problems in DNS or CDN, and measure the response time in different regions.
How To Monitor Your Heroku Application
Heroku provides built-in monitoring tools for your applications. Using Heroku dashboards, you can view the most popular metrics, such as memory and CPU usage, user-initiated events, Heroku errors, etc. In addition, it is possible to view different types of logs.
If the built-in tools are not enough for you to monitor your programs, you can install additional extensions for this. One such extension is HG Heroku Monitoring & Dashboards. This addon provides a complete infrastructure and monitoring platform.
HG (Hosted Graphite) is fully configurable and does not require updates, which allows you to significantly save time and use it immediately to monitor your applications. It provides a variety of tools that allow you to easily collect, analyze and visualize monitoring data, and also allows you to install additional add-ons and plugins.
Hosted Graphite uses Grafana's excellent customizable dashboards to visualize data in real time. Grafana is a next-generation open-source tool that allows you to create interactive graphs and supports different types of charts, graphs, and tables.
Hosted Graphite provides you the ability to send real-time notifications about any errors that occur while your application is running, allowing you to be instantly aware of problems in your application without wasting time on manual monitoring.
You can also easily share Grafana dashboards with your colleagues to effectively interact with other team members and make joint decisions.
Therefore, monitoring Heroku applications is an important process to ensure their productive and smooth operation. However, the functionality of Heroku's built-in monitoring tools is not always sufficient. MetricFire is a powerful solution that provides you with Hosted Graphite and allows you to easily and efficiently monitor Heroku applications.
Download our Heroku Cheatsheet for more information on Heroku!