Last updated April 01, 2025
Application-level metrics help developers investigate and diagnose issues with their applications running on Heroku. To view application metrics, navigate to your app in the Heroku Dashboard and click the Metrics
tab.
Application metrics aren’t available for apps using eco
dynos. Not all Application Metrics features are available to all dyno types. Distinctions in feature availability are noted where applicable.
The Dyno Load chart has been changed to CPU for Fir-generation apps. Restart events and some Heroku error codes are not yet available for Fir apps. Subscribe to our changelog to stay informed of observability-related changes for Fir.
General SettingsThe Application Metrics configuration menu accesses the timezone selector, and chart layout (compact or full) and data refresh and data lag (on/off) settings.
Display of language-specific metrics are not yet available for Fir-generation apps.
By default the legend displays the latest metrics; however, hovering over a time point on a plot will provide you with the metrics for that time point (green box below). Summary metrics represent the timeframe selected unless otherwise stated (purple box below).
Individual metrics are gathered per process type. You can change the process type you are looking at using the process type selector in the top left corner of the page.
Data ResolutionThere are 4 levels of data resolution in Application Metrics:
Values represent rollups of data point for the sampling window. Basic dynos only have access to 24 hours of data at 10 minute resolution. Resource utilization values represent maxima or averages per process type.
Changing which Time Series Plots are DisplayedIndividual time series plots may be hidden and unhidden with the “V” icon next to the chart title:
Changing which Metrics are DisplayedBy clicking on the legend entry for an individual metric you can hide and unhide the display of that metric on a plot. The y-axis will rescale to fit the remaining displayed data.
Metrics Gathered for Web Dynos OnlyThe following metrics are gathered for only the web
process type:
Summary metrics for response time, including the median of the median (50th percentile) response times, and the minimum and maximum 95th percentile, are also displayed for the selected time interval.
ThroughputThe Throughput plot displays the number of requests broken down by HTTP status code (1XX, 2XX, 3XX, 4XX and 5XX). The throughput (which can be toggled between RPS and RPM in the metrics preferences) is also displayed for each status code in the legend. Requests that result in a 5XX status code are considered failed requests.
Metrics gathered for all dynosThe following metrics are gathered for all process types, and are averages of the metrics of the dynos of that process type for a given application:
Memory UsageSwap memory is not reported for Fir-generation apps, because the metric is not available for the Kubernetes backend.
Maximum overall memory usage is displayed as a single stacked plot, combining maximum rss and maximum swap memory as reported for 10 or 1 minute increments. Mean total memory (rss + swap) is displayed as a blue line. Memory quota is depicted as a dashed gray line with any quota breaches flagged in red. The latest, mean, and max percent memory are shown for the selected time interval (e.g. 24 hours), along with the raw value.
Cedar-Generation Apps
The load value for Cedar-generation apps indicates a runnable task (a process or thread) that is either currently running on a CPU or is waiting for a CPU to run on, but otherwise has all the resources it needs to run. The load value does not include tasks that are waiting on IO. For example:
If your application has four physical cores and is executing four concurrent threads, the load value will show 4
. As the value goes above the number of physical cores on the system, this indicates that there is contention for one or more physical cores.
If your application has two concurrent threads waiting on a database result and three concurrent threads executing CPU bound tasks, the load value will indicate three.
For Fir-generation apps, Heroku displays the CPU usage instead of the load average. The following CPU usage metrics are included in the plot:
The Events table contains Heroku errors and user-initiated events that influence application health. Currently tracked user activities include deployments, configuration changes, and restarts. Activity events (such as deployments and configuration changes) are displayed in blue. Color gradients indicate the relative number of events of each type that occurred during each time interval since at most only one marker of the event type is displayed per time interval. Additional details are available by hovering over the specific event. These details include error descriptions, and for user-initiated events who made the change and what happened.
ErrorsSome error codes are not yet available for Fir-generation apps.
Critical errors are displayed in red, warning level errors in orange, and informational errors in gray.
Platform Status EventsTwo types of platform status events are shown: incidents (yellow) and scheduled maintenance (gray). You will only see the events applicable to your region.
Configuration Variable Change EventsChanges to configuration variables are also captured as events, with the variable that changed shown in the event details.
Deployment Events and MarkersDeploys are also displayed in the Events chart. Deployment activities are extended onto the Metrics plots as deployment markers to help users visualize the impact of deployments on application health.
Scaling EventsScaling events represent horizontal and/or vertical dyno scaling activities.
Restart EventsRestart events are not yet available for Fir-generation apps.
There are three categories of restart events displayed on the Events chart:
In addition to raw metrics, Heroku provides online notifications of specific conditions that might be indicative of problems with your application. Links to relevant Dev Center articles are included to provide recommendations on how to correct the problem. Language-specific guidance is provided where available. The list of alerts provided is constantly evolving as we gather more data about application behavior, but examples include alerts on memory errors, request timeouts, and slow response times.
Metrics for App Favorites24 hour summary web metrics and sparklines are also displayed for each favorited app in the default Heroku Dashboard view. Summary metrics include the total number of dyno and router errors, and the most recent 95th percentile response time and throughput value based on 10 min resolution. Only apps with web dynos will be displayed. Other basic information about your app, including dyno formation/location, most recent deployment, and language, is also shown.
Threshold AlertingThe Threshold Alerting feature is available to apps running on Professional dynos (standard-1x
, standard-2x
and performance
) and all Fir dynos. It allows you to specify limits on web dyno 95th percentile response time and the percentage of failed requests (requests that return a 5XX status code) above which an alert will be triggered. Email, PagerDuty, and dashboard notifications are supported.
To set up an alert select Configure Alerts
to open the Alert Setup dialog.
Select the metric(s) that you wish to monitor, “Response Time” and/or “Failed Responses”. Adjust the threshold and sensitivity as appropriate. Note that for response time the minimum threshold is 50ms. The sensitivity is the duration an error state must occur prior to triggering an alert. The Alert Simulation shows you how many alerts would have been triggered in the past 24 hours for the app with the selected settings.
A summary of alert configuration and state will appear below the corresponding metrics plot, with the option to edit the existing setup.
PagerDuty and Additional Email Configuration (optional)By default the distribution for email notifications is all app owners and collaborators for non-org accounts, and admins for those in a Heroku Enterprise org. For email-based PagerDuty integration first create a new PagerDuty service (or use an existing one) with your preferred escalation policies following PagerDuty’s instructions. Enter the email address you’ll be using; this is the email address PagerDuty will use to create incidents and the email address Heroku will use for email notifications.
The following steps are the same for both PagerDuty integration and additional email setup. Select Add Email for Alert Notifications
and enter the PagerDuty or additional email. A code will be sent to PagerDuty Incidents or additional email, respectively, for confirmation. Enter this code in the Alerting Setup to continue. Up to five additional emails are supported per alert monitor.
The mail platform has a daily limit of 5 email additions per user, so if you are adding additional emails across multiple monitors it is possible you may hit your daily limit before you hit the max per alert monitor limit. Even though we support multiple addresses, the preferred approach is to use your email platform to create an alias and manage group membership outside of the alert notification framework.
Notification DeliverySpecify whether you would like to receive email notifications (default or PagerDuty/additional), and if so, the notification frequency for active alerts. Leaving both boxes unchecked results in silent (dashboard only) notifications.
Alert ActivationLastly, activate the alert and select Confirm
.
Dashboard alert notifications appear in multiple locations in the Heroku dashboard, including:
The icon for an actively alerting app is denoted with a red diamond symbol.
With email notifications an initial email is sent once an alert is triggered. For active alerts emails will be sent at the frequency specified in your delivery preferences. A final alert notification is sent when the error state is resolved.
AccessFor those using Heroku Enterprise Teams the operate permission is required to configure and view alerts in Application Metrics.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4