diff --git a/python/redfish-api/redfish_exporter_v9000.py b/python/redfish-api/redfish_exporter_v9000.py index 1fc969d..457394b 100644 --- a/python/redfish-api/redfish_exporter_v9000.py +++ b/python/redfish-api/redfish_exporter_v9000.py @@ -9,7 +9,7 @@ import asyncio import aiohttp import urllib3 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 @@ -77,23 +77,8 @@ watts_gauge = Gauge( amps_gauge = Gauge( "redfish_psu_input_amps", "Current draw in Amps per PSU", ["host", "psu_serial"] ) - -redfish_version_gauge = Gauge( - "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"] -) - +# set info metric +system_info = Info("redfish_system_info", "System information (vendor, model, serial, etc.)", ["host"]) @REQUEST_TIME.time() async def process_request(t): @@ -352,7 +337,7 @@ async def get_system_info(session, host: HostConfig): if not root_data: host.mark_failure() return - + redfish_version = root_data.get("RedfishVersion") vendor = root_data.get("Vendor") @@ -362,11 +347,6 @@ async def get_system_info(session, host: HostConfig): if not systems_data: host.mark_failure() 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 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") # Hier könnte ihre Werbung stehen - manufacturer_gauge.labels(host=host.fqdn, manufacturer=manufacturer).set(1) - model_gauge.labels(host=host.fqdn, model=model).set(1) - serial_gauge.labels(host=host.fqdn, serial_number=serial_number).set(1) + system_info.labels(host=host.fqdn).info( + { + "vendor": vendor, + "manufacturer": manufacturer, + "model": model, + "serial_number": serial_number, + "redfish_version": redfish_version, + } + )