Requirement
...
Name | Description | |
1.0 | Support Redfish v1.0 | Make use of REST API and scheme defined in Redfish standard v1.0 |
2.0 | Configurable list of endpoints | Plugin configuration shall contain list of queries and list of services. Each query entry shall contain endpoint and list of resources to be collected. Each service entry shall contain credentials to gain access and list of queries to perform, |
3.0 | Configurable mapping of redfish sensors to collectd metrics | There shall be mapping between redfish sensors to collectd sensors as for units and types. |
4.0 | OOB monitoring | Collecting telemetry shall be performed over the network. |
5.0 | Supported metrics of redfish v1.0 | Metrics shall be supported:
|
Overview
DMTF’s Redfish is a standard API designed to deliver simple and secure management for converged, hybrid IT and the Software Defined Data Center (SDDC). Both human readable and machine capable, Redfish leverages common Internet and web services standards to expose information directly to the modern tool chain. Delivering both in‐band and out‐of‐band manageability, Redfish continues to expand to address customer use cases and technology for a holistic data center management experience.
Why Redfish?
Until Redfish, interoperable management standards were lacking for modern data center environments. As organizations shift to scale‐ out solutions, legacy standards are insufficient to successfully manage numerous simple and multi‐node servers or hybrid infrastructures. Legacy solutions has problems related to security and HW dependencies, lacking the agnostic nature thats needed for the modern datacenter.
An open industry standard specification and schema, Redfish specifies a RESTful interface and utilizes defined JSON payloads ‐ usable by existing client applications and browser‐based GUI.
Why REST, HTTP and JSON?
Combining language support with the ubiquity of REST, HTTP and JSON, Redfish enables IT management tasks to be performed using the same skill set and tool chain as other IT and dev/ops tasks.RESTful protocols are rapidly replacing SOAP as the cloud ecosystem is adopting REST, and the web API community has followed suit. RESTful protocols are much quicker to learn than SOAP, and they have the simplicity of being a data pattern (as REST is not strictly a protocol) mapped to HTTP operations directly.
...
Code Block |
---|
<Plugin redfish> <Query "fans"> Endpoint "/redfish/v1/Chassis/Chassis-1/[0]/Thermal" <Resource "Fans"> <Property "ReadingRPM"> PluginInstance "chassis-1" Type "rpm" </Property> </Resource> </Property> </Resource> </Query> <Query "temperatures"> Endpoint "/redfish/v1/Chassis/Chassis-1/[0]/Thermal" <Resource "Temperatures"> <Property "ReadingCelsius"> PluginInstance "chassis-1" Type "degrees" </Property> </Resource> </Property> </Resource> </Query> <Query "voltages"> Endpoint "/redfish/v1/Chassis/Chassis-1/[0]/Power" <Resource "Voltages"> <Property "ReadingVolts"> PluginInstance "chassis-1" Type "volts" </Property> </Resource> </Property> </Resource> </Query> <Service "local"> Host "127.0.0.1:5000" User "user" Passwd "passwd" Queries "fans" "voltages" "temperatures" </Service> </Plugin> |
Implementation details
To support the redfish based sensor monitoring, the standard redfish interfaces are used as mentioned in the DMTF. Idea is to use as much possible the standard REST API URLs to reach the sensor resources. In order to implement and utilize the redfish interfaces one must understand the concept of resource maps in DMTF redfish architecture.
...
The following table outlines the key dependencies associated with this deliverable.
Ref | Dependency | Status |
1 |
|
<Plugin redfish>
<Query "fans">
Endpoint "/Chassis[0]/Thermal"
<Resource "Fans">
<Property "ReadingRPM">
PluginInstance "chassis-1"
Type "rpm"
</Property>
</Resource>
</Query>
<Query "temperatures">
Endpoint "/Chassis[0]/Thermal"
<Resource "Temperatures">
<Property "ReadingCelsius">
PluginInstance "chassis-1"
Type "degrees"
</Property>
</Resource>
</Query>
<Query "voltages">
Endpoint "/Chassis[0]/Power"
<Resource "Voltages">
<Property "ReadingVolts">
PluginInstance "chassis-1"
Type "volts"
</Property>
</Resource>
</Query>
<Service "local">
Host "127.0.0.1:5000"
User "user"
Passwd "passwd"
Queries "fans" "voltages" "temperatures"
</Service>
</Plugin>