Skip to content

Commit ea348d7

Browse files
author
Peter Jausovec
committed
Update code based on the PR feedback
Signed-off-by: Peter Jausovec <[email protected]>
1 parent ceb8192 commit ea348d7

File tree

5 files changed

+23
-11
lines changed

5 files changed

+23
-11
lines changed

prometheus/counter.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,8 +137,7 @@ func NewCounterVec(opts CounterOpts, labelNames []string) *CounterVec {
137137
return &CounterVec{
138138
metricVec: newMetricVec(desc, func(lvs ...string) Metric {
139139
if len(lvs) != len(desc.variableLabels) {
140-
err := fmt.Errorf("%s: labels and values for '%s' don't match: labels %v, values %v", errInconsistentCardinality, desc.fqName, desc.variableLabels, lvs)
141-
panic(err)
140+
panic(makeInconsistentCardinalityError(desc.fqName, desc.variableLabels, lvs))
142141
}
143142
result := &counter{desc: desc, labelPairs: makeLabelPairs(desc, lvs)}
144143
result.init(result) // Init self-collection.

prometheus/gauge.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
package prometheus
1515

1616
import (
17-
"fmt"
1817
"math"
1918
"sync/atomic"
2019
"time"
@@ -148,8 +147,7 @@ func NewGaugeVec(opts GaugeOpts, labelNames []string) *GaugeVec {
148147
return &GaugeVec{
149148
metricVec: newMetricVec(desc, func(lvs ...string) Metric {
150149
if len(lvs) != len(desc.variableLabels) {
151-
err := fmt.Errorf("%s: labels and values for '%s' don't match: labels %v, values %v", errInconsistentCardinality, desc.fqName, desc.variableLabels, lvs)
152-
panic(err)
150+
panic(makeInconsistentCardinalityError(desc.fqName, desc.variableLabels, lvs))
153151
}
154152
result := &gauge{desc: desc, labelPairs: makeLabelPairs(desc, lvs)}
155153
result.init(result) // Init self-collection.

prometheus/histogram.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,8 +165,7 @@ func NewHistogram(opts HistogramOpts) Histogram {
165165

166166
func newHistogram(desc *Desc, opts HistogramOpts, labelValues ...string) Histogram {
167167
if len(desc.variableLabels) != len(labelValues) {
168-
err := fmt.Errorf("%s: labels and values for '%s' don't match: labels %v, values %v", errInconsistentCardinality, desc.fqName, desc.variableLabels, labelValues)
169-
panic(err)
168+
panic(makeInconsistentCardinalityError(desc.fqName, desc.variableLabels, labelValues))
170169
}
171170

172171
for _, n := range desc.variableLabels {

prometheus/labels.go

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,22 @@ const reservedLabelPrefix = "__"
3737

3838
var errInconsistentCardinality = errors.New("inconsistent label cardinality")
3939

40+
func makeInconsistentCardinalityError(fqName string, labels, labelValues []string) error {
41+
return fmt.Errorf(
42+
"%s: %q has %d variable labels named %q but %d values %q were provided",
43+
errInconsistentCardinality, fqName,
44+
len(labels), labels,
45+
len(labelValues), labelValues,
46+
)
47+
}
48+
4049
func validateValuesInLabels(labels Labels, expectedNumberOfValues int) error {
4150
if len(labels) != expectedNumberOfValues {
42-
return fmt.Errorf("%s: number of labels and values don't match: expected %d, actual %d, labels %v", errInconsistentCardinality, expectedNumberOfValues, len(labels), labels)
51+
return fmt.Errorf(
52+
"%s: expected %d label values but got %d in %#v",
53+
errInconsistentCardinality, expectedNumberOfValues,
54+
len(labels), labels,
55+
)
4356
}
4457

4558
for name, val := range labels {
@@ -53,7 +66,11 @@ func validateValuesInLabels(labels Labels, expectedNumberOfValues int) error {
5366

5467
func validateLabelValues(vals []string, expectedNumberOfValues int) error {
5568
if len(vals) != expectedNumberOfValues {
56-
return errInconsistentCardinality
69+
return fmt.Errorf(
70+
"%s: expected %d label values but got %d in %#v",
71+
errInconsistentCardinality, expectedNumberOfValues,
72+
len(vals), vals,
73+
)
5774
}
5875

5976
for _, val := range vals {

prometheus/summary.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -181,8 +181,7 @@ func NewSummary(opts SummaryOpts) Summary {
181181

182182
func newSummary(desc *Desc, opts SummaryOpts, labelValues ...string) Summary {
183183
if len(desc.variableLabels) != len(labelValues) {
184-
err := fmt.Errorf("%s: labels and values for '%s' don't match: labels %v, values %v", errInconsistentCardinality, desc.fqName, desc.variableLabels, labelValues)
185-
panic(err)
184+
panic(makeInconsistentCardinalityError(desc.fqName, desc.variableLabels, labelValues))
186185
}
187186

188187
for _, n := range desc.variableLabels {

0 commit comments

Comments
 (0)