MCPcopy Create free account
hub / github.com/prometheus/common / Decode

Method Decode

expfmt/decode.go:158–178  ·  view source on GitHub ↗

Decode implements the Decoder interface.

(v *dto.MetricFamily)

Source from the content-addressed store, hash-verified

156
157// Decode implements the Decoder interface.
158func (d *textDecoder) Decode(v *dto.MetricFamily) error {
159 if d.err == nil {
160 // Read all metrics in one shot.
161 p := NewTextParser(d.s)
162 d.fams, d.err = p.TextToMetricFamilies(d.r)
163 // If we don't get an error, store io.EOF for the end.
164 if d.err == nil {
165 d.err = io.EOF
166 }
167 }
168 // Pick off one MetricFamily per Decode until there's nothing left.
169 for key, fam := range d.fams {
170 v.Name = fam.Name
171 v.Help = fam.Help
172 v.Type = fam.Type
173 v.Metric = fam.Metric
174 delete(d.fams, key)
175 return nil
176 }
177 return d.err
178}
179
180// SampleDecoder wraps a Decoder to extract samples from the metric families
181// decoded by the wrapped Decoder.

Callers

nothing calls this directly

Calls 2

TextToMetricFamiliesMethod · 0.95
NewTextParserFunction · 0.85

Tested by

no test coverage detected