Introduction
An effective monitoring system should cover all aspects of your infrastructure and services. You should be able to monitor the performance of your systems located both on-premises and in the cloud. This article will focus on monitoring applications that are deployed on the popular PaaS-platform - Heroku.
To monitor your Heroku apps, you can use the Heroku Hosted Graphite Add-on. This monitoring tool will automatically forward all of your Heroku app logs into a Graphite storage backend, and the stored metrics can be used to build custom dashboards and alerts - getting your monitoring up and running with a single click!
With the HG Heroku monitoring tool you can pull metrics from your Heroku application logs, as well as pipe metrics in from your AWS, Azure, GCP, Digital Ocean, and other environments. Visualize and alert on your entire infrastructure, under a single pane of glass!
When you create a new Hosted Graphite account using the Heroku add-on, you will get automatically created dashboards. Check out what they look like here:

The HG Heroku monitoring tool specializes in monitoring systems. It provides the ability to monitor your application performance (dynos/router), other add-ons (postgres/redis/kafka), processes (worker/scheduler/release), and Herokuconnect performance (operations/sync timings). You can start your monitoring with a single click and if you want to talk to our support team, you can talk to them directly through the chat box in the bottom right hand corner of the HG app.
Heroku App Metrics Monitoring
Especially for providing performance metrics of applications hosted on Heroku, you should use the Hosted Graphite Heroku Monitoring add-on. This is a useful tool that gives you a simple, scalable way to measure metric data from your application deployed on Heroku.
Installing the add-on is very simple - just a few commands in the Heroku CLI, or from within the Heroku UI. You can learn more about installing the HG Heroku Monitoring add-on from the documentation or from our article How to Monitor a Heroku App with Graphite, Grafana and StatsD. Immediately after installing the add-on, you will start to receive metrics from your applications and be able to use hosted Grafana dashboards, which will be available in your Hosted Graphite account.
Out of the box, the Heroku Dashboard includes such graphs as HTTP success and request counts, HTTP Client and Server error counts, Dyno Load AVG/Memory Usage, and more.

Grafana is one of the most popular dashboarding and visualization tools for metrics. To meet all your specific monitoring needs, you can use HG to create unlimited custom Grafana dashboards! If you want to deep dive into Grafana dashboards creation, please read our article Grafana Dashboards from Basic to Advanced, or reach out to our support team for guidance.
Simply install the add-on through the Heroku UI or CLI, and then open the HG application:
- heroku addons:create hostedgraphite -a [app-name]
- heroku addons:open hostedgraphite -a [app-name]
Once you open the app, you will have 4 Heroku dashboards in your account:

You can use the dashboards as a visual assessment of your Heroku app(s) performance, and use the stored Graphite metrics to create service-level alerts. HG's Composite Alerting allows you to configure up to 4 criteria, using AND / OR conditional logic. This keeps your alerts meaningful by reducing noise, and you can send notifications to Email, Slack, PagerDuty, MSTeams, webhooks, and more!

Customizing Your Heroku Metrics
In the Hosted Graphite app, navigate to Add-Ons ⇒ Heroku to access all of the following configuration options.
Router Path Metrics
If you enable the Path Metrics feature in the Heroku config, we will collect and forward router statistics (connection times, request methods/statuses) per path in your Heroku application. This will increase the total number of metrics being stored in the Hosted Graphite backend, but will give you increased visibility into activity within your app, and a higher level of alerting functionality.
Process Aggregates
Heroku runs your app code in Dynos defined by One-Off and Worker process types in your Procfile (you must have Log-Runtime Metrics enabled on your Heroku app to receive process metrics).
This feature rolls up multiple process instance IDs into a single metric stream, which is good for reducing cardinality and giving you a good performance overview. By default, you will receive individual process metrics, but we recommend enabling aggregation per process to significantly decrease your total metric count.
Host Aggregates
Some Heroku apps report router metrics under multiple hostnames, such as a mix of your Heroku default domain (myapp.herokuapp.com), a custom domain (www.herokuapp.com), or internal service domains (UID-123.herokuapp.com). These hostname variations will produce multiple metric series even though they represent the same application.

Conclusion
In this article, we outlined the capabilities and advantages of MetricFire’s Hosted Graphite via the HG Heroku Monitoring add-on. With this robust monitoring stack, you can be sure that you are getting the right performance metrics from all your infrastructure and services, no matter where they are deployed.
HG Heroku Monitoring is run by MetricFire, which provides hosted versions of Grafana, Graphite, StatsD, and more. The service includes storing your data for 1-2 years (depending on plan level), a hosted Grafana environment for unlimited dashboards and much more. You can use Hosted Graphite with minimal configuration to gain in-depth insight into your entire infrastructure, starting at only $19/mo.
If you would like to learn more about it, please book a demo with us, or sign up for a free trial today.


.png)
