Skip to content

Prometheus Metric

Learn more about Querying Prometheus.

This widget can show metrics for your service defined by PromQL queries which are requested from a running Prometheus instance.

Quries can be defined in the metrics array of the widget along with a label to be used to present the metric value. You can optionally specify a global refreshInterval in milliseconds and/or define the refreshInterval per metric. Inside the optional format object of a metric various formatting styles and transformations can be applied (see below).

widget:
  type: prometheusmetric
  url: https://prometheus.host.or.ip
  refreshInterval: 10000 # optional - in milliseconds, defaults to 10s
  metrics:
    - label: Metric 1
      query: alertmanager_alerts{state="active"}
    - label: Metric 2
      query: apiserver_storage_size_bytes{node="mynode"}
      format:
        type: bytes
    - label: Metric 3
      query: avg(prometheus_notifications_latency_seconds)
      format:
        type: number
        suffix: s
        options:
          maximumFractionDigits: 4
    - label: Metric 4
      query: time()
      refreshInterval: 1000 # will override global refreshInterval
      format:
        type: date
        scale: 1000
        options:
          timeStyle: medium

Formatting

Supported values for format.type are text, number, percent, bytes, bits, bbytes, bbits, byterate, bibyterate, bitrate, bibitrate, date, duration, relativeDate, and text which is the default.

The dateStyle and timeStyle options of the date format are passed directly to Intl.DateTimeFormat and the style and numeric options of relativeDate are passed to Intl.RelativeTimeFormat. For the number format, options of Intl.NumberFormat can be used, e.g. maximumFractionDigits or minimumFractionDigits.

Data Transformation

You can manipulate your metric value with the following tools: scale, prefix and suffix, for example:

- query: my_custom_metric{}
  label: Metric 1
  format:
    type: number
    scale: 1000 # multiplies value by a number or fraction string e.g. 1/16
- query: my_custom_metric{}
  label: Metric 2
  format:
    type: number
    prefix: "$" # prefixes value with given string
- query: my_custom_metric{}
  label: Metric 3
  format:
    type: number
    suffix: "€" # suffixes value with given string