MCPcopy
hub / github.com/grafana/tempo / BenchmarkBlockBuilder

Function BenchmarkBlockBuilder

modules/blockbuilder/blockbuilder_test.go:1078–1141  ·  view source on GitHub ↗
(b *testing.B)

Source from the content-addressed store, hash-verified

1076}
1077
1078func BenchmarkBlockBuilder(b *testing.B) {
1079 var (
1080 ctx = context.Background()
1081 logger = log.NewNopLogger()
1082 _, address = testkafka.CreateCluster(b, 1, testTopic)
1083 store = newStoreWithLogger(ctx, b, logger, false)
1084 cfg = blockbuilderConfig(b, address, []int32{0})
1085 client = testkafka.NewKafkaClient(b, cfg.IngestStorageConfig.Kafka.Address, cfg.IngestStorageConfig.Kafka.Topic)
1086 o = &mockOverrides{
1087 dc: backend.DedicatedColumns{
1088 backend.DedicatedColumn{Scope: backend.DedicatedColumnScopeResource, Name: "res0", Type: backend.DedicatedColumnTypeString},
1089 backend.DedicatedColumn{Scope: backend.DedicatedColumnScopeResource, Name: "res1", Type: backend.DedicatedColumnTypeString},
1090 backend.DedicatedColumn{Scope: backend.DedicatedColumnScopeResource, Name: "res2", Type: backend.DedicatedColumnTypeString},
1091 backend.DedicatedColumn{Scope: backend.DedicatedColumnScopeResource, Name: "res3", Type: backend.DedicatedColumnTypeString},
1092 backend.DedicatedColumn{Scope: backend.DedicatedColumnScopeResource, Name: "res4", Type: backend.DedicatedColumnTypeString},
1093 backend.DedicatedColumn{Scope: backend.DedicatedColumnScopeResource, Name: "res5", Type: backend.DedicatedColumnTypeString},
1094 backend.DedicatedColumn{Scope: backend.DedicatedColumnScopeResource, Name: "res6", Type: backend.DedicatedColumnTypeString},
1095 backend.DedicatedColumn{Scope: backend.DedicatedColumnScopeResource, Name: "res7", Type: backend.DedicatedColumnTypeString},
1096 backend.DedicatedColumn{Scope: backend.DedicatedColumnScopeResource, Name: "res8", Type: backend.DedicatedColumnTypeString},
1097 backend.DedicatedColumn{Scope: backend.DedicatedColumnScopeResource, Name: "res9", Type: backend.DedicatedColumnTypeString},
1098 backend.DedicatedColumn{Scope: backend.DedicatedColumnScopeSpan, Name: "span0", Type: backend.DedicatedColumnTypeString},
1099 backend.DedicatedColumn{Scope: backend.DedicatedColumnScopeSpan, Name: "span1", Type: backend.DedicatedColumnTypeString},
1100 backend.DedicatedColumn{Scope: backend.DedicatedColumnScopeSpan, Name: "span2", Type: backend.DedicatedColumnTypeString},
1101 backend.DedicatedColumn{Scope: backend.DedicatedColumnScopeSpan, Name: "span3", Type: backend.DedicatedColumnTypeString},
1102 backend.DedicatedColumn{Scope: backend.DedicatedColumnScopeSpan, Name: "span4", Type: backend.DedicatedColumnTypeString},
1103 backend.DedicatedColumn{Scope: backend.DedicatedColumnScopeSpan, Name: "span5", Type: backend.DedicatedColumnTypeString},
1104 backend.DedicatedColumn{Scope: backend.DedicatedColumnScopeSpan, Name: "span6", Type: backend.DedicatedColumnTypeString},
1105 backend.DedicatedColumn{Scope: backend.DedicatedColumnScopeSpan, Name: "span7", Type: backend.DedicatedColumnTypeString},
1106 backend.DedicatedColumn{Scope: backend.DedicatedColumnScopeSpan, Name: "span8", Type: backend.DedicatedColumnTypeString},
1107 backend.DedicatedColumn{Scope: backend.DedicatedColumnScopeSpan, Name: "span9", Type: backend.DedicatedColumnTypeString},
1108 },
1109 }
1110 )
1111
1112 cfg.ConsumeCycleDuration = 1 * time.Hour
1113
1114 bb, err := New(cfg, logger, newPartitionRingReader(), o, store)
1115 require.NoError(b, err)
1116 defer func() { require.NoError(b, bb.stopping(nil)) }()
1117
1118 // Startup (without starting the background consume cycle)
1119 err = bb.starting(ctx)
1120 require.NoError(b, err)
1121
1122 b.ResetTimer()
1123
1124 for i := 0; i < b.N; i++ {
1125
1126 // Send more data
1127 b.StopTimer()
1128 size := 0
1129 for i := 0; i < 1000; i++ {
1130 for _, r := range testkafka.SendReq(ctx, b, client, ingest.Encode, util.FakeTenantID) {
1131 size += len(r.Value)
1132 }
1133 }
1134 b.StartTimer()
1135

Callers

nothing calls this directly

Calls 10

CreateClusterFunction · 0.92
NewKafkaClientFunction · 0.92
SendReqFunction · 0.92
blockbuilderConfigFunction · 0.85
newPartitionRingReaderFunction · 0.85
newStoreWithLoggerFunction · 0.70
NewFunction · 0.70
stoppingMethod · 0.45
startingMethod · 0.45
consumeMethod · 0.45

Tested by

no test coverage detected