Fix TestPushWriteRequest for remotewriteprotocol for pure-test (with native zstd) (#3850)

app/vmagent: fix TestPushWriteRequest for pure-test (with native zstd)

Co-authored-by: Roman Khavronenko <roman@victoriametrics.com>
This commit is contained in:
Alexander Marshalov 2023-02-22 11:26:19 +01:00 committed by Aliaksandr Valialkin
parent 522179fbde
commit 29fa78a310
No known key found for this signature in database
GPG Key ID: A72BEC6CD3D0DED1

View File

@ -2,6 +2,7 @@ package remotewrite
import ( import (
"fmt" "fmt"
"math"
"testing" "testing"
"github.com/VictoriaMetrics/VictoriaMetrics/lib/prompbmarshal" "github.com/VictoriaMetrics/VictoriaMetrics/lib/prompbmarshal"
@ -21,7 +22,7 @@ func TestPushWriteRequest(t *testing.T) {
} }
func testPushWriteRequest(t *testing.T, rowsCount, expectedBlockLenProm, expectedBlockLenVM int) { func testPushWriteRequest(t *testing.T, rowsCount, expectedBlockLenProm, expectedBlockLenVM int) {
f := func(isVMRemoteWrite bool, expectedBlockLen int) { f := func(isVMRemoteWrite bool, expectedBlockLen int, tolerancePrc float64) {
t.Helper() t.Helper()
wr := newTestWriteRequest(rowsCount, 20) wr := newTestWriteRequest(rowsCount, 20)
pushBlockLen := 0 pushBlockLen := 0
@ -32,17 +33,27 @@ func testPushWriteRequest(t *testing.T, rowsCount, expectedBlockLenProm, expecte
pushBlockLen = len(block) pushBlockLen = len(block)
} }
pushWriteRequest(wr, pushBlock, isVMRemoteWrite) pushWriteRequest(wr, pushBlock, isVMRemoteWrite)
if pushBlockLen != expectedBlockLen {
if pushBlockLen == expectedBlockLen {
return
}
if tolerancePrc == 0 {
t.Fatalf("unexpected block len for rowsCount=%d, isVMRemoteWrite=%v; got %d bytes; expecting %d bytes", t.Fatalf("unexpected block len for rowsCount=%d, isVMRemoteWrite=%v; got %d bytes; expecting %d bytes",
rowsCount, isVMRemoteWrite, pushBlockLen, expectedBlockLen) rowsCount, isVMRemoteWrite, pushBlockLen, expectedBlockLen)
} }
if math.Abs(float64(pushBlockLen-expectedBlockLen)/float64(expectedBlockLen)*100) > tolerancePrc {
t.Fatalf("unexpected block len for rowsCount=%d, isVMRemoteWrite=%v; got %d bytes; expecting %d bytes +- %.0f%%",
rowsCount, isVMRemoteWrite, pushBlockLen, expectedBlockLen, tolerancePrc)
}
} }
// Check Prometheus remote write // Check Prometheus remote write
f(false, expectedBlockLenProm) f(false, expectedBlockLenProm, 0)
// Check VictoriaMetrics remote write // Check VictoriaMetrics remote write
f(true, expectedBlockLenVM) f(true, expectedBlockLenVM, 15)
} }
func newTestWriteRequest(seriesCount, labelsCount int) *prompbmarshal.WriteRequest { func newTestWriteRequest(seriesCount, labelsCount int) *prompbmarshal.WriteRequest {