mirror of
https://github.com/hanzoai/otel-collector.git
synced 2026-11-02 13:34:59 +00:00
- Fix 'Hanzo O11y' (space) → 'HanzoO11y' in Go struct/func names - Package o11yclickhousemetrics → o11ydatastoremetrics (matches dir) - Package o11yclickhousemeter → o11ydatastoremeter (matches dir) - Import paths aligned with actual directory structure - Component type names kept as signozclickhousemetrics for config compat
84 lines
2.5 KiB
Go
84 lines
2.5 KiB
Go
package v1
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/hanzoai/otel-collector/pkg/pdatagen/plogsgen"
|
|
"github.com/stretchr/testify/assert"
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
func TestLogsSize(t *testing.T) {
|
|
logs := plogsgen.Generate(
|
|
plogsgen.WithLogRecordCount(10),
|
|
plogsgen.WithResourceAttributeCount(8),
|
|
// 100 bytes
|
|
plogsgen.WithBody("Lorem ipsum dolor sit amet consectetur adipiscing elit, enim suscipit nullam aenean mattis senectus."),
|
|
// 20 bytes
|
|
plogsgen.WithResourceAttributeStringValue("Lorem ipsum euismod."),
|
|
)
|
|
|
|
meter := NewLogs(zap.NewNop())
|
|
size := meter.Size(logs)
|
|
// 8 * [ 10(key) + 20(value) + 5("":"") ] + 2({}) + 7(,)
|
|
assert.Equal(t, 10*(8*(10+20+5)+7+2+2+100), size)
|
|
}
|
|
|
|
func TestLogsSizeWithExcludedHanzoO11yResources(t *testing.T) {
|
|
logs := plogsgen.Generate(
|
|
plogsgen.WithLogRecordCount(10),
|
|
plogsgen.WithResourceAttributeCount(8),
|
|
// 100 bytes
|
|
plogsgen.WithBody("Lorem ipsum dolor sit amet consectetur adipiscing elit, enim suscipit nullam aenean mattis senectus."),
|
|
// 20 bytes
|
|
plogsgen.WithResourceAttributeStringValue("Lorem ipsum euismod."),
|
|
)
|
|
// adding o11y resource shouldn't affect the calculation
|
|
logs.ResourceLogs().At(0).Resource().Attributes().PutStr("o11y.workspace.internal.test", "o11y-test")
|
|
|
|
meter := NewLogs(zap.NewNop())
|
|
size := meter.Size(logs)
|
|
// 8 * [ 10(key) + 20(value) + 5("":"") ] + 2({}) + 7(,)
|
|
assert.Equal(t, 10*(8*(10+20+5)+7+2+2+100), size)
|
|
}
|
|
|
|
func benchmarkLogsSize(b *testing.B, expectedSize int, options ...plogsgen.GenerationOption) {
|
|
b.Helper()
|
|
|
|
logs := plogsgen.Generate(options...)
|
|
meter := NewLogs(zap.NewNop())
|
|
|
|
b.ReportAllocs()
|
|
b.ResetTimer()
|
|
for n := 0; n < b.N; n++ {
|
|
size := meter.Size(logs)
|
|
assert.Equal(b, expectedSize, size)
|
|
}
|
|
}
|
|
|
|
func BenchmarkLogsSize_20000_20(b *testing.B) {
|
|
benchmarkLogsSize(
|
|
b,
|
|
16660000,
|
|
plogsgen.WithLogRecordCount(20000),
|
|
plogsgen.WithResourceAttributeCount(20),
|
|
// 100 bytes
|
|
plogsgen.WithBody("Lorem ipsum dolor sit amet consectetur adipiscing elit, enim suscipit nullam aenean mattis senectus."),
|
|
// 20 bytes
|
|
plogsgen.WithResourceAttributeStringValue("Lorem ipsum euismod."),
|
|
)
|
|
}
|
|
|
|
func BenchmarkLogsSize_100000_20(b *testing.B) {
|
|
benchmarkLogsSize(
|
|
b,
|
|
83300000,
|
|
plogsgen.WithLogRecordCount(100000),
|
|
plogsgen.WithResourceAttributeCount(20),
|
|
// 100 bytes
|
|
plogsgen.WithBody("Lorem ipsum dolor sit amet consectetur adipiscing elit, enim suscipit nullam aenean mattis senectus."),
|
|
// 20 bytes
|
|
plogsgen.WithResourceAttributeStringValue("Lorem ipsum euismod."),
|
|
)
|
|
}
|