Documentation ¶
Index ¶
Constants ¶
const (
// DummyRedfishFile is the filename of dummy data for Redfish API.
DummyRedfishFile = "/etc/neco/dummy_redfish_data.json"
)
Variables ¶
var Rules = map[string]*CollectRule{ "dell_redfish_1.0.2.yml": { TraverseRule: TraverseRule{ Root: "/redfish/v1", ExcludeRules: []string{ "/JSONSchemas", "/Accounts", "/Certificates", "/Jobs", "/Logs", "/Registries", "/Roles", "/Sessions", "/AccountService", "/EventService", "/LogServices", "/SessionService", "/TaskService", "/UpdateService", "/Power/", "/Sensors/", "/Thermal/", "/redfish/v1/Chassis/$", }, }, MetricRules: []*MetricRule{ { Path: "/redfish/v1/Chassis/{chassis}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "chassis_status_health", Help: "", Type: "health", }, }, }, { Path: "/redfish/v1/Chassis/{chassis}/Power", PropertyRules: []*PropertyRule{ { Pointer: "/PowerSupplies/{psu}/Status/Health", Name: "chassis_psu_status_health", Help: "", Type: "health", }, { Pointer: "/Redundancy/{set}/Status/Health", Name: "chassis_psu_redundancy_status_health", Help: "", Type: "health", }, { Pointer: "/Voltages/{sensor}/Status/Health", Name: "chassis_voltage_status_health", Help: "", Type: "health", }, }, }, { Path: "/redfish/v1/Chassis/{chassis}/Thermal", PropertyRules: []*PropertyRule{ { Pointer: "/Fans/{fan}/Status/Health", Name: "chassis_fan_status_health", Help: "", Type: "health", }, { Pointer: "/Redundancy/{set}/Status/Health", Name: "chassis_fan_redundancy_status_health", Help: "", Type: "health", }, { Pointer: "/Temperatures/{sensor}/Status/Health", Name: "chassis_temperature_status_health", Help: "", Type: "health", }, { Pointer: "/Temperatures/{sensor}/ReadingCelsius", Name: "chassis_temperature_reading", Help: "", Type: "number", }, }, }, { Path: "/redfish/v1/Systems/{system}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "system_status_health", Help: "", Type: "health", }, { Pointer: "/MemorySummary/Status/Health", Name: "system_memory_summary_status_health", Help: "", Type: "health", }, { Pointer: "/ProcessorSummary/Status/Health", Name: "system_processor_summary_status_health", Help: "", Type: "health", }, { Pointer: "/TrustedModules/{tpm}/Status/State", Name: "system_tpm_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}/EthernetInterfaces/{interface}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "network_status_health", Help: "", Type: "health", }, }, }, { Path: "/redfish/v1/Systems/{system}/Processors/{processor}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "processor_status_health", Help: "", Type: "health", }, }, }, { Path: "/redfish/v1/Systems/{system}/Storage/Controllers/{controller}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "storage_controller_status_health", Help: "", Type: "health", }, { Pointer: "/Devices/{device}/Status/Health", Name: "storage_device_status_health", Help: "", Type: "health", }, }, }, { Path: "/redfish/v1/Managers/{manager}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "manager_status_health", Help: "", Type: "health", }, }, }, { Path: "/redfish/v1/Managers/{manager}/EthernetInterfaces/{interface}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "manager_network_status_health", Help: "", Type: "health", }, }, }, }, }, "dell_redfish_1.11.0.yml": { TraverseRule: TraverseRule{ Root: "/redfish/v1", ExcludeRules: []string{ "/JsonSchemas", "/Accounts", "/Certificates", "/Jobs", "/Logs", "/Registries", "/Roles", "/Sessions", "/Settings", "/AccountService", "/CertificateService", "/EventService", "/JobService", "/LogServices", "/SessionService", "/TaskService", "/TelemetryService", "/UpdateService", "/Power/", "/Power#/", "/Thermal#/", "/Assembly#/", "/redfish/v1/Chassis/$", }, }, MetricRules: []*MetricRule{ { Path: "/redfish/v1/Chassis/{chassis}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "chassis_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "chassis_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Chassis/{chassis}/NetworkAdapters/{nic}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "chassis_networkadapters_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "chassis_networkadapters_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Chassis/{chassis}/NetworkAdapters/{nic}/NetworkDeviceFunctions/{function}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "chassis_networkadapters_networkdevicefunctions_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "chassis_networkadapters_networkdevicefunctions_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Chassis/{chassis}/NetworkAdapters/{nic}/NetworkPorts/{port}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "chassis_networkadapters_networkports_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "chassis_networkadapters_networkports_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Chassis/{chassis}/PCIeSlots", PropertyRules: []*PropertyRule{ { Pointer: "/Slots/{slot}/Status/State", Name: "chassis_pcieslots_slots_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Chassis/{chassis}/Power", PropertyRules: []*PropertyRule{ { Pointer: "/PowerControl/{powercontrol}/PowerConsumedWatts", Name: "chassis_power_powercontrol_powerconsumedwatts", Help: "", Type: "number", }, { Pointer: "/PowerSupplies/{powersupply}/Redundancy/{redundancy}/Status/Health", Name: "chassis_power_powersupplies_redundancy_status_health", Help: "", Type: "health", }, { Pointer: "/PowerSupplies/{powersupply}/Redundancy/{redundancy}/Status/State", Name: "chassis_power_powersupplies_redundancy_status_state", Help: "", Type: "state", }, { Pointer: "/PowerSupplies/{powersupply}/Status/Health", Name: "chassis_power_powersupplies_status_health", Help: "", Type: "health", }, { Pointer: "/PowerSupplies/{powersupply}/Status/State", Name: "chassis_power_powersupplies_status_state", Help: "", Type: "state", }, { Pointer: "/Redundancy/{redundancy}/Status/Health", Name: "chassis_power_redundancy_status_health", Help: "", Type: "health", }, { Pointer: "/Redundancy/{redundancy}/Status/State", Name: "chassis_power_redundancy_status_state", Help: "", Type: "state", }, { Pointer: "/Voltages/{voltage}/Status/Health", Name: "chassis_power_voltages_status_health", Help: "", Type: "health", }, { Pointer: "/Voltages/{voltage}/Status/State", Name: "chassis_power_voltages_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Chassis/{chassis}/Sensors/{sensor}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "chassis_sensors_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "chassis_sensors_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Chassis/{chassis}/Thermal", PropertyRules: []*PropertyRule{ { Pointer: "/Fans/{fan}/Status/Health", Name: "chassis_thermal_fans_status_health", Help: "", Type: "health", }, { Pointer: "/Fans/{fan}/Status/State", Name: "chassis_thermal_fans_status_state", Help: "", Type: "state", }, { Pointer: "/Redundancy/{redundancy}/Status/Health", Name: "chassis_thermal_redundancy_status_health", Help: "", Type: "health", }, { Pointer: "/Redundancy/{redundancy}/Status/State", Name: "chassis_thermal_redundancy_status_state", Help: "", Type: "state", }, { Pointer: "/Temperatures/{temperature}/ReadingCelsius", Name: "chassis_thermal_temperatures_readingcelsius", Help: "", Type: "number", }, { Pointer: "/Temperatures/{temperature}/Status/Health", Name: "chassis_thermal_temperatures_status_health", Help: "", Type: "health", }, { Pointer: "/Temperatures/{temperature}/Status/State", Name: "chassis_thermal_temperatures_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Fabrics/{fabric}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "fabrics_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "fabrics_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Managers/{manager}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "managers_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "managers_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Managers/{manager}/EthernetInterfaces/{interface}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "managers_ethernetinterfaces_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "managers_ethernetinterfaces_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Managers/{manager}/NetworkProtocol", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "managers_networkprotocol_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "managers_networkprotocol_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}", PropertyRules: []*PropertyRule{ { Pointer: "/HostWatchdogTimer/Status/State", Name: "systems_hostwatchdogtimer_status_state", Help: "", Type: "state", }, { Pointer: "/MemorySummary/Status/Health", Name: "systems_memorysummary_status_health", Help: "", Type: "health", }, { Pointer: "/MemorySummary/Status/State", Name: "systems_memorysummary_status_state", Help: "", Type: "state", }, { Pointer: "/ProcessorSummary/Status/Health", Name: "systems_processorsummary_status_health", Help: "", Type: "health", }, { Pointer: "/ProcessorSummary/Status/State", Name: "systems_processorsummary_status_state", Help: "", Type: "state", }, { Pointer: "/Status/Health", Name: "systems_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "systems_status_state", Help: "", Type: "state", }, { Pointer: "/TrustedModules/{trustedmodule}/Status/State", Name: "systems_trustedmodules_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}/EthernetInterfaces/{interface}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "systems_ethernetinterfaces_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "systems_ethernetinterfaces_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}/Memory/{memory}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "systems_memory_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "systems_memory_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}/Memory/{memory}/MemoryMetrics", PropertyRules: []*PropertyRule{ { Pointer: "/HealthData/AlarmTrips/AddressParityError", Name: "systems_memory_memorymetrics_healthdata_alarmtrips_addressparityerror", Help: "", Type: "bool", }, { Pointer: "/HealthData/AlarmTrips/CorrectableECCError", Name: "systems_memory_memorymetrics_healthdata_alarmtrips_correctableeccerror", Help: "", Type: "bool", }, { Pointer: "/HealthData/AlarmTrips/SpareBlock", Name: "systems_memory_memorymetrics_healthdata_alarmtrips_spareblock", Help: "", Type: "bool", }, { Pointer: "/HealthData/AlarmTrips/Temperature", Name: "systems_memory_memorymetrics_healthdata_alarmtrips_temperature", Help: "", Type: "bool", }, { Pointer: "/HealthData/AlarmTrips/UncorrectableECCError", Name: "systems_memory_memorymetrics_healthdata_alarmtrips_uncorrectableeccerror", Help: "", Type: "bool", }, { Pointer: "/HealthData/DataLossDetected", Name: "systems_memory_memorymetrics_healthdata_datalossdetected", Help: "", Type: "bool", }, { Pointer: "/HealthData/PredictedMediaLifeLeftPercent", Name: "systems_memory_memorymetrics_healthdata_predictedmedialifeleftpercent", Help: "", Type: "number", }, }, }, { Path: "/redfish/v1/Systems/{system}/NetworkInterfaces/{nic}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "systems_networkinterfaces_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "systems_networkinterfaces_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}/PCIeDevices/{device}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "systems_pciedevices_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "systems_pciedevices_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}/PCIeDevices/{device}/PCIeFunctions/{function}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "systems_pciedevices_pciefunctions_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "systems_pciedevices_pciefunctions_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}/Processors/{processor}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "systems_processors_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "systems_processors_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}/SimpleStorage/{controller}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "systems_simplestorage_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "systems_simplestorage_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}/Storage/{storage}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "systems_storage_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "systems_storage_status_state", Help: "", Type: "state", }, { Pointer: "/StorageControllers/{storagecontroller}/Status/Health", Name: "systems_storage_storagecontrollers_status_health", Help: "", Type: "health", }, { Pointer: "/StorageControllers/{storagecontroller}/Status/State", Name: "systems_storage_storagecontrollers_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}/Storage/{storage}/Drives/{device}", PropertyRules: []*PropertyRule{ { Pointer: "/FailurePredicted", Name: "systems_storage_drives_failurepredicted", Help: "", Type: "bool", }, { Pointer: "/PredictedMediaLifeLeftPercent", Name: "systems_storage_drives_predictedmedialifeleftpercent", Help: "", Type: "number", }, { Pointer: "/Status/Health", Name: "systems_storage_drives_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "systems_storage_drives_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}/Storage/{storage}/StorageControllers/{controller}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "systems_storage_storagecontrollers_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "systems_storage_storagecontrollers_status_state", Help: "", Type: "state", }, { Pointer: "/StorageControllers/{storagecontroller}/Status/Health", Name: "systems_storage_storagecontrollers_storagecontrollers_status_health", Help: "", Type: "health", }, { Pointer: "/StorageControllers/{storagecontroller}/Status/State", Name: "systems_storage_storagecontrollers_storagecontrollers_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}/Storage/{storage}/Volumes/{volume}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "systems_storage_volumes_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "systems_storage_volumes_status_state", Help: "", Type: "state", }, }, }, }, }, "dell_redfish_1.2.0.yml": { TraverseRule: TraverseRule{ Root: "/redfish/v1", ExcludeRules: []string{ "/JSONSchemas", "/Accounts", "/Certificates", "/Jobs", "/Logs", "/Registries", "/Roles", "/Sessions", "/AccountService", "/EventService", "/LogServices", "/SessionService", "/TaskService", "/UpdateService", "/Power/", "/Sensors/", "/Thermal/", "/redfish/v1/Chassis/$", }, }, MetricRules: []*MetricRule{ { Path: "/redfish/v1/Chassis/{chassis}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "chassis_status_health", Help: "", Type: "health", }, }, }, { Path: "/redfish/v1/Chassis/{chassis}/Power", PropertyRules: []*PropertyRule{ { Pointer: "/PowerSupplies/{psu}/Status/Health", Name: "chassis_psu_status_health", Help: "", Type: "health", }, { Pointer: "/Redundancy/{set}/Status/Health", Name: "chassis_psu_redundancy_status_health", Help: "", Type: "health", }, { Pointer: "/Voltages/{sensor}/Status/Health", Name: "chassis_voltage_status_health", Help: "", Type: "health", }, }, }, { Path: "/redfish/v1/Chassis/{chassis}/Thermal", PropertyRules: []*PropertyRule{ { Pointer: "/Fans/{fan}/Status/Health", Name: "chassis_fan_status_health", Help: "", Type: "health", }, { Pointer: "/Redundancy/{set}/Status/Health", Name: "chassis_fan_redundancy_status_health", Help: "", Type: "health", }, { Pointer: "/Temperatures/{sensor}/Status/Health", Name: "chassis_temperature_status_health", Help: "", Type: "health", }, { Pointer: "/Temperatures/{sensor}/ReadingCelsius", Name: "chassis_temperature_reading", Help: "", Type: "number", }, }, }, { Path: "/redfish/v1/Systems/{system}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "system_status_health", Help: "", Type: "health", }, { Pointer: "/MemorySummary/Status/Health", Name: "system_memory_summary_status_health", Help: "", Type: "health", }, { Pointer: "/ProcessorSummary/Status/Health", Name: "system_processor_summary_status_health", Help: "", Type: "health", }, { Pointer: "/TrustedModules/{tpm}/Status/State", Name: "system_tpm_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}/EthernetInterfaces/{interface}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "network_status_health", Help: "", Type: "health", }, }, }, { Path: "/redfish/v1/Systems/{system}/Processors/{processor}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "processor_status_health", Help: "", Type: "health", }, }, }, { Path: "/redfish/v1/Systems/{system}/Storage/{controller}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "storage_controller_status_health", Help: "", Type: "health", }, }, }, { Path: "/redfish/v1/Systems/{system}/Storage/Drives/{device}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "storage_device_status_health", Help: "", Type: "health", }, }, }, { Path: "/redfish/v1/Managers/{manager}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "manager_status_health", Help: "", Type: "health", }, }, }, { Path: "/redfish/v1/Managers/{manager}/EthernetInterfaces/{interface}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "manager_network_status_health", Help: "", Type: "health", }, }, }, }, }, "dell_redfish_1.4.0.yml": { TraverseRule: TraverseRule{ Root: "/redfish/v1", ExcludeRules: []string{ "/JSONSchemas", "/Accounts", "/Certificates", "/Jobs", "/Logs", "/Registries", "/Roles", "/Sessions", "/Settings", "/AccountService", "/EventService", "/LogServices", "/SessionService", "/TaskService", "/UpdateService", "/Power/", "/Sensors/", "/Thermal/", "/redfish/v1/Chassis/$", "/StorageControllers/PCIeSSD", }, }, MetricRules: []*MetricRule{ { Path: "/redfish/v1/Chassis/{chassis}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "chassis_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "chassis_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Chassis/{chassis}/Power", PropertyRules: []*PropertyRule{ { Pointer: "/PowerControl/{powercontrol}/PowerConsumedWatts", Name: "chassis_power_powercontrol_powerconsumedwatts", Help: "", Type: "number", }, { Pointer: "/PowerSupplies/{powersupply}/Redundancy/{redundancy}/Status/Health", Name: "chassis_power_powersupplies_redundancy_status_health", Help: "", Type: "health", }, { Pointer: "/PowerSupplies/{powersupply}/Redundancy/{redundancy}/Status/State", Name: "chassis_power_powersupplies_redundancy_status_state", Help: "", Type: "state", }, { Pointer: "/PowerSupplies/{powersupply}/Status/Health", Name: "chassis_power_powersupplies_status_health", Help: "", Type: "health", }, { Pointer: "/PowerSupplies/{powersupply}/Status/State", Name: "chassis_power_powersupplies_status_state", Help: "", Type: "state", }, { Pointer: "/Redundancy/{redundancy}/Status/Health", Name: "chassis_power_redundancy_status_health", Help: "", Type: "health", }, { Pointer: "/Redundancy/{redundancy}/Status/State", Name: "chassis_power_redundancy_status_state", Help: "", Type: "state", }, { Pointer: "/Voltages/{voltage}/Status/Health", Name: "chassis_power_voltages_status_health", Help: "", Type: "health", }, { Pointer: "/Voltages/{voltage}/Status/State", Name: "chassis_power_voltages_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Chassis/{chassis}/Thermal", PropertyRules: []*PropertyRule{ { Pointer: "/Fans/{fan}/Status/Health", Name: "chassis_thermal_fans_status_health", Help: "", Type: "health", }, { Pointer: "/Fans/{fan}/Status/State", Name: "chassis_thermal_fans_status_state", Help: "", Type: "state", }, { Pointer: "/Redundancy/{redundancy}/Status/Health", Name: "chassis_thermal_redundancy_status_health", Help: "", Type: "health", }, { Pointer: "/Redundancy/{redundancy}/Status/State", Name: "chassis_thermal_redundancy_status_state", Help: "", Type: "state", }, { Pointer: "/Temperatures/{temperature}/ReadingCelsius", Name: "chassis_thermal_temperatures_readingcelsius", Help: "", Type: "number", }, { Pointer: "/Temperatures/{temperature}/Status/Health", Name: "chassis_thermal_temperatures_status_health", Help: "", Type: "health", }, { Pointer: "/Temperatures/{temperature}/Status/State", Name: "chassis_thermal_temperatures_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Fabrics/{fabric}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "fabrics_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "fabrics_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Managers/{manager}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "managers_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "managers_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Managers/{manager}/EthernetInterfaces/{interface}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "managers_ethernetinterfaces_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "managers_ethernetinterfaces_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Managers/{manager}/NetworkProtocol", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "managers_networkprotocol_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "managers_networkprotocol_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}", PropertyRules: []*PropertyRule{ { Pointer: "/HostWatchdogTimer/Status/State", Name: "systems_hostwatchdogtimer_status_state", Help: "", Type: "state", }, { Pointer: "/MemorySummary/Status/Health", Name: "systems_memorysummary_status_health", Help: "", Type: "health", }, { Pointer: "/MemorySummary/Status/State", Name: "systems_memorysummary_status_state", Help: "", Type: "state", }, { Pointer: "/ProcessorSummary/Status/Health", Name: "systems_processorsummary_status_health", Help: "", Type: "health", }, { Pointer: "/ProcessorSummary/Status/State", Name: "systems_processorsummary_status_state", Help: "", Type: "state", }, { Pointer: "/Status/Health", Name: "systems_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "systems_status_state", Help: "", Type: "state", }, { Pointer: "/TrustedModules/{trustedmodule}/Status/State", Name: "systems_trustedmodules_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}/EthernetInterfaces/{interface}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "systems_ethernetinterfaces_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "systems_ethernetinterfaces_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}/Memory/{memory}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "systems_memory_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "systems_memory_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}/Memory/{memory}/Metrics", PropertyRules: []*PropertyRule{ { Pointer: "/HealthData/AlarmTrips/AddressParityError", Name: "systems_memory_metrics_healthdata_alarmtrips_addressparityerror", Help: "", Type: "bool", }, { Pointer: "/HealthData/AlarmTrips/CorrectableECCError", Name: "systems_memory_metrics_healthdata_alarmtrips_correctableeccerror", Help: "", Type: "bool", }, { Pointer: "/HealthData/AlarmTrips/SpareBlock", Name: "systems_memory_metrics_healthdata_alarmtrips_spareblock", Help: "", Type: "bool", }, { Pointer: "/HealthData/AlarmTrips/Temperature", Name: "systems_memory_metrics_healthdata_alarmtrips_temperature", Help: "", Type: "bool", }, { Pointer: "/HealthData/AlarmTrips/UncorrectableECCError", Name: "systems_memory_metrics_healthdata_alarmtrips_uncorrectableeccerror", Help: "", Type: "bool", }, { Pointer: "/HealthData/DataLossDetected", Name: "systems_memory_metrics_healthdata_datalossdetected", Help: "", Type: "bool", }, { Pointer: "/HealthData/PredictedMediaLifeLeftPercent", Name: "systems_memory_metrics_healthdata_predictedmedialifeleftpercent", Help: "", Type: "number", }, }, }, { Path: "/redfish/v1/Systems/{system}/NetworkAdapters/{nic}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "systems_networkadapters_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "systems_networkadapters_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}/NetworkAdapters/{nic}/NetworkDeviceFunctions/{function}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "systems_networkadapters_networkdevicefunctions_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "systems_networkadapters_networkdevicefunctions_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}/NetworkAdapters/{nic}/NetworkPorts/{port}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "systems_networkadapters_networkports_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "systems_networkadapters_networkports_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}/NetworkInterfaces/{nic}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "systems_networkinterfaces_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "systems_networkinterfaces_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}/PCIeDevice/{device}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "systems_pciedevice_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "systems_pciedevice_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}/PCIeFunction/{function}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "systems_pciefunction_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "systems_pciefunction_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}/Processors/{processor}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "systems_processors_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "systems_processors_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}/SimpleStorage/Controllers/{controller}", PropertyRules: []*PropertyRule{ { Pointer: "/Devices/{device}/Status/Health", Name: "systems_simplestorage_controllers_devices_status_health", Help: "", Type: "health", }, { Pointer: "/Devices/{device}/Status/State", Name: "systems_simplestorage_controllers_devices_status_state", Help: "", Type: "state", }, { Pointer: "/Status/Health", Name: "systems_simplestorage_controllers_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "systems_simplestorage_controllers_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}/Storage/Drives/{device}", PropertyRules: []*PropertyRule{ { Pointer: "/FailurePredicted", Name: "systems_storage_drives_failurepredicted", Help: "", Type: "bool", }, { Pointer: "/PredictedMediaLifeLeftPercent", Name: "systems_storage_drives_predictedmedialifeleftpercent", Help: "", Type: "number", }, { Pointer: "/Status/Health", Name: "systems_storage_drives_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "systems_storage_drives_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}/Storage/Volumes/{volume}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "systems_storage_volumes_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "systems_storage_volumes_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}/Storage/{storage}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "systems_storage_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "systems_storage_status_state", Help: "", Type: "state", }, { Pointer: "/StorageControllers/{storagecontroller}/Status/Health", Name: "systems_storage_storagecontrollers_status_health", Help: "", Type: "health", }, { Pointer: "/StorageControllers/{storagecontroller}/Status/State", Name: "systems_storage_storagecontrollers_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}/StorageControllers/{controller}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "systems_storagecontrollers_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "systems_storagecontrollers_status_state", Help: "", Type: "state", }, }, }, }, }, "dell_redfish_1.6.0.yml": { TraverseRule: TraverseRule{ Root: "/redfish/v1", ExcludeRules: []string{ "/JsonSchemas", "/Accounts", "/Certificates", "/Jobs", "/Logs", "/Registries", "/Roles", "/Sessions", "/Settings", "/AccountService", "/CertificateService", "/EventService", "/JobService", "/LogServices", "/SessionService", "/TaskService", "/TelemetryService", "/UpdateService", "/Power/", "/Power#/", "/Thermal#/", "/Assembly#/", "/redfish/v1/Chassis/$", }, }, MetricRules: []*MetricRule{ { Path: "/redfish/v1/Chassis/{chassis}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "chassis_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "chassis_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Chassis/{chassis}/NetworkAdapters/{nic}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "chassis_networkadapters_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "chassis_networkadapters_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Chassis/{chassis}/NetworkAdapters/{nic}/NetworkDeviceFunctions/{function}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "chassis_networkadapters_networkdevicefunctions_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "chassis_networkadapters_networkdevicefunctions_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Chassis/{chassis}/NetworkAdapters/{nic}/NetworkPorts/{port}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "chassis_networkadapters_networkports_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "chassis_networkadapters_networkports_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Chassis/{chassis}/Power", PropertyRules: []*PropertyRule{ { Pointer: "/PowerControl/{powercontrol}/PowerConsumedWatts", Name: "chassis_power_powercontrol_powerconsumedwatts", Help: "", Type: "number", }, { Pointer: "/PowerSupplies/{powersupply}/Redundancy/{redundancy}/Status/Health", Name: "chassis_power_powersupplies_redundancy_status_health", Help: "", Type: "health", }, { Pointer: "/PowerSupplies/{powersupply}/Redundancy/{redundancy}/Status/State", Name: "chassis_power_powersupplies_redundancy_status_state", Help: "", Type: "state", }, { Pointer: "/PowerSupplies/{powersupply}/Status/Health", Name: "chassis_power_powersupplies_status_health", Help: "", Type: "health", }, { Pointer: "/PowerSupplies/{powersupply}/Status/State", Name: "chassis_power_powersupplies_status_state", Help: "", Type: "state", }, { Pointer: "/Redundancy/{redundancy}/Status/Health", Name: "chassis_power_redundancy_status_health", Help: "", Type: "health", }, { Pointer: "/Redundancy/{redundancy}/Status/State", Name: "chassis_power_redundancy_status_state", Help: "", Type: "state", }, { Pointer: "/Voltages/{voltage}/Status/Health", Name: "chassis_power_voltages_status_health", Help: "", Type: "health", }, { Pointer: "/Voltages/{voltage}/Status/State", Name: "chassis_power_voltages_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Chassis/{chassis}/Thermal", PropertyRules: []*PropertyRule{ { Pointer: "/Fans/{fan}/Status/Health", Name: "chassis_thermal_fans_status_health", Help: "", Type: "health", }, { Pointer: "/Fans/{fan}/Status/State", Name: "chassis_thermal_fans_status_state", Help: "", Type: "state", }, { Pointer: "/Redundancy/{redundancy}/Status/Health", Name: "chassis_thermal_redundancy_status_health", Help: "", Type: "health", }, { Pointer: "/Redundancy/{redundancy}/Status/State", Name: "chassis_thermal_redundancy_status_state", Help: "", Type: "state", }, { Pointer: "/Temperatures/{temperature}/ReadingCelsius", Name: "chassis_thermal_temperatures_readingcelsius", Help: "", Type: "number", }, { Pointer: "/Temperatures/{temperature}/Status/Health", Name: "chassis_thermal_temperatures_status_health", Help: "", Type: "health", }, { Pointer: "/Temperatures/{temperature}/Status/State", Name: "chassis_thermal_temperatures_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Fabrics/{fabric}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "fabrics_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "fabrics_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Managers/{manager}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "managers_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "managers_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Managers/{manager}/EthernetInterfaces/{interface}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "managers_ethernetinterfaces_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "managers_ethernetinterfaces_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Managers/{manager}/NetworkProtocol", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "managers_networkprotocol_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "managers_networkprotocol_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}", PropertyRules: []*PropertyRule{ { Pointer: "/HostWatchdogTimer/Status/State", Name: "systems_hostwatchdogtimer_status_state", Help: "", Type: "state", }, { Pointer: "/MemorySummary/Status/Health", Name: "systems_memorysummary_status_health", Help: "", Type: "health", }, { Pointer: "/MemorySummary/Status/State", Name: "systems_memorysummary_status_state", Help: "", Type: "state", }, { Pointer: "/ProcessorSummary/Status/Health", Name: "systems_processorsummary_status_health", Help: "", Type: "health", }, { Pointer: "/ProcessorSummary/Status/State", Name: "systems_processorsummary_status_state", Help: "", Type: "state", }, { Pointer: "/Status/Health", Name: "systems_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "systems_status_state", Help: "", Type: "state", }, { Pointer: "/TrustedModules/{trustedmodule}/Status/State", Name: "systems_trustedmodules_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}/EthernetInterfaces/{interface}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "systems_ethernetinterfaces_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "systems_ethernetinterfaces_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}/Memory/{memory}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "systems_memory_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "systems_memory_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}/Memory/{memory}/MemoryMetrics", PropertyRules: []*PropertyRule{ { Pointer: "/HealthData/AlarmTrips/AddressParityError", Name: "systems_memory_memorymetrics_healthdata_alarmtrips_addressparityerror", Help: "", Type: "bool", }, { Pointer: "/HealthData/AlarmTrips/CorrectableECCError", Name: "systems_memory_memorymetrics_healthdata_alarmtrips_correctableeccerror", Help: "", Type: "bool", }, { Pointer: "/HealthData/AlarmTrips/SpareBlock", Name: "systems_memory_memorymetrics_healthdata_alarmtrips_spareblock", Help: "", Type: "bool", }, { Pointer: "/HealthData/AlarmTrips/Temperature", Name: "systems_memory_memorymetrics_healthdata_alarmtrips_temperature", Help: "", Type: "bool", }, { Pointer: "/HealthData/AlarmTrips/UncorrectableECCError", Name: "systems_memory_memorymetrics_healthdata_alarmtrips_uncorrectableeccerror", Help: "", Type: "bool", }, { Pointer: "/HealthData/DataLossDetected", Name: "systems_memory_memorymetrics_healthdata_datalossdetected", Help: "", Type: "bool", }, { Pointer: "/HealthData/PredictedMediaLifeLeftPercent", Name: "systems_memory_memorymetrics_healthdata_predictedmedialifeleftpercent", Help: "", Type: "number", }, }, }, { Path: "/redfish/v1/Systems/{system}/NetworkInterfaces/{nic}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "systems_networkinterfaces_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "systems_networkinterfaces_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}/PCIeDevices/{device}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "systems_pciedevices_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "systems_pciedevices_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}/PCIeDevices/{device}/PCIeFunctions/{function}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "systems_pciedevices_pciefunctions_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "systems_pciedevices_pciefunctions_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}/Processors/{processor}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "systems_processors_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "systems_processors_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}/SimpleStorage/{controller}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "systems_simplestorage_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "systems_simplestorage_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}/Storage/{storage}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "systems_storage_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "systems_storage_status_state", Help: "", Type: "state", }, { Pointer: "/StorageControllers/{storagecontroller}/Status/Health", Name: "systems_storage_storagecontrollers_status_health", Help: "", Type: "health", }, { Pointer: "/StorageControllers/{storagecontroller}/Status/State", Name: "systems_storage_storagecontrollers_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}/Storage/{storage}/Drives/{device}", PropertyRules: []*PropertyRule{ { Pointer: "/FailurePredicted", Name: "systems_storage_drives_failurepredicted", Help: "", Type: "bool", }, { Pointer: "/PredictedMediaLifeLeftPercent", Name: "systems_storage_drives_predictedmedialifeleftpercent", Help: "", Type: "number", }, { Pointer: "/Status/Health", Name: "systems_storage_drives_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "systems_storage_drives_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}/Storage/{storage}/Volumes/{volume}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "systems_storage_volumes_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "systems_storage_volumes_status_state", Help: "", Type: "state", }, }, }, { Path: "/redfish/v1/Systems/{system}/StorageControllers/{controller}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "systems_storagecontrollers_status_health", Help: "", Type: "health", }, { Pointer: "/Status/State", Name: "systems_storagecontrollers_status_state", Help: "", Type: "state", }, }, }, }, }, "qemu.yml": { TraverseRule: TraverseRule{ Root: "/redfish/v1", ExcludeRules: []string{}, }, MetricRules: []*MetricRule{ { Path: "/redfish/v1/Systems/{system}/Processors/{processor}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "processor_status_health", Help: "", Type: "health", }, }, }, { Path: "/redfish/v1/Systems/{system}/Storage/{controller}", PropertyRules: []*PropertyRule{ { Pointer: "/Status/Health", Name: "storage_controller_status_health", Help: "", Type: "health", }, }, }, }, }, }
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client interface { Traverse(ctx context.Context, rule *CollectRule) Collected GetVersion(ctx context.Context) (string, error) }
Client is an interface of a client for Redfish API.
func NewMockClient ¶
NewMockClient create a mock client mock.
func NewRedfishClient ¶
func NewRedfishClient(cc *ClientConfig) (Client, error)
NewRedfishClient create a client for Redfish API
type ClientConfig ¶
type ClientConfig struct { AddressConfig *config.AddressConfig Port string UserConfig *config.UserConfig Rule *CollectRule NoEscape bool }
ClientConfig is a set of configurations for redfishClient.
type CollectRule ¶
type CollectRule struct { TraverseRule TraverseRule `json:"Traverse"` MetricRules []*MetricRule `json:"Metrics"` }
CollectRule is a set of rules of traversing and converting Redfish data.
func (*CollectRule) Compile ¶
func (cr *CollectRule) Compile() error
Compile fills private fields of CollectRule and its descendants.
func (CollectRule) Validate ¶
func (cr CollectRule) Validate() error
Validate checks CollectRule and its Descendants.
type Collected ¶
type Collected struct {
// contains filtered or unexported fields
}
Collected represents the collected data from Redfish
func NewCollected ¶
func NewCollected(data map[string]*gabs.Container, rule *CollectRule) *Collected
NewCollected creates a new Collected instance
type Collector ¶
type Collector struct {
// contains filtered or unexported fields
}
Collector implements prometheus.Collector interface.
func NewCollector ¶
func NewCollector(ruleGetter RuleGetter, client Client) (*Collector, error)
NewCollector returns a new instance of Collector.
func (Collector) Collect ¶
func (c Collector) Collect(ch chan<- prometheus.Metric)
Collect sends metrics Collected from BMC via Redfish.
func (Collector) Describe ¶
func (c Collector) Describe(ch chan<- *prometheus.Desc)
Describe sends descriptions of metrics.
type MetricRule ¶
type MetricRule struct { Path string `json:"Path"` PropertyRules []*PropertyRule `json:"Properties"` }
MetricRule is a set of rules of converting Redfish data for one URL path or patterned-path.
type PropertyRule ¶
type PropertyRule struct { Pointer string `json:"Pointer"` Name string `json:"Name"` Help string `json:"Help,omitempty"` Type string `json:"Type"` // contains filtered or unexported fields }
PropertyRule is a rule of converting Redfish data into a Prometheus metric.
type RuleGetter ¶
type RuleGetter func(context.Context) (*CollectRule, error)
RuleGetter is the type to obtain dynamic rules
type TraverseRule ¶
type TraverseRule struct { Root string `json:"Root"` ExcludeRules []string `json:"Excludes"` // contains filtered or unexported fields }
TraverseRule is a set of rules of traversing Redfish data.
func (TraverseRule) NeedTraverse ¶
func (tr TraverseRule) NeedTraverse(path string) bool
NeedTraverse returns whether the path need to be traverse