Refactoring for better Prometheus' logic support
1) Breaking changes! Updated collection code for proper Prometheus support - Now metrics names of all subcollectors have prefixes: nsq_topic_, nsq_channel_, nsq_client_ As a result metrics registration code now passing Prometheus' client validation, also it fixes scrape warnings - "type" label in exported metrics removed as obsolete 2) Add reset of gauges before scrape (like in haproxy-exporter) 3) Refactor: subcollectors logic is simplified, multiple collectors support removed We always use 'stats' collector so it removes unnecessary flexibility and complexity.
This commit is contained in:
@ -2,7 +2,11 @@ package collector
|
||||
|
||||
import "github.com/prometheus/client_golang/prometheus"
|
||||
|
||||
// Collector defines the interface for collecting all metrics for Prometheus.
|
||||
type Collector interface {
|
||||
Collect(out chan<- prometheus.Metric) error
|
||||
// StatsCollector defines an interface for collecting specific stats
|
||||
// from a nsqd exported stats data.
|
||||
type StatsCollector interface {
|
||||
set(s *stats)
|
||||
collect(out chan<- prometheus.Metric)
|
||||
describe(ch chan<- *prometheus.Desc)
|
||||
reset()
|
||||
}
|
||||
|
Reference in New Issue
Block a user