Metrics (Prometheus, OpenMetrics)

Airlock IAM provides a metrics endpoint that can be used for monitoring and other operational tasks.

This article outlines the available metrics and how to enable and configure the metrics endpoint.

Available Metrics

The following list outlines the available metrics available as of Airlock IAM 8.2. More metrics may be added in later releases.

  • Available metrics (provided by the Prometheus Java client library):
  • JVM-related metrics
    • buffer pool
    • class loading and compilation
    • garbage collection
    • memory and memory pool allocation
    • runtime information
    • thread metrics
  • Process-related metrics
    • CPU usage
    • file descriptor usage
    • memory

Call the metric endpoint in the web browser to get the full list of metrics with names, types, and descriptions. It lists all available metrics in the Prometheus text format.

The URL depends on the IAM host and the metrics port in the instance configuration (see below).

Example URL: http://iam-host:5555/metrics

Metric formats and filters

  • The IAM metrics endpoint supports the following formats:
  • OpenMetrics text
  • Prometheus text
  • Prometheus protobuf

Single metrics names can be filtered using the URL query parameter name[] and the metric name.

Example: http://iam-host:5555/metrics?name[]=jvm_threads_current

Activation and configuration

The metric endpoint needs to be activated. It is disabled by default.

  1. To activate the metric endpoint:
  2. Open the instance configuration (instance.properties) in an editor.
  3. Add (or uncomment) property iam.metrics.port and choose a free port.
  4. ### METRICS
    ## If a port is set, a metrics endpoint will be exposed on that port
    ##  (http://host:port/metrics).
    iam.metrics.port = 5555
    

    When starting IAM, the metrics may also be activated (and the port configured) by setting the environment variable IAM_METRICS_PORT.