diff --git a/lib/encoding/compress.go b/lib/encoding/compress.go index 3761982eea..08f1965008 100644 --- a/lib/encoding/compress.go +++ b/lib/encoding/compress.go @@ -1,6 +1,7 @@ package encoding import ( + "github.com/VictoriaMetrics/metrics" "github.com/valyala/gozstd" ) @@ -9,7 +10,11 @@ import ( // // The given compressLevel is used for the compression. func CompressZSTDLevel(dst, src []byte, compressLevel int) []byte { - return gozstd.CompressLevel(dst, src, compressLevel) + originalBytes.Add(len(src)) + dstLen := len(dst) + dst = gozstd.CompressLevel(dst, src, compressLevel) + compressedBytes.Add(len(dst) - dstLen) + return dst } // DecompressZSTD decompresses src, appends the result to dst and returns @@ -17,3 +22,8 @@ func CompressZSTDLevel(dst, src []byte, compressLevel int) []byte { func DecompressZSTD(dst, src []byte) ([]byte, error) { return gozstd.Decompress(dst, src) } + +var ( + originalBytes = metrics.NewCounter(`vm_zstd_block_original_bytes_total`) + compressedBytes = metrics.NewCounter(`vm_zstd_block_compressed_bytes_total`) +)