MCPcopy
hub / github.com/prometheus/prometheus / DecodeReadRequest

Function DecodeReadRequest

storage/remote/codec.go:64–89  ·  view source on GitHub ↗

DecodeReadRequest reads a remote.Request from a http.Request.

(r *http.Request)

Source from the content-addressed store, hash-verified

62
63// DecodeReadRequest reads a remote.Request from a http.Request.
64func DecodeReadRequest(r *http.Request) (*prompb.ReadRequest, error) {
65 compressed, err := io.ReadAll(io.LimitReader(r.Body, decodeReadLimit))
66 if err != nil {
67 return nil, err
68 }
69
70 decodedLen, err := snappy.DecodedLen(compressed)
71 if err != nil {
72 return nil, err
73 }
74 if decodedLen > decodeReadLimit {
75 return nil, fmt.Errorf("snappy: decoded length %d exceeds limit %d", decodedLen, decodeReadLimit)
76 }
77
78 reqBuf, err := snappy.Decode(nil, compressed)
79 if err != nil {
80 return nil, err
81 }
82
83 var req prompb.ReadRequest
84 if err := proto.Unmarshal(reqBuf, &req); err != nil {
85 return nil, err
86 }
87
88 return &req, nil
89}
90
91// EncodeReadResponse writes a remote.Response to a http.ResponseWriter.
92func EncodeReadResponse(resp *prompb.ReadResponse, w http.ResponseWriter) error {

Callers 3

setupRemoteFunction · 0.92
ServeHTTPMethod · 0.85

Calls 2

DecodeMethod · 0.80
UnmarshalMethod · 0.45

Tested by 2

setupRemoteFunction · 0.74

Used in the wild real call sites across dependent graphs

searching dependent graphs…