From 9bd860cda8046eec79fb16b5b954a398b59d7fcf Mon Sep 17 00:00:00 2001 From: Maxim Devaev Date: Thu, 10 Sep 2020 14:17:49 +0300 Subject: [PATCH] Create prometheus.md --- pages/prometheus.md | 95 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 pages/prometheus.md diff --git a/pages/prometheus.md b/pages/prometheus.md new file mode 100644 index 00000000..c77d1d86 --- /dev/null +++ b/pages/prometheus.md @@ -0,0 +1,95 @@ +# Prometheus metrics +[Prometheus](https://prometheus.io) is one of the popular monitoring systems. +It pulls service's endpoint to get metrics in a [simple text format](https://prometheus.io/docs/instrumenting/exposition_formats). +Pi-KVM 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](https://prometheus.io/docs/prometheus/latest/configuration/configuration) could be used: +```yaml +scrape_configs: + - job_name: "pikvm" + metrics_path: "/api/export/prometheus/metrics" + basic_auth: + username: admin + password: admin + static_configs: + - targets: ["https://pikvm"] + tls_config: + insecure_skip_verify: true # For self-signed certificate +``` + +# Output example +This example includes the GPIO from the PI-KVM's [test config](https://github.com/pikvm/kvmd/blob/master/testenv/v2-hdmi-rpi4.override.yaml). +```bash +$ 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 +```