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

Method Append

tempodb/backend/local/local.go:77–110  ·  view source on GitHub ↗

Append implements backend.Writer

(ctx context.Context, name string, keypath backend.KeyPath, tracker backend.AppendTracker, buffer []byte)

Source from the content-addressed store, hash-verified

75
76// Append implements backend.Writer
77func (rw *Backend) Append(ctx context.Context, name string, keypath backend.KeyPath, tracker backend.AppendTracker, buffer []byte) (backend.AppendTracker, error) {
78 if err := ctx.Err(); err != nil {
79 return nil, err
80 }
81
82 _, span := tracer.Start(ctx, "local.Append", trace.WithAttributes(
83 attribute.Int("len", len(buffer)),
84 ))
85 defer span.End()
86
87 var dst *os.File
88 if tracker == nil {
89 blockFolder := rw.rootPath(keypath)
90 err := os.MkdirAll(blockFolder, 0o700)
91 if err != nil {
92 return nil, err
93 }
94
95 tracesFileName := rw.objectFileName(keypath, name)
96 dst, err = os.Create(tracesFileName)
97 if err != nil {
98 return nil, err
99 }
100 } else {
101 dst = tracker.(*os.File)
102 }
103
104 _, err := dst.Write(buffer)
105 if err != nil {
106 return nil, err
107 }
108
109 return dst, nil
110}
111
112// CloseAppend implements backend.Writer
113func (rw *Backend) CloseAppend(ctx context.Context, tracker backend.AppendTracker) error {

Callers

nothing calls this directly

Calls 5

rootPathMethod · 0.95
objectFileNameMethod · 0.95
IntMethod · 0.80
StartMethod · 0.65
WriteMethod · 0.65

Tested by

no test coverage detected