From 36a30c9cd9b6019dcad050f6f8d24e5f0775d278 Mon Sep 17 00:00:00 2001 From: Callum Styan Date: Mon, 20 Feb 2023 13:10:47 -0800 Subject: [PATCH] add decode function for new write request proto Signed-off-by: Callum Styan --- storage/remote/codec.go | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/storage/remote/codec.go b/storage/remote/codec.go index 4c190f2a4e..837b4bd31f 100644 --- a/storage/remote/codec.go +++ b/storage/remote/codec.go @@ -867,3 +867,24 @@ func DecodeOTLPWriteRequest(r *http.Request) (pmetricotlp.ExportRequest, error) return otlpReq, nil } + +// DecodeWriteRequest from an io.Reader into a prompb.WriteRequest, handling +// snappy decompression. +func DecodeReducedWriteRequest(r io.Reader) (*prompb.WriteRequestWithRefs, error) { + compressed, err := io.ReadAll(r) + if err != nil { + return nil, err + } + + reqBuf, err := snappy.Decode(nil, compressed) + if err != nil { + return nil, err + } + + var req prompb.WriteRequestWithRefs + if err := proto.Unmarshal(reqBuf, &req); err != nil { + return nil, err + } + + return &req, nil +}