MCPcopy Index your code
hub / github.com/cloudflare/ebpf_exporter / decode

Method decode

decoder/decoder.go:74–98  ·  view source on GitHub ↗

decode transforms input byte field into a string according to configuration

(in []byte, label config.Label)

Source from the content-addressed store, hash-verified

72
73// decode transforms input byte field into a string according to configuration
74func (s *Set) decode(in []byte, label config.Label) ([]byte, error) {
75 result := in
76
77 for _, decoder := range label.Decoders {
78 if _, ok := s.decoders[decoder.Name]; !ok {
79 return result, fmt.Errorf("unknown decoder %q", decoder.Name)
80 }
81
82 decoded, err := s.decoders[decoder.Name].Decode(result, decoder)
83 if err != nil {
84 if errors.Is(err, ErrSkipLabelSet) {
85 if s.skipCache != nil {
86 s.skipCache.Add(string(in), struct{}{})
87 }
88 return decoded, err
89 }
90
91 return decoded, fmt.Errorf("error decoding with decoder %q: %w", decoder.Name, err)
92 }
93
94 result = decoded
95 }
96
97 return result, nil
98}
99
100// DecodeLabelsForMetrics transforms eBPF map key bytes into a list of label values
101// according to configuration (different label sets require different names).

Callers 1

decodeLabelsMethod · 0.95

Calls 1

DecodeMethod · 0.65

Tested by

no test coverage detected