VictoriaMetrics/lib/protoparser/opentelemetry/stream/streamparser_timing_test.go
Andrii Chubatiuk 01430a155c
vlinsert: added opentelemetry logs support
Commit adds the following changes:

* Adds support of OpenTelemetry logs for Victoria Logs with protobuf encoded messages

*  json encoding is not supported for the following reasons:
   - It brings a lot of fragile code, which works inefficiently.
   - json encoding is impossible to use with language SDK.

* splits metrics and logs structures at lib/protoparser/opentelemetry/pb package.

* adds docs with examples for opentelemetry logs.

---
Related issue: https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4839

Co-authored-by: AndrewChubatiuk <andrew.chubatiuk@gmail.com>
Co-authored-by: f41gh7 <nik@victoriametrics.com>
2024-09-03 20:12:05 +02:00

35 lines
863 B
Go

package stream
import (
"bytes"
"testing"
"github.com/VictoriaMetrics/VictoriaMetrics/lib/prompbmarshal"
"github.com/VictoriaMetrics/VictoriaMetrics/lib/protoparser/opentelemetry/pb"
)
func BenchmarkParseStream(b *testing.B) {
samples := []*pb.Metric{
generateGauge("my-gauge", ""),
generateHistogram("my-histogram", ""),
generateSum("my-sum", "", false),
generateSummary("my-summary", ""),
}
b.SetBytes(1)
b.ReportAllocs()
b.RunParallel(func(p *testing.PB) {
pbRequest := pb.ExportMetricsServiceRequest{
ResourceMetrics: []*pb.ResourceMetrics{generateOTLPSamples(samples)},
}
data := pbRequest.MarshalProtobuf(nil)
for p.Next() {
err := ParseStream(bytes.NewBuffer(data), false, nil, func(_ []prompbmarshal.TimeSeries) error {
return nil
})
if err != nil {
b.Fatalf("cannot parse stream: %s", err)
}
}
})
}