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

Function newInstance

modules/livestore/instance.go:143–175  ·  view source on GitHub ↗
(instanceID string, cfg Config, wal *wal.WAL, completeBlockEncoding encoding.VersionedEncoding, completeBlockLifecycle completeBlockLifecycle, overrides overrides.Interface, logger log.Logger)

Source from the content-addressed store, hash-verified

141}
142
143func newInstance(instanceID string, cfg Config, wal *wal.WAL, completeBlockEncoding encoding.VersionedEncoding, completeBlockLifecycle completeBlockLifecycle, overrides overrides.Interface, logger log.Logger) (*instance, error) {
144 logger = log.With(logger, "tenant", instanceID)
145 if completeBlockLifecycle == nil {
146 var err error
147 completeBlockLifecycle, err = newCompleteBlockLifecycle(cfg, nil, logger)
148 if err != nil {
149 return nil, err
150 }
151 }
152 i := &instance{
153 tenantID: instanceID,
154 logger: logger,
155 Cfg: cfg,
156 wal: wal,
157 completeBlockEncoding: completeBlockEncoding,
158 completeBlockLifecycle: completeBlockLifecycle,
159 liveTraces: livetraces.New[*v1.ResourceSpans](func(rs *v1.ResourceSpans) uint64 { return uint64(rs.Size()) }, cfg.MaxTraceIdle, cfg.MaxTraceLive, instanceID),
160 traceSizes: tracesizes.New(),
161 maxTraceLogger: util_log.NewRateLimitedLogger(maxTraceLogLinesPerSecond, level.Warn(logger)),
162 overrides: overrides,
163 tracesCreatedTotal: metricTracesCreatedTotal.WithLabelValues(instanceID),
164 bytesReceivedTotal: metricBytesReceivedTotal,
165 reclaim: newQuarantine(cfg.BlockReclaimGrace),
166 }
167 i.blocks.Store(emptyBlockSnapshot())
168
169 err := i.resetHeadBlock()
170 if err != nil {
171 return nil, err
172 }
173
174 return i, nil
175}
176
177func (i *instance) waitBackpressure(ctx context.Context) {
178 span := oteltrace.SpanFromContext(ctx)

Callers 3

setupTestFunction · 0.70
getOrCreateInstanceMethod · 0.70
TestLiveStoreQueryRangeFunction · 0.70

Calls 8

resetHeadBlockMethod · 0.95
NewFunction · 0.92
NewFunction · 0.92
newQuarantineFunction · 0.85
emptyBlockSnapshotFunction · 0.85
SizeMethod · 0.65
StoreMethod · 0.65

Tested by 2

setupTestFunction · 0.56
TestLiveStoreQueryRangeFunction · 0.56