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

Function NewLocalBlock

modules/livestore/local_block.go:37–53  ·  view source on GitHub ↗

NewLocalBlock creates a local block wrapper around an existing backend block.

(ctx context.Context, existingBlock common.BackendBlock, l *local.Backend)

Source from the content-addressed store, hash-verified

35
36// NewLocalBlock creates a local block wrapper around an existing backend block.
37func NewLocalBlock(ctx context.Context, existingBlock common.BackendBlock, l *local.Backend) *LocalBlock {
38 c := &LocalBlock{
39 BackendBlock: existingBlock,
40 reader: backend.NewReader(l),
41 writer: backend.NewWriter(l),
42 }
43
44 flushedBytes, err := c.reader.Read(ctx, nameFlushed, (uuid.UUID)(c.BlockMeta().BlockID), c.BlockMeta().TenantID, nil)
45 if err == nil {
46 flushedTime := time.Time{}
47 if err := flushedTime.UnmarshalText(flushedBytes); err == nil {
48 c.flushedTime.Store(flushedTime.Unix())
49 }
50 }
51
52 return c
53}
54
55func (c *LocalBlock) FindTraceByID(ctx context.Context, id common.ID, opts common.SearchOptions) (*tempopb.TraceByIDResponse, error) {
56 ctx, span := tracer.Start(ctx, "LocalBlock.FindTraceByID")

Callers 2

completeBlockMethod · 0.85
reloadBlocksMethod · 0.85

Calls 5

NewReaderFunction · 0.92
NewWriterFunction · 0.92
ReadMethod · 0.65
BlockMetaMethod · 0.65
StoreMethod · 0.65

Tested by

no test coverage detected