diff --git a/metrics/desc.go b/metrics/desc.go index 65b47d2..f2ff4f4 100644 --- a/metrics/desc.go +++ b/metrics/desc.go @@ -74,22 +74,17 @@ type Description struct { Subsystem string Name string Help string - ConstantLabels []KeyValue + ConstantLabels prometheus.Labels VariableLabels []string } -type KeyValue struct { - Key string `json:"key"` - Value string `json:"value"` -} - func (d *Description) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { - Type string `json:"type"` - FQName string `json:"name"` - Help string `json:"help"` - ConstantLabels []KeyValue `json:"constant_labels"` - VariableLabels []string `json:"variable_labels"` + Type string `json:"type"` + FQName string `json:"name"` + Help string `json:"help"` + ConstantLabels prometheus.Labels `json:"constant_labels,omitempty"` + VariableLabels []string `json:"variable_labels,omitempty"` }{ Type: d.Type.String(), FQName: d.BuildFQName(), @@ -103,14 +98,6 @@ func (d *Description) BuildFQName() string { 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. func DescribeAll() []Description { var list []Description @@ -129,7 +116,7 @@ func newOpts(description Description) prometheus.Opts { Subsystem: description.Subsystem, Name: description.Name, Help: description.Help, - ConstLabels: description.ConstLabelsMap(), + ConstLabels: description.ConstantLabels, } }