mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-11-21 14:44:00 +00:00
8a23d08c21
* lib/logstorage: switch to read-only mode when running out of disk space Added support of `--storage.minFreeDiskSpaceBytes` command-line flag to allow graceful handling of running out of disk space at `--storageDataPath`. See: https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4737 Signed-off-by: Zakhar Bessarab <z.bessarab@victoriametrics.com> * lib/logstorage: fix error handling logic during merge Signed-off-by: Zakhar Bessarab <z.bessarab@victoriametrics.com> * lib/logstorage: fix log level Signed-off-by: Zakhar Bessarab <z.bessarab@victoriametrics.com> --------- Signed-off-by: Zakhar Bessarab <z.bessarab@victoriametrics.com> Co-authored-by: Nikolay <nik@victoriametrics.com>
50 lines
1.3 KiB
Go
50 lines
1.3 KiB
Go
package elasticsearch
|
|
|
|
import (
|
|
"bytes"
|
|
"fmt"
|
|
"testing"
|
|
|
|
"github.com/VictoriaMetrics/VictoriaMetrics/lib/bytesutil"
|
|
"github.com/VictoriaMetrics/VictoriaMetrics/lib/logstorage"
|
|
)
|
|
|
|
func BenchmarkReadBulkRequest(b *testing.B) {
|
|
b.Run("gzip:off", func(b *testing.B) {
|
|
benchmarkReadBulkRequest(b, false)
|
|
})
|
|
b.Run("gzip:on", func(b *testing.B) {
|
|
benchmarkReadBulkRequest(b, true)
|
|
})
|
|
}
|
|
|
|
func benchmarkReadBulkRequest(b *testing.B, isGzip bool) {
|
|
data := `{"create":{"_index":"filebeat-8.8.0"}}
|
|
{"@timestamp":"2023-06-06T04:48:11.735Z","log":{"offset":71770,"file":{"path":"/var/log/auth.log"}},"message":"foobar"}
|
|
{"create":{"_index":"filebeat-8.8.0"}}
|
|
{"@timestamp":"2023-06-06T04:48:12.735Z","message":"baz"}
|
|
{"create":{"_index":"filebeat-8.8.0"}}
|
|
{"message":"xyz","@timestamp":"2023-06-06T04:48:13.735Z","x":"y"}
|
|
`
|
|
if isGzip {
|
|
data = compressData(data)
|
|
}
|
|
dataBytes := bytesutil.ToUnsafeBytes(data)
|
|
|
|
timeField := "@timestamp"
|
|
msgField := "message"
|
|
processLogMessage := func(timestmap int64, fields []logstorage.Field) error { return nil }
|
|
|
|
b.ReportAllocs()
|
|
b.SetBytes(int64(len(data)))
|
|
b.RunParallel(func(pb *testing.PB) {
|
|
r := &bytes.Reader{}
|
|
for pb.Next() {
|
|
r.Reset(dataBytes)
|
|
_, err := readBulkRequest(r, isGzip, timeField, msgField, processLogMessage)
|
|
if err != nil {
|
|
panic(fmt.Errorf("unexpected error: %s", err))
|
|
}
|
|
}
|
|
})
|
|
}
|