Language Runtime Metrics
Last updated December 03, 2024
Table of Contents
To provide additional insights into memory health we offer optional language-specific runtime metrics. JVM, Go (public beta), Node.js (public beta), and Ruby (public beta) are currently supported.
This feature is not yet available for Fir-generation apps. Subscribe to our changelog to stay informed of when we add this feature to Fir.
General Information
For all metrics the resolution is dependent on the timeframe selected. More information on metrics retention and resolution is available in the Application Metrics docs.
Language runtime metrics are available for all dynos using the supported languages, except for eco
dynos.
Setup Instructions
First, enable the Language Metrics flag on your application. You can do this via the Dashboard or the CLI. To enable it through Dashboard, open the metrics preferences panel and turn on the Enhanced Language Metrics toggle:
Alternatively, to enable it through the Heroku CLI:
$ heroku labs:enable "runtime-heroku-metrics" -a "my-app-name"
This toggle will inform our metrics collection backend that it should collect and report any language specific metrics that are being exported by your application. Depending on the language, there may be some additional steps you must take to have these metrics exported to our data collection service.
Please see the language-specific documentation for detailed instructions on exporting your metrics and for more information regarding our available metrics:
- JVM runtime metrics
- Go language metrics (public beta)
- Ruby language metrics (public beta)
- Node.js language metrics (public beta)
Using with Pipelines
To use language runtime metrics with Heroku Pipelines, you must follow the setup instructions for the most downstream app in the pipeline (the one you deploy to before promoting). Then you must enable the feature in the metrics dashboard of any upstream apps in the pipeline before promoting.
If your downstream app is an Eco-tier app, you must follow all of the setup instructions except enabling the feature in the Metrics Dashboard (for example, you must still add a buildpack or a new dependency to the app). The feature will not work on the Eco app, but any other dyno types downstream will be ready to use the feature once you promote.
Sample Metrics
Disabling Metrics Collection
If for any reason you would like to stop data collection for additional languages, simply toggle off the Enhanced Language Metrics toggle via the Metrics Preferences panel, or using this CLI command:
$ heroku labs:disable "runtime-heroku-metrics" -a "my-app-name"
Keep in mind that there will be gaps in metrics data for any time period that this flag is disabled.