Dell Hardware components Exporter

691 views
Skip to first unread message

Julien D.

unread,
Mar 27, 2016, 10:50:19 AM3/27/16
to Prometheus Developers
Hello list,

I wrote an exporter exposing Dell hardware components status and metrics.
It uses Dell OMSA omreport utility and parses its output to fetch metrics about :

- chassis status
- storage enclosure
- storage battery
- storage controller
- storage raid arrays
- storage physical disks
- memory
- power supplies
- processors
- fans
- voltage
- temperatures.

To parse omreport output I used functions written in scollector for bosun (http://bosun.org/scollector/)
At first I wanted to cache metrics and run checks asynchronously, but omreport is quite fast so the collector can run every check one by one very smoothly.

I would be glad to receive comments on the exporter. Please let me know if I didn't follow Prometheus good practices.

Regards,

Julien.

Julien D.

unread,
Mar 27, 2016, 10:53:20 AM3/27/16
to Prometheus Developers
Aaaand  here is the link : https://github.com/prfalken/dellhw_exporter

Brian Brazil

unread,
Mar 27, 2016, 12:10:10 PM3/27/16
to Julien D., Prometheus Developers
On 27 March 2016 at 15:53, Julien D. <julien...@gmail.com> wrote:
Aaaand  here is the link : https://github.com/prfalken/dellhw_exporter

From a quick look
- The GetFQDN function isn't used
- "id" and "name" aren't usually useful labelnames, use labels like "enclosure", "disk" or "probe" which give more information.
- You should use ConstMetrics rather than reusing metrics across scrapes.

Considering what this is doing, I'd also look at this being run as a cronjob that outputs to the node exporter textfile collector rather than a standalone exporter.

Brian
 

--
You received this message because you are subscribed to the Google Groups "Prometheus Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to prometheus-devel...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--

Filippo Giunchedi

unread,
Mar 27, 2016, 12:19:55 PM3/27/16
to Brian Brazil, Julien D., Prometheus Developers

On Sun, Mar 27, 2016 at 5:10 PM, Brian Brazil <brian....@robustperception.io> wrote:
Considering what this is doing, I'd also look at this being run as a cronjob that outputs to the node exporter textfile collector rather than a standalone exporter.

If one chooses to go down the cronjob path, would it still be named an exporter? I'm asking because I'd be interested in it and how to find similar ones (IOW "metrics to stdout")

Ben Kochie

unread,
Mar 27, 2016, 12:22:01 PM3/27/16
to Filippo Giunchedi, Prometheus Developers, Julien D., Brian Brazil

It wouldn't be an exporter, but we are planning to add a contrib/helper section to the node_exporter codebase.

--

Julien D.

unread,
Mar 27, 2016, 12:26:48 PM3/27/16
to Prometheus Developers, julien...@gmail.com
- The GetFQDN function isn't used

Right. This was used in an earlier version for zabbix integration. thank you !
 
- "id" and "name" aren't usually useful labelnames, use labels like "enclosure", "disk" or "probe" which give more information.

Sure, I'm going to find more meaningful label names.
 
Considering what this is doing, I'd also look at this being run as a cronjob that outputs to the node exporter textfile collector rather than a standalone exporter.

My first idea was to run collectors in goroutines less frequently than prometheus' default of 10s. Then I would cache the metrics and serve them fast when prometheus comes and scrape the exporter. What do you think ?

Brian Brazil

unread,
Mar 27, 2016, 12:31:54 PM3/27/16
to Julien D., Prometheus Developers
I'd avoid adding the complexity for something like this, as it'll cause problems. The general advice is to only consider caching if collecting the data takes more than a minute (SEE https://docs.google.com/document/d/1JapuiRbp-XoyECgl2lPdxITrhm5IyCUq9iA_h6jp3OY/edit#heading=h.4gibf9555ia4).

A cronjob once a minute or so would probably serve better here.

--
Reply all
Reply to author
Forward
0 new messages