jenningsloy318 / redfish_exporter

exporter to get metrics from redfish based hardware such as lenovo/dell/superc servers
Apache License 2.0
70 stars 61 forks source link

Unable to fetch all the HW monitoring data like Storage, RAID, HDD, Drive slot, BIOS info etc.. #37

Closed deepankersharmaa closed 1 year ago

deepankersharmaa commented 2 years ago

i am using this redfish exporter to fetch monitoring metrics from Supermicro Machines here i am getting few of the metrics but unable to fetch most of the important monitoring metrics like Storage, RAID, HDD, Drive slot, BIOS info etc.. or further more detailed metrics related to Hardware. can you please suggest some way to get metrics for these items also.

Please find the attached metric i am able to fetch only. Redfish-EXP_on_Supermicro-HW.txt

jenningsloy318 commented 2 years ago

some of missing metrics you mentioned are not implemented, so there is no metrics available. Currently I don't have enough time to add more metrics, but if you are willing to, you can contribute to this project.

you can go through the code, and see what is missing.

deepankersharmaa commented 2 years ago

Hi @jenningsloy318 Thanks for your prompt response. Im no good in Go language and hardly know about that but as far as i gone through the code in "redfish_exporter/collector/system_collector.go" file, As per my understanding you have implemented the metrics for below items. and similarly in other three collector.go files. but for few of the i am not getting any metrics like Storage, drive, volume and raid etc.

/ SystemSubsystem is the system subsystem var ( SystemSubsystem = "system" SystemLabelNames = []string{"hostname", "resource", "system_id"} SystemMemoryLabelNames = []string{"hostname", "resource", "memory", "memory_id"} SystemProcessorLabelNames = []string{"hostname", "resource", "processor", "processor_id"} SystemVolumeLabelNames = []string{"hostname", "resource", "volume", "volume_id"} SystemDriveLabelNames = []string{"hostname", "resource", "drive", "drive_id"} SystemStorageControllerLabelNames = []string{"hostname", "resource", "storage_controller", "storage_controller_id"} SystemPCIeDeviceLabelNames = []string{"hostname", "resource", "pcie_device", "pcie_device_id"} SystemNetworkInterfaceLabelNames = []string{"hostname", "resource", "network_interface", "network_interface_id"} SystemEthernetInterfaceLabelNames = []string{"hostname", "resource", "ethernet_interface", "ethernet_interface_id", "ethernet_interface_speed"} systemMetrics = map[string]systemMetric{

or It would be very help full if you share some code info like how things work in your code so that i can check do changes at my end.

jenningsloy318 commented 2 years ago

if this is the case, it should the problem of redfish specification implementation of your sever, your server maight not fully implement the redfish specification, you can try to consult with your vender and ask them about this.

you can also check the redfish specification and also get the real output via api call to your server and see what's the difference.

and you can also post the outputs here in json format, let us confirm this point.

deepankersharmaa commented 2 years ago

Hi jenningsloy318, Thank you so much for the support. I have confirmed with Supermicro support team we need TAC a lightweight daemon that collects system usage information at the OS level and provides to BMC/IPMI to be installed on Target machine OS. will check the same and get back to with outputs.