diff --git a/extra/redisotel/metrics.go b/extra/redisotel/metrics.go index 915838f3..2778c7bc 100644 --- a/extra/redisotel/metrics.go +++ b/extra/redisotel/metrics.go @@ -83,9 +83,9 @@ func InstrumentMetrics(rdb redis.UniversalClient, opts ...MetricsOption) error { } func reportPoolStats(rdb *redis.Client, conf *config) error { - labels := conf.attrs - idleAttrs := append(labels, attribute.String("state", "idle")) - usedAttrs := append(labels, attribute.String("state", "used")) + poolAttrs := attribute.NewSet(conf.attrs...) + idleAttrs := attribute.NewSet(append(poolAttrs.ToSlice(), attribute.String("state", "idle"))...) + usedAttrs := attribute.NewSet(append(poolAttrs.ToSlice(), attribute.String("state", "used"))...) idleMax, err := conf.meter.Int64ObservableUpDownCounter( "db.client.connections.idle.max", @@ -132,14 +132,14 @@ func reportPoolStats(rdb *redis.Client, conf *config) error { func(ctx context.Context, o metric.Observer) error { stats := rdb.PoolStats() - o.ObserveInt64(idleMax, int64(redisConf.MaxIdleConns), metric.WithAttributes(labels...)) - o.ObserveInt64(idleMin, int64(redisConf.MinIdleConns), metric.WithAttributes(labels...)) - o.ObserveInt64(connsMax, int64(redisConf.PoolSize), metric.WithAttributes(labels...)) + o.ObserveInt64(idleMax, int64(redisConf.MaxIdleConns), metric.WithAttributeSet(poolAttrs)) + o.ObserveInt64(idleMin, int64(redisConf.MinIdleConns), metric.WithAttributeSet(poolAttrs)) + o.ObserveInt64(connsMax, int64(redisConf.PoolSize), metric.WithAttributeSet(poolAttrs)) - o.ObserveInt64(usage, int64(stats.IdleConns), metric.WithAttributes(idleAttrs...)) - o.ObserveInt64(usage, int64(stats.TotalConns-stats.IdleConns), metric.WithAttributes(usedAttrs...)) + o.ObserveInt64(usage, int64(stats.IdleConns), metric.WithAttributeSet(idleAttrs)) + o.ObserveInt64(usage, int64(stats.TotalConns-stats.IdleConns), metric.WithAttributeSet(usedAttrs)) - o.ObserveInt64(timeouts, int64(stats.Timeouts), metric.WithAttributes(labels...)) + o.ObserveInt64(timeouts, int64(stats.Timeouts), metric.WithAttributeSet(poolAttrs)) return nil }, idleMax,