From 8183bf97c4b58cb05a13b435bcd0c1647f8aec09 Mon Sep 17 00:00:00 2001 From: Soroush Kaviani <90821955+srkaviani@users.noreply.github.com> Date: Tue, 2 Aug 2022 12:31:34 +0430 Subject: [PATCH 1/6] Update exporter.py --- src/hpilo_exporter/exporter.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/hpilo_exporter/exporter.py b/src/hpilo_exporter/exporter.py index 319e89d..048a21e 100644 --- a/src/hpilo_exporter/exporter.py +++ b/src/hpilo_exporter/exporter.py @@ -136,7 +136,18 @@ def do_GET(self): # prometheus_metrics.hpilo_firmware_version.set(fw_version) prometheus_metrics.hpilo_firmware_version.labels(product_name=product_name, server_name=server_name).set(fw_version) + # get power status + power_status = ilo.get_host_power_status() + # prometheus_metrics.hpilo_power_status.set(power_id) + if power_status.upper() == "ON" : + power_id = 1 + elif power_status.upper() == "OFF" : + power_id = 0 + else : + power_id = 2 + prometheus_metrics.hpilo_power_status_gauge.labels(product_name=product_name,server_name=server_name).set(power_id) + # get the amount of time the request took REQUEST_TIME.observe(time.time() - start_time) From 0fada4718f976478e64c523660e8dc481cd45a9a Mon Sep 17 00:00:00 2001 From: Soroush Kaviani <90821955+srkaviani@users.noreply.github.com> Date: Tue, 2 Aug 2022 12:32:53 +0430 Subject: [PATCH 2/6] Added HP ILO Server Power Status Now You can get the server power status from metrics. 0 = Off 1 = On --- src/hpilo_exporter/prometheus_metrics.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/hpilo_exporter/prometheus_metrics.py b/src/hpilo_exporter/prometheus_metrics.py index 16f9f72..c0f14ab 100644 --- a/src/hpilo_exporter/prometheus_metrics.py +++ b/src/hpilo_exporter/prometheus_metrics.py @@ -16,6 +16,7 @@ hpilo_network_gauge = Gauge('hpilo_network', 'HP iLO network status', ["product_name", "server_name"]) hpilo_temperature_gauge = Gauge('hpilo_temperature', 'HP iLO temperature status', ["product_name", "server_name"]) hpilo_firmware_version = Gauge('hpilo_firmware_version', 'HP iLO firmware version', ["product_name", "server_name"]) +hpilo_power_status_gauge = Gauge('hpilo_power_status', 'HP iLO Server Power Status', ["product_name", "server_name"]) gauges = { 'hpilo_vrm_gauge': hpilo_vrm_gauge, @@ -30,4 +31,5 @@ 'hpilo_network_gauge': hpilo_network_gauge, 'hpilo_temperature_gauge': hpilo_temperature_gauge, 'hpilo_firmware_version': hpilo_firmware_version, + 'hpilo_power_status_gauge': hpilo_power_status_gauge, } From faa3c8667551574b1418b38b259904f5afa550c3 Mon Sep 17 00:00:00 2001 From: Soroush Kaviani <90821955+srkaviani@users.noreply.github.com> Date: Tue, 2 Aug 2022 12:34:14 +0430 Subject: [PATCH 3/6] Update README.md --- README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0b8a6c7..01f660a 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,12 @@ Here are the status code of gauge 2 - Dead (Other) ``` +Here are the status code of server power +``` +0 - Off +1 - On +2 - Other +``` ### Output example @@ -43,7 +49,8 @@ hpilo_network{product_name="ProLiant DL360 Gen9",server_name="name.fqdn.domain"} hpilo_temperature{product_name="ProLiant DL360 Gen9",server_name="name.fqdn.domain"} 0.0 hpilo_vrm{product_name="ProLiant DL380 Gen6",server_name="name.fqdn.domain"} 0.0 hpilo_drive{product_name="ProLiant DL380 Gen6",server_name="name.fqdn.domain"} 0.0 -hpilo_firmware_version{product_name="ProLiant DL360 Gen9",server_name="name.fqdn.domain"} 2.5 +hpilo_firmware_version{product_name="ProLiant DL360 Gen9",server_name="name.fqdn.domain"} 2.78 +hpilo_power_status{product_name="ProLiant DL360 Gen9",server_name="name.fqdn.domain"} 1.0 ``` ### Installing From 0b4e734cb1ebbc2a88bfd13cd39e0b5007791164 Mon Sep 17 00:00:00 2001 From: Soroush Kaviani <90821955+srkaviani@users.noreply.github.com> Date: Sat, 27 Aug 2022 09:22:11 +0430 Subject: [PATCH 4/6] Update prometheus_metrics.py --- src/hpilo_exporter/prometheus_metrics.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/hpilo_exporter/prometheus_metrics.py b/src/hpilo_exporter/prometheus_metrics.py index c0f14ab..ec573fa 100644 --- a/src/hpilo_exporter/prometheus_metrics.py +++ b/src/hpilo_exporter/prometheus_metrics.py @@ -16,7 +16,7 @@ hpilo_network_gauge = Gauge('hpilo_network', 'HP iLO network status', ["product_name", "server_name"]) hpilo_temperature_gauge = Gauge('hpilo_temperature', 'HP iLO temperature status', ["product_name", "server_name"]) hpilo_firmware_version = Gauge('hpilo_firmware_version', 'HP iLO firmware version', ["product_name", "server_name"]) -hpilo_power_status_gauge = Gauge('hpilo_power_status', 'HP iLO Server Power Status', ["product_name", "server_name"]) +hpilo_power_status_gauge = Gauge('hpilo_power_status', 'HP iLO server power status', ["product_name", "server_name"]) gauges = { 'hpilo_vrm_gauge': hpilo_vrm_gauge, From afd3deea0fd8d9c7406d244bb36f92edda4134f7 Mon Sep 17 00:00:00 2001 From: Soroush Kaviani <90821955+srkaviani@users.noreply.github.com> Date: Sun, 12 Mar 2023 12:00:17 +0330 Subject: [PATCH 5/6] Update prometheus_metrics.py --- src/hpilo_exporter/prometheus_metrics.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/hpilo_exporter/prometheus_metrics.py b/src/hpilo_exporter/prometheus_metrics.py index ec573fa..2dd9c1f 100644 --- a/src/hpilo_exporter/prometheus_metrics.py +++ b/src/hpilo_exporter/prometheus_metrics.py @@ -16,7 +16,8 @@ hpilo_network_gauge = Gauge('hpilo_network', 'HP iLO network status', ["product_name", "server_name"]) hpilo_temperature_gauge = Gauge('hpilo_temperature', 'HP iLO temperature status', ["product_name", "server_name"]) hpilo_firmware_version = Gauge('hpilo_firmware_version', 'HP iLO firmware version', ["product_name", "server_name"]) -hpilo_power_status_gauge = Gauge('hpilo_power_status', 'HP iLO server power status', ["product_name", "server_name"]) +hpilo_nic_status_gauge = Gauge('hpilo_nic_status', 'HP iLO individual NIC statuses', ["product_name", "server_name", "nic_name", "ip_address"]) +hpilo_power_status_gauge = Gauge('hpilo_power_status', 'HP iLO Server Power Status', ["product_name", "server_name"]) gauges = { 'hpilo_vrm_gauge': hpilo_vrm_gauge, From af665ba86d3f849da92c7bff9b210f4aef34231f Mon Sep 17 00:00:00 2001 From: Soroush Kaviani <90821955+srkaviani@users.noreply.github.com> Date: Sun, 9 Apr 2023 11:07:49 +0330 Subject: [PATCH 6/6] Fix missing hpilo_nic_status_gauge --- src/hpilo_exporter/prometheus_metrics.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/hpilo_exporter/prometheus_metrics.py b/src/hpilo_exporter/prometheus_metrics.py index 2dd9c1f..406f155 100644 --- a/src/hpilo_exporter/prometheus_metrics.py +++ b/src/hpilo_exporter/prometheus_metrics.py @@ -33,4 +33,5 @@ 'hpilo_temperature_gauge': hpilo_temperature_gauge, 'hpilo_firmware_version': hpilo_firmware_version, 'hpilo_power_status_gauge': hpilo_power_status_gauge, + 'hpilo_nic_status_gauge': hpilo_nic_status_gauge, }