Skip to content

Prometheus metrics

Prometheus is one of the popular monitoring systems. It pulls service's endpoint to get metrics in a simple text format. PiKVM has the ability to export some information to this system such as the server's ATX state, Pi's temperature, GPIO state and some other things.

Configure Prometheus

To enable Prometheus getting metrics from pikvm following config could be used:

scrape_configs:
  - job_name: "pikvm"
    metrics_path: "/api/export/prometheus/metrics"
    basic_auth:
      username: admin
      password: admin
    scheme: https
    static_configs:
    - targets: ["pikvm"]
    tls_config:
      insecure_skip_verify: true # For self-signed certificate

Output example

This example includes the GPIO from the PiKVM's test config.

$ curl -k -HX-KVMD-User:admin -HX-KVMD-Passwd:admin https://pikvm/api/export/prometheus/metrics

# TYPE pikvm_atx_enabled gauge
pikvm_atx_enabled 1

# TYPE pikvm_atx_power gauge
pikvm_atx_power 0

# TYPE pikvm_gpio_input_online_led1 gauge
pikvm_gpio_input_online_led1 0

# TYPE pikvm_gpio_input_state_led1 gauge
pikvm_gpio_input_state_led1 0

# TYPE pikvm_gpio_input_online_led2 gauge
pikvm_gpio_input_online_led2 0

# TYPE pikvm_gpio_input_state_led2 gauge
pikvm_gpio_input_state_led2 0

# TYPE pikvm_gpio_output_online_button1 gauge
pikvm_gpio_output_online_button1 0

# TYPE pikvm_gpio_output_state_button1 gauge
pikvm_gpio_output_state_button1 0

# TYPE pikvm_gpio_output_online_button2 gauge
pikvm_gpio_output_online_button2 0

# TYPE pikvm_gpio_output_state_button2 gauge
pikvm_gpio_output_state_button2 0

# TYPE pikvm_gpio_output_online_relay1 gauge
pikvm_gpio_output_online_relay1 0

# TYPE pikvm_gpio_output_state_relay1 gauge
pikvm_gpio_output_state_relay1 0

# TYPE pikvm_gpio_output_online_relay2 gauge
pikvm_gpio_output_online_relay2 0

# TYPE pikvm_gpio_output_state_relay2 gauge
pikvm_gpio_output_state_relay2 0

# TYPE pikvm_hw_temp_cpu gauge
pikvm_hw_temp_cpu 36.511

# TYPE pikvm_hw_temp_gpu gauge
pikvm_hw_temp_gpu 35.0

# TYPE pikvm_hw_throttling_freq_capped_now gauge
pikvm_hw_throttling_freq_capped_now 0

# TYPE pikvm_hw_throttling_freq_capped_past gauge
pikvm_hw_throttling_freq_capped_past 0

# TYPE pikvm_hw_throttling_throttled_now gauge
pikvm_hw_throttling_throttled_now 0

# TYPE pikvm_hw_throttling_throttled_past gauge
pikvm_hw_throttling_throttled_past 0

# TYPE pikvm_hw_throttling_undervoltage_now gauge
pikvm_hw_throttling_undervoltage_now 0

# TYPE pikvm_hw_throttling_undervoltage_past gauge
pikvm_hw_throttling_undervoltage_past 0

# TYPE pikvm_hw_throttling_raw_flags gauge
pikvm_hw_throttling_raw_flags 0
* Connection #0 to host localhost left intact