diff --git a/python/redfish-api/redfish_exporter_v9000.py b/python/redfish-api/redfish_exporter_v9000.py index 5c9ea51..1fc969d 100644 --- a/python/redfish-api/redfish_exporter_v9000.py +++ b/python/redfish-api/redfish_exporter_v9000.py @@ -78,9 +78,21 @@ amps_gauge = Gauge( "redfish_psu_input_amps", "Current draw in Amps per PSU", ["host", "psu_serial"] ) -system_redfish_gauge = Gauge( +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"] +) @REQUEST_TIME.time() @@ -351,7 +363,10 @@ async def get_system_info(session, host: HostConfig): host.mark_failure() return - system_redfish_gauge.labels(host=host.fqdn, redfish_version=redfish_version).set(redfish_version) + 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", []): @@ -368,8 +383,9 @@ async def get_system_info(session, host: HostConfig): serial_number = system_data.get("SerialNumber") # Hier könnte ihre Werbung stehen - system_info_gauge.labels(host=host.fqdn, metric="vendor").set(1 if vendor else 0) - system_info_gauge.labels(host=host.fqdn, metric="manufacturer").set(1 if manufacturer else 0) + 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) @@ -436,6 +452,7 @@ async def run_exporter(config, stop_event): tasks = [] for hc in host_objs: tasks.append(get_power_data(session, hc)) + tasks.append(get_system_info(session, hc)) await asyncio.gather(*tasks) await process_request(interval) finally: