[#80] metrics: Use map for constant labels
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
This commit is contained in:
parent
c154f934e4
commit
1cbc7f323f
1 changed files with 9 additions and 22 deletions
|
@ -140,22 +140,17 @@ type Description struct {
|
||||||
Subsystem string
|
Subsystem string
|
||||||
Name string
|
Name string
|
||||||
Help string
|
Help string
|
||||||
ConstantLabels []KeyValue
|
ConstantLabels prometheus.Labels
|
||||||
VariableLabels []string
|
VariableLabels []string
|
||||||
}
|
}
|
||||||
|
|
||||||
type KeyValue struct {
|
|
||||||
Key string `json:"key"`
|
|
||||||
Value string `json:"value"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (d *Description) MarshalJSON() ([]byte, error) {
|
func (d *Description) MarshalJSON() ([]byte, error) {
|
||||||
return json.Marshal(&struct {
|
return json.Marshal(&struct {
|
||||||
Type string `json:"type"`
|
Type string `json:"type"`
|
||||||
FQName string `json:"name"`
|
FQName string `json:"name"`
|
||||||
Help string `json:"help"`
|
Help string `json:"help"`
|
||||||
ConstantLabels []KeyValue `json:"constant_labels"`
|
ConstantLabels prometheus.Labels `json:"constant_labels,omitempty"`
|
||||||
VariableLabels []string `json:"variable_labels"`
|
VariableLabels []string `json:"variable_labels,omitempty"`
|
||||||
}{
|
}{
|
||||||
Type: d.Type.String(),
|
Type: d.Type.String(),
|
||||||
FQName: d.BuildFQName(),
|
FQName: d.BuildFQName(),
|
||||||
|
@ -169,14 +164,6 @@ func (d *Description) BuildFQName() string {
|
||||||
return prometheus.BuildFQName(d.Namespace, d.Subsystem, d.Name)
|
return prometheus.BuildFQName(d.Namespace, d.Subsystem, d.Name)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Description) ConstLabelsMap() map[string]string {
|
|
||||||
constsLabels := make(map[string]string, len(d.ConstantLabels))
|
|
||||||
for _, kv := range d.ConstantLabels {
|
|
||||||
constsLabels[kv.Key] = kv.Value
|
|
||||||
}
|
|
||||||
return constsLabels
|
|
||||||
}
|
|
||||||
|
|
||||||
// DescribeAll returns descriptions for metrics.
|
// DescribeAll returns descriptions for metrics.
|
||||||
func DescribeAll() []Description {
|
func DescribeAll() []Description {
|
||||||
var list []Description
|
var list []Description
|
||||||
|
@ -195,7 +182,7 @@ func newOpts(description Description) prometheus.Opts {
|
||||||
Subsystem: description.Subsystem,
|
Subsystem: description.Subsystem,
|
||||||
Name: description.Name,
|
Name: description.Name,
|
||||||
Help: description.Help,
|
Help: description.Help,
|
||||||
ConstLabels: description.ConstLabelsMap(),
|
ConstLabels: description.ConstantLabels,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -204,7 +191,7 @@ func newDesc(description Description) *prometheus.Desc {
|
||||||
description.BuildFQName(),
|
description.BuildFQName(),
|
||||||
description.Help,
|
description.Help,
|
||||||
description.VariableLabels,
|
description.VariableLabels,
|
||||||
description.ConstLabelsMap())
|
description.ConstantLabels)
|
||||||
}
|
}
|
||||||
|
|
||||||
func mustNewGauge(description Description) prometheus.Gauge {
|
func mustNewGauge(description Description) prometheus.Gauge {
|
||||||
|
@ -237,7 +224,7 @@ func mustNewHistogramVec(description Description, buckets []float64) *prometheus
|
||||||
Subsystem: description.Subsystem,
|
Subsystem: description.Subsystem,
|
||||||
Name: description.Name,
|
Name: description.Name,
|
||||||
Help: description.Name,
|
Help: description.Name,
|
||||||
ConstLabels: description.ConstLabelsMap(),
|
ConstLabels: description.ConstantLabels,
|
||||||
Buckets: buckets,
|
Buckets: buckets,
|
||||||
},
|
},
|
||||||
description.VariableLabels,
|
description.VariableLabels,
|
||||||
|
|
Loading…
Reference in a new issue