go-metrics_prometheus-fix_Observer
authorDmitry Smirnov <onlyjob@debian.org>
Sun, 16 Sep 2018 03:21:33 +0000 (04:21 +0100)
committerDmitry Smirnov <onlyjob@debian.org>
Sun, 16 Sep 2018 03:21:33 +0000 (04:21 +0100)
Gbp-Pq: Name go-metrics_prometheus-fix_Observer.patch

go-metrics/timer.go

index e91eca76bd985e5de69775b233d090867915deda..2529e092c52ee24fa25eead957fc97949baa4d03 100644 (file)
@@ -48,7 +48,7 @@ func (lt *labeledTimer) Collect(c chan<- prometheus.Metric) {
 }
 
 type timer struct {
-       m prometheus.Histogram
+       m prometheus.Observer
 }
 
 func (t *timer) Update(duration time.Duration) {
@@ -60,9 +60,14 @@ func (t *timer) UpdateSince(since time.Time) {
 }
 
 func (t *timer) Describe(c chan<- *prometheus.Desc) {
-       t.m.Describe(c)
+       c <- t.m.(prometheus.Metric).Desc()
 }
 
 func (t *timer) Collect(c chan<- prometheus.Metric) {
-       t.m.Collect(c)
+       // Are there any observers that don't implement Collector? It is really
+       // unclear what the point of the upstream change was, but we'll let this
+       // panic if we get an observer that doesn't implement collector. In this
+       // case, we should almost always see metricVec objects, so this should
+       // never panic.
+       t.m.(prometheus.Collector).Collect(c)
 }