MCPcopy
hub / github.com/prometheus/prometheus / TestRecord_EncodeDecode

Function TestRecord_EncodeDecode

tsdb/record/record_test.go:35–399  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

33)
34
35func TestRecord_EncodeDecode(t *testing.T) {
36 var enc Encoder
37 dec := NewDecoder(labels.NewSymbolTable(), promslog.NewNopLogger())
38
39 series := []RefSeries{
40 {
41 Ref: 100,
42 Labels: labels.FromStrings("abc", "def", "123", "456"),
43 }, {
44 Ref: 1,
45 Labels: labels.FromStrings("abc", "def2", "1234", "4567"),
46 }, {
47 Ref: 435245,
48 Labels: labels.FromStrings("xyz", "def", "foo", "bar"),
49 },
50 }
51 decSeries, err := dec.Series(enc.Series(series, nil), nil)
52 require.NoError(t, err)
53 testutil.RequireEqual(t, series, decSeries)
54
55 metadata := []RefMetadata{
56 {
57 Ref: 100,
58 Type: uint8(Counter),
59 Unit: "",
60 Help: "some magic counter",
61 },
62 {
63 Ref: 1,
64 Type: uint8(Counter),
65 Unit: "seconds",
66 Help: "CPU time counter",
67 },
68 {
69 Ref: 147741,
70 Type: uint8(Gauge),
71 Unit: "percentage",
72 Help: "current memory usage",
73 },
74 }
75 decMetadata, err := dec.Metadata(enc.Metadata(metadata, nil), nil)
76 require.NoError(t, err)
77 require.Equal(t, metadata, decMetadata)
78
79 // Without ST.
80 samples := []RefSample{
81 {Ref: 0, T: 12423423, V: 1.2345},
82 {Ref: 123, T: -1231, V: -123},
83 {Ref: 2, T: 0, V: 99999},
84 }
85 encoded := enc.Samples(samples, nil)
86 require.Equal(t, Samples, dec.Type(encoded))
87 decSamples, err := dec.Samples(encoded, nil)
88 require.NoError(t, err)
89 require.Equal(t, samples, decSamples)
90
91 enc = Encoder{EnableSTStorage: true}
92 // Without ST again, but with V1 encoder that enables SamplesV2.

Callers

nothing calls this directly

Calls 15

SeriesMethod · 0.95
SeriesMethod · 0.95
MetadataMethod · 0.95
MetadataMethod · 0.95
SamplesMethod · 0.95
TypeMethod · 0.95
SamplesMethod · 0.95
TombstonesMethod · 0.95
TombstonesMethod · 0.95
ExemplarsMethod · 0.95
ExemplarsMethod · 0.95
HistogramSamplesMethod · 0.95

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…