removes not needed metrics when error
This commit is contained in:
parent
b206c08506
commit
66e056c44e
@ -38,8 +38,9 @@ func (m *Metrics) Update() error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
m.Errors.Inc()
|
m.Errors.Inc()
|
||||||
|
|
||||||
for _, i := range m.Metrics {
|
for k, v := range m.Metrics {
|
||||||
prometheus.Unregister(i.Gauge)
|
prometheus.Unregister(v.Gauge)
|
||||||
|
delete(m.Metrics, k)
|
||||||
}
|
}
|
||||||
|
|
||||||
return err
|
return err
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
package jitsiexporter
|
package jitsiexporter
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"errors"
|
||||||
|
"fmt"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
@ -32,3 +34,31 @@ func TestUpdate(t *testing.T) {
|
|||||||
assert.Equal(m.Metrics["jitsi_bar"], Metric{Name: "", Gauge: prometheus.Gauge(nil)})
|
assert.Equal(m.Metrics["jitsi_bar"], Metric{Name: "", Gauge: prometheus.Gauge(nil)})
|
||||||
assert.Equal(len(m.Metrics), 1)
|
assert.Equal(len(m.Metrics), 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestUpdateOnError(t *testing.T) {
|
||||||
|
assert := assert.New(t)
|
||||||
|
|
||||||
|
mockStater := &MockStater{}
|
||||||
|
mockStater.On("Now", "http://foo.tld").Return(nil, errors.New("something went foo"))
|
||||||
|
|
||||||
|
e := prometheus.NewCounter(prometheus.CounterOpts{Name: "jitsi_fetch_errors"})
|
||||||
|
metricsMap := make(map[string]Metric)
|
||||||
|
metricsMap["testmetric"] = Metric{
|
||||||
|
Name: "testmetric",
|
||||||
|
Gauge: prometheus.NewGauge(prometheus.GaugeOpts{Name: "jitsi_testmetric"}),
|
||||||
|
}
|
||||||
|
m := &Metrics{
|
||||||
|
URL: "http://foo.tld",
|
||||||
|
Metrics: metricsMap,
|
||||||
|
Stater: mockStater,
|
||||||
|
Errors: e,
|
||||||
|
}
|
||||||
|
|
||||||
|
assert.Equal(1, len(m.Metrics))
|
||||||
|
|
||||||
|
err := m.Update()
|
||||||
|
fmt.Println(err)
|
||||||
|
assert.NotEmpty(err)
|
||||||
|
|
||||||
|
assert.Equal(0, len(m.Metrics))
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user