lib/encoding: add vm_zstd_block_{original|compressed}_bytes_total metrics for rough estimation of block compression ratio

This commit is contained in:
Aliaksandr Valialkin 2019-05-24 12:34:32 +03:00
parent 19b6643e5c
commit 6fb9dd09f5

View file

@ -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`)
)