(t *testing.T, m prometheus.Metric)
| 224 | } |
| 225 | |
| 226 | func prometheusMetricToString(t *testing.T, m prometheus.Metric) string { |
| 227 | var sb strings.Builder |
| 228 | |
| 229 | desc := m.Desc() |
| 230 | _, _ = sb.WriteString(desc.String()) |
| 231 | _ = sb.WriteByte('|') |
| 232 | |
| 233 | var d dto.Metric |
| 234 | err := m.Write(&d) |
| 235 | assert.NoError(t, err) |
| 236 | dtoLabels := asMetricAgentLabels(d.GetLabel()) |
| 237 | sort.Slice(dtoLabels, func(i, j int) bool { |
| 238 | return dtoLabels[i].Name < dtoLabels[j].Name |
| 239 | }) |
| 240 | |
| 241 | for _, dtoLabel := range dtoLabels { |
| 242 | if dtoLabel.Value == "" { |
| 243 | continue |
| 244 | } |
| 245 | _, _ = sb.WriteString(dtoLabel.Name) |
| 246 | _ = sb.WriteByte('=') |
| 247 | _, _ = sb.WriteString(prometheusmetrics.MetricLabelValueEncoder.Replace(dtoLabel.Value)) |
| 248 | } |
| 249 | return strings.TrimRight(sb.String(), ",") |
| 250 | } |
| 251 | |
| 252 | func asMetricAgentLabels(dtoLabels []*dto.LabelPair) []*agentproto.Stats_Metric_Label { |
| 253 | metricLabels := make([]*agentproto.Stats_Metric_Label, 0, len(dtoLabels)) |
no test coverage detected