tsnet: send less data in metrics integration test

this commit reduced the amount of data sent in the metrics
data integration test from 10MB to 1MB.

On various machines 10MB was quite flaky, while 1MB has not failed
once on 10000 runs.

Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
This commit is contained in:
Kristoffer Dalby 2024-11-25 10:15:04 +01:00
parent 5818c6468c
commit 75e4781559
No known key found for this signature in database

View File

@ -1026,8 +1026,8 @@ func TestUserMetrics(t *testing.T) {
mustDirect(t, t.Logf, lc1, lc2) mustDirect(t, t.Logf, lc1, lc2)
// 10 megabytes // 1 megabytes
bytesToSend := 10 * 1024 * 1024 bytesToSend := 1 * 1024 * 1024
// This asserts generates some traffic, it is factored out // This asserts generates some traffic, it is factored out
// of TestUDPConn. // of TestUDPConn.
@ -1070,14 +1070,13 @@ func TestUserMetrics(t *testing.T) {
t.Errorf("metrics1, tailscaled_approved_routes: got %v, want %v", got, want) t.Errorf("metrics1, tailscaled_approved_routes: got %v, want %v", got, want)
} }
// Verify that the amount of data recorded in bytes is higher or equal to the // Verify that the amount of data recorded in bytes is higher or equal to the data sent
// 10 megabytes sent.
inboundBytes1 := parsedMetrics1[`tailscaled_inbound_bytes_total{path="direct_ipv4"}`] inboundBytes1 := parsedMetrics1[`tailscaled_inbound_bytes_total{path="direct_ipv4"}`]
if inboundBytes1 < float64(bytesToSend) { if inboundBytes1 < float64(bytesToSend) {
t.Errorf(`metrics1, tailscaled_inbound_bytes_total{path="direct_ipv4"}: expected higher (or equal) than %d, got: %f`, bytesToSend, inboundBytes1) t.Errorf(`metrics1, tailscaled_inbound_bytes_total{path="direct_ipv4"}: expected higher (or equal) than %d, got: %f`, bytesToSend, inboundBytes1)
} }
// But ensure that it is not too much higher than the 10 megabytes sent. // But ensure that it is not too much higher than the data sent.
if inboundBytes1 > float64(bytesToSend)*bytesSentTolerance { if inboundBytes1 > float64(bytesToSend)*bytesSentTolerance {
t.Errorf(`metrics1, tailscaled_inbound_bytes_total{path="direct_ipv4"}: expected lower than %f, got: %f`, float64(bytesToSend)*bytesSentTolerance, inboundBytes1) t.Errorf(`metrics1, tailscaled_inbound_bytes_total{path="direct_ipv4"}: expected lower than %f, got: %f`, float64(bytesToSend)*bytesSentTolerance, inboundBytes1)
} }
@ -1104,14 +1103,13 @@ func TestUserMetrics(t *testing.T) {
t.Errorf("metrics2, tailscaled_approved_routes: got %v, want %v", got, want) t.Errorf("metrics2, tailscaled_approved_routes: got %v, want %v", got, want)
} }
// Verify that the amount of data recorded in bytes is higher or equal than the // Verify that the amount of data recorded in bytes is higher or equal than the data sent.
// 10 megabytes sent.
outboundBytes2 := parsedMetrics2[`tailscaled_outbound_bytes_total{path="direct_ipv4"}`] outboundBytes2 := parsedMetrics2[`tailscaled_outbound_bytes_total{path="direct_ipv4"}`]
if outboundBytes2 < float64(bytesToSend) { if outboundBytes2 < float64(bytesToSend) {
t.Errorf(`metrics2, tailscaled_outbound_bytes_total{path="direct_ipv4"}: expected higher (or equal) than %d, got: %f`, bytesToSend, outboundBytes2) t.Errorf(`metrics2, tailscaled_outbound_bytes_total{path="direct_ipv4"}: expected higher (or equal) than %d, got: %f`, bytesToSend, outboundBytes2)
} }
// But ensure that it is not too much higher than the 10 megabytes sent. // But ensure that it is not too much higher than the data sent.
if outboundBytes2 > float64(bytesToSend)*bytesSentTolerance { if outboundBytes2 > float64(bytesToSend)*bytesSentTolerance {
t.Errorf(`metrics2, tailscaled_outbound_bytes_total{path="direct_ipv4"}: expected lower than %f, got: %f`, float64(bytesToSend)*bytesSentTolerance, outboundBytes2) t.Errorf(`metrics2, tailscaled_outbound_bytes_total{path="direct_ipv4"}: expected lower than %f, got: %f`, float64(bytesToSend)*bytesSentTolerance, outboundBytes2)
} }