Merge pull request #40 from unistack-org/multifix
fix panic in multiple metrics with the same name and different labels
This commit was merged in pull request #40.
	This commit is contained in:
		| @@ -103,10 +103,10 @@ func (m *prometheusMeter) Counter(name string, labels ...string) meter.Counter { | ||||
| 	m.Lock() | ||||
| 	defer m.Unlock() | ||||
|  | ||||
| 	nm := m.buildMetric(name, labels...) | ||||
| 	nm := m.buildName(name) | ||||
| 	c, ok := m.counter[nm] | ||||
| 	if !ok { | ||||
| 		nc := prometheus.NewGauge(prometheus.GaugeOpts{Name: m.buildName(name), ConstLabels: m.mapLabels(labels...)}) | ||||
| 		nc := prometheus.NewGauge(prometheus.GaugeOpts{Name: nm, ConstLabels: m.mapLabels(labels...)}) | ||||
| 		m.set.MustRegister(nc) | ||||
| 		c = prometheusCounter{c: nc} | ||||
| 		m.counter[nm] = c | ||||
| @@ -119,10 +119,10 @@ func (m *prometheusMeter) FloatCounter(name string, labels ...string) meter.Floa | ||||
| 	m.Lock() | ||||
| 	defer m.Unlock() | ||||
|  | ||||
| 	nm := m.buildMetric(name, labels...) | ||||
| 	nm := m.buildName(name) | ||||
| 	c, ok := m.floatCounter[nm] | ||||
| 	if !ok { | ||||
| 		nc := prometheus.NewGauge(prometheus.GaugeOpts{Name: m.buildName(name), ConstLabels: m.mapLabels(labels...)}) | ||||
| 		nc := prometheus.NewGauge(prometheus.GaugeOpts{Name: nm, ConstLabels: m.mapLabels(labels...)}) | ||||
| 		m.set.MustRegister(nc) | ||||
| 		c = prometheusFloatCounter{c: nc} | ||||
| 		m.floatCounter[nm] = c | ||||
| @@ -135,10 +135,10 @@ func (m *prometheusMeter) Gauge(name string, fn func() float64, labels ...string | ||||
| 	m.Lock() | ||||
| 	defer m.Unlock() | ||||
|  | ||||
| 	nm := m.buildMetric(name, labels...) | ||||
| 	nm := m.buildName(name) | ||||
| 	c, ok := m.gauge[nm] | ||||
| 	if !ok { | ||||
| 		nc := prometheus.NewGauge(prometheus.GaugeOpts{Name: m.buildName(name), ConstLabels: m.mapLabels(labels...)}) | ||||
| 		nc := prometheus.NewGauge(prometheus.GaugeOpts{Name: nm, ConstLabels: m.mapLabels(labels...)}) | ||||
| 		m.set.MustRegister(nc) | ||||
| 		c = prometheusGauge{c: nc} | ||||
| 		m.gauge[nm] = c | ||||
| @@ -151,10 +151,10 @@ func (m *prometheusMeter) Histogram(name string, labels ...string) meter.Histogr | ||||
| 	m.Lock() | ||||
| 	defer m.Unlock() | ||||
|  | ||||
| 	nm := m.buildMetric(name, labels...) | ||||
| 	nm := m.buildName(name) | ||||
| 	c, ok := m.histogram[nm] | ||||
| 	if !ok { | ||||
| 		nc := prometheus.NewHistogram(prometheus.HistogramOpts{Name: m.buildName(name), ConstLabels: m.mapLabels(labels...)}) | ||||
| 		nc := prometheus.NewHistogram(prometheus.HistogramOpts{Name: nm, ConstLabels: m.mapLabels(labels...)}) | ||||
| 		m.set.MustRegister(nc) | ||||
| 		c = prometheusHistogram{c: nc} | ||||
| 		m.histogram[nm] = c | ||||
| @@ -167,10 +167,10 @@ func (m *prometheusMeter) Summary(name string, labels ...string) meter.Summary { | ||||
| 	m.Lock() | ||||
| 	defer m.Unlock() | ||||
|  | ||||
| 	nm := m.buildMetric(name, labels...) | ||||
| 	nm := m.buildName(name) | ||||
| 	c, ok := m.summary[nm] | ||||
| 	if !ok { | ||||
| 		nc := prometheus.NewSummary(prometheus.SummaryOpts{Name: m.buildName(name), ConstLabels: m.mapLabels(labels...)}) | ||||
| 		nc := prometheus.NewSummary(prometheus.SummaryOpts{Name: nm, ConstLabels: m.mapLabels(labels...)}) | ||||
| 		m.set.MustRegister(nc) | ||||
| 		c = prometheusSummary{c: nc} | ||||
| 		m.summary[nm] = c | ||||
| @@ -183,11 +183,11 @@ func (m *prometheusMeter) SummaryExt(name string, window time.Duration, quantile | ||||
| 	m.Lock() | ||||
| 	defer m.Unlock() | ||||
|  | ||||
| 	nm := m.buildMetric(name, labels...) | ||||
| 	nm := m.buildName(name) | ||||
| 	c, ok := m.summary[nm] | ||||
| 	if !ok { | ||||
| 		nc := prometheus.NewSummary(prometheus.SummaryOpts{ | ||||
| 			Name:        m.buildName(name), | ||||
| 			Name:        nm, | ||||
| 			ConstLabels: m.mapLabels(labels...), | ||||
| 			MaxAge:      window, | ||||
| 			Objectives:  map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.99: 0.001}, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user