View Source PromEx.Plugins.Beam (PromEx v1.10.0)

Telemetry metrics for the BEAM.

This plugin captures metrics regarding the Erlang Virtual Machine (i.e the BEAM). Specifically, it captures metrics regarding the CPU topology, system limits, VM feature support, scheduler information, memory utilization, distribution traffic, and other internal metrics.

This plugin supports the following options:

  • poll_rate: This is option is OPTIONAL and is the rate at which poll metrics are refreshed (default is 5 seconds).

  • metric_prefix: This option is OPTIONAL and is used to override the default metric prefix of [otp_app, :prom_ex, :beam]. If this changes you will also want to set beam_metric_prefix in your dashboard_assigns to the snakecase version of your prefix, the default beam_metric_prefix is {otp_app}_prom_ex_beam.

  • duration_unit: This is an OPTIONAL option and is a Telemetry.Metrics.time_unit(). It can be one of: :second | :millisecond | :microsecond | :nanosecond. It is :millisecond by default.

This plugin exposes the following metric groups:

  • :beam_memory_polling_metrics
  • :beam_internal_polling_metrics
  • :beam_cpu_topology_manual_metrics
  • :beam_system_limits_manual_metrics
  • :beam_system_info_manual_metrics
  • :beam_scheduler_manual_metrics

To use plugin in your application, add the following to your PromEx module:

defmodule MyApp.PromEx do
  use PromEx, otp_app: :web_app

  @impl true
  def plugins do
    [
      ...
      PromEx.Plugins.Beam
    ]
  end

  @impl true
  def dashboards do
    [
      ...
      {:prom_ex, "beam.json"}
    ]
  end
end

This plugin exposes manual metrics so be sure to configure the PromEx :delay_manual_start as necessary.