fix bug with build metrics name (#165)
All checks were successful
coverage / build (push) Successful in 2m26s
sync / sync (push) Successful in 1m53s
test / test (push) Successful in 4m24s

This commit is contained in:
2025-05-16 14:53:41 +05:00
committed by GitHub
parent cf310138cb
commit 7a656210f7

View File

@@ -5,6 +5,7 @@ import (
"hash/fnv" "hash/fnv"
"io" "io"
"regexp" "regexp"
"strings"
"sync" "sync"
"time" "time"
@@ -60,6 +61,15 @@ func newString(v string) *string {
return &nv return &nv
} }
func newName(name string) *string {
idx := strings.Index(name, "{")
if idx <= 0 {
return newString(name)
}
return newString(name[:idx])
}
func NewMeter(opts ...meter.Option) *prometheusMeter { func NewMeter(opts ...meter.Option) *prometheusMeter {
return &prometheusMeter{ return &prometheusMeter{
set: prometheus.NewRegistry(), // prometheus.DefaultRegisterer, set: prometheus.NewRegistry(), // prometheus.DefaultRegisterer,
@@ -272,7 +282,7 @@ func (m *prometheusMeter) Write(w io.Writer, opts ...meter.Option) error {
for name, metrics := range m.counter { for name, metrics := range m.counter {
mf := &dto.MetricFamily{ mf := &dto.MetricFamily{
Name: newString(name), Name: newName(name),
Type: dto.MetricType_GAUGE.Enum(), Type: dto.MetricType_GAUGE.Enum(),
Metric: make([]*dto.Metric, 0, len(metrics.cs)), Metric: make([]*dto.Metric, 0, len(metrics.cs)),
} }
@@ -287,7 +297,7 @@ func (m *prometheusMeter) Write(w io.Writer, opts ...meter.Option) error {
for name, metrics := range m.gauge { for name, metrics := range m.gauge {
mf := &dto.MetricFamily{ mf := &dto.MetricFamily{
Name: newString(name), Name: newName(name),
Type: dto.MetricType_GAUGE.Enum(), Type: dto.MetricType_GAUGE.Enum(),
Metric: make([]*dto.Metric, 0, len(metrics.cs)), Metric: make([]*dto.Metric, 0, len(metrics.cs)),
} }
@@ -302,7 +312,7 @@ func (m *prometheusMeter) Write(w io.Writer, opts ...meter.Option) error {
for name, metrics := range m.floatCounter { for name, metrics := range m.floatCounter {
mf := &dto.MetricFamily{ mf := &dto.MetricFamily{
Name: newString(name), Name: newName(name),
Type: dto.MetricType_GAUGE.Enum(), Type: dto.MetricType_GAUGE.Enum(),
Metric: make([]*dto.Metric, 0, len(metrics.cs)), Metric: make([]*dto.Metric, 0, len(metrics.cs)),
} }
@@ -317,7 +327,7 @@ func (m *prometheusMeter) Write(w io.Writer, opts ...meter.Option) error {
for name, metrics := range m.histogram { for name, metrics := range m.histogram {
mf := &dto.MetricFamily{ mf := &dto.MetricFamily{
Name: newString(name), Name: newName(name),
Type: dto.MetricType_HISTOGRAM.Enum(), Type: dto.MetricType_HISTOGRAM.Enum(),
Metric: make([]*dto.Metric, 0, len(metrics.cs)), Metric: make([]*dto.Metric, 0, len(metrics.cs)),
} }
@@ -332,7 +342,7 @@ func (m *prometheusMeter) Write(w io.Writer, opts ...meter.Option) error {
for name, metrics := range m.summary { for name, metrics := range m.summary {
mf := &dto.MetricFamily{ mf := &dto.MetricFamily{
Name: newString(name), Name: newName(name),
Type: dto.MetricType_SUMMARY.Enum(), Type: dto.MetricType_SUMMARY.Enum(),
Metric: make([]*dto.Metric, 0, len(metrics.cs)), Metric: make([]*dto.Metric, 0, len(metrics.cs)),
} }