mirror of
https://github.com/prometheus/node_exporter.git
synced 2024-11-25 14:27:21 +01:00
1c17481a42
Switch to Update using the Collecter Collect interface, due to not knowing all metricnames in all modules beforehand we can't use Describe and thus the full Collecter interface. Remove 'updates', it's meaning varies by module and doesn't add much.
28 lines
884 B
Go
28 lines
884 B
Go
// Exporter is a prometheus exporter using multiple Factories to collect and export system metrics.
|
|
package collector
|
|
|
|
import (
|
|
"github.com/prometheus/client_golang/prometheus"
|
|
)
|
|
|
|
const Namespace = "node"
|
|
|
|
var Factories = make(map[string]func(Config) (Collector, error))
|
|
|
|
// Interface a collector has to implement.
|
|
type Collector interface {
|
|
// Get new metrics and expose them via prometheus registry.
|
|
Update(ch chan<- prometheus.Metric) (err error)
|
|
}
|
|
|
|
// TODO: Instead of periodically call Update, a Collector could be implemented
|
|
// as a real prometheus.Collector that only gathers metrics when
|
|
// scraped. (However, for metric gathering that takes very long, it might
|
|
// actually be better to do them proactively before scraping to minimize scrape
|
|
// time.)
|
|
|
|
type Config struct {
|
|
Config map[string]string `json:"config"`
|
|
Attributes map[string]string `json:"attributes"`
|
|
}
|