MCPcopy
hub / github.com/prometheus/client_golang / writeMetrics

Function writeMetrics

prometheus/graphite/bridge.go:190–222  ·  view source on GitHub ↗
(w io.Writer, mfs []*dto.MetricFamily, useTags bool, prefix string, now model.Time)

Source from the content-addressed store, hash-verified

188}
189
190func writeMetrics(w io.Writer, mfs []*dto.MetricFamily, useTags bool, prefix string, now model.Time) error {
191 vec, err := expfmt.ExtractSamples(&expfmt.DecodeOptions{
192 Timestamp: now,
193 }, mfs...)
194 if err != nil {
195 return err
196 }
197
198 buf := bufio.NewWriter(w)
199 for _, s := range vec {
200 if prefix != "" {
201 for _, c := range prefix {
202 if _, err := buf.WriteRune(c); err != nil {
203 return err
204 }
205 }
206 if err := buf.WriteByte('.'); err != nil {
207 return err
208 }
209 }
210 if err := writeMetric(buf, s.Metric, useTags); err != nil {
211 return err
212 }
213 if _, err := fmt.Fprintf(buf, " %g %d\n", s.Value, int64(s.Timestamp)/millisecondsPerSecond); err != nil {
214 return err
215 }
216 if err := buf.Flush(); err != nil {
217 return err
218 }
219 }
220
221 return nil
222}
223
224func writeMetric(buf *bufio.Writer, m model.Metric, useTags bool) error {
225 metricName, hasName := m[model.MetricNameLabel]

Callers 4

PushMethod · 0.85
testWriteSummaryFunction · 0.85
testWriteHistogramFunction · 0.85
testToReaderFunction · 0.85

Calls 2

writeMetricFunction · 0.85
FlushMethod · 0.45

Tested by 3

testWriteSummaryFunction · 0.68
testWriteHistogramFunction · 0.68
testToReaderFunction · 0.68