simplify info metric

This commit is contained in:
2026-01-30 08:12:27 +01:00
parent ef10e739b2
commit a899d43f8d

View File

@@ -9,7 +9,7 @@ import asyncio
import aiohttp import aiohttp
import urllib3 import urllib3
import yaml import yaml
from prometheus_client import Gauge, start_http_server, Summary, Counter, Histogram from prometheus_client import Gauge, start_http_server, Summary, Counter, Histogram, Info
@dataclass @dataclass
@@ -77,23 +77,8 @@ watts_gauge = Gauge(
amps_gauge = Gauge( amps_gauge = Gauge(
"redfish_psu_input_amps", "Current draw in Amps per PSU", ["host", "psu_serial"] "redfish_psu_input_amps", "Current draw in Amps per PSU", ["host", "psu_serial"]
) )
# set info metric
redfish_version_gauge = Gauge( system_info = Info("redfish_system_info", "System information (vendor, model, serial, etc.)", ["host"])
"system_redfish_version", "Current Redfish Version", ["host", "redfish_version"]
)
vendor_gauge = Gauge(
"server_vendor", "Server Vendor", ["host", "vendor"]
)
manufacturer_gauge = Gauge(
"server_manufacturer", "Server Manufacturer", ["host", "manufacturer"]
)
model_gauge = Gauge(
"server_model", "Server Model", ["host", "model"]
)
serial_gauge = Gauge(
"server_serial", "Serial number of server", ["host", "serial_number"]
)
@REQUEST_TIME.time() @REQUEST_TIME.time()
async def process_request(t): async def process_request(t):
@@ -352,7 +337,7 @@ async def get_system_info(session, host: HostConfig):
if not root_data: if not root_data:
host.mark_failure() host.mark_failure()
return return
redfish_version = root_data.get("RedfishVersion") redfish_version = root_data.get("RedfishVersion")
vendor = root_data.get("Vendor") vendor = root_data.get("Vendor")
@@ -362,11 +347,6 @@ async def get_system_info(session, host: HostConfig):
if not systems_data: if not systems_data:
host.mark_failure() host.mark_failure()
return return
redfish_version_gauge.labels(host=host.fqdn, redfish_version=redfish_version).set(1)
vendor_gauge.labels(host=host.fqdn, vendor=vendor).set(1)
# loop for each system members # loop for each system members
for system_member in systems_data.get("Members", []): for system_member in systems_data.get("Members", []):
@@ -383,9 +363,15 @@ async def get_system_info(session, host: HostConfig):
serial_number = system_data.get("SerialNumber") serial_number = system_data.get("SerialNumber")
# Hier könnte ihre Werbung stehen # Hier könnte ihre Werbung stehen
manufacturer_gauge.labels(host=host.fqdn, manufacturer=manufacturer).set(1) system_info.labels(host=host.fqdn).info(
model_gauge.labels(host=host.fqdn, model=model).set(1) {
serial_gauge.labels(host=host.fqdn, serial_number=serial_number).set(1) "vendor": vendor,
"manufacturer": manufacturer,
"model": model,
"serial_number": serial_number,
"redfish_version": redfish_version,
}
)