From 81940007ff44decdd7c634e193f92ff21e056d3a 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 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Callum Styan Signed-off-by: Nicolás Pazos --- storage/remote/codec.go | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/storage/remote/codec.go b/storage/remote/codec.go index 67035cd8ec..291d041885 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 +}