mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-07-13 15:14:08 +00:00
runtime: tracing: End root span at end of trace
The root span should exist the duration of the trace. Defer ending span
until the end of the trace instead of end of function. Add the span to
the service struct to do so.
Fixes #4902
Signed-off-by: Chelsea Mafrica <chelsea.e.mafrica@intel.com>
(cherry picked from commit fcc1e0c617
)
This commit is contained in:
parent
5532930107
commit
25b1a52291
@ -97,9 +97,10 @@ func create(ctx context.Context, s *service, r *taskAPI.CreateTaskRequest) (*con
|
||||
}
|
||||
|
||||
// create root span
|
||||
// rootSpan will be ended when the entire trace is ended
|
||||
rootSpan, newCtx := katatrace.Trace(s.ctx, shimLog, "rootSpan", shimTracingTags)
|
||||
s.rootCtx = newCtx
|
||||
defer rootSpan.End()
|
||||
s.rootSpan = rootSpan
|
||||
|
||||
// create span
|
||||
span, newCtx := katatrace.Trace(s.rootCtx, shimLog, "create", shimTracingTags)
|
||||
|
@ -28,6 +28,7 @@ import (
|
||||
"github.com/opencontainers/runtime-spec/specs-go"
|
||||
"github.com/pkg/errors"
|
||||
"github.com/sirupsen/logrus"
|
||||
otelTrace "go.opentelemetry.io/otel/trace"
|
||||
"golang.org/x/sys/unix"
|
||||
|
||||
"github.com/kata-containers/kata-containers/src/runtime/pkg/katautils"
|
||||
@ -122,8 +123,9 @@ type exit struct {
|
||||
type service struct {
|
||||
sandbox vc.VCSandbox
|
||||
|
||||
ctx context.Context
|
||||
rootCtx context.Context // root context for tracing
|
||||
ctx context.Context
|
||||
rootCtx context.Context // root context for tracing
|
||||
rootSpan otelTrace.Span
|
||||
|
||||
containers map[string]*container
|
||||
|
||||
@ -946,6 +948,7 @@ func (s *service) Shutdown(ctx context.Context, r *taskAPI.ShutdownRequest) (_ *
|
||||
s.mu.Unlock()
|
||||
|
||||
span.End()
|
||||
s.rootSpan.End()
|
||||
katatrace.StopTracing(s.rootCtx)
|
||||
|
||||
return empty, nil
|
||||
|
Loading…
Reference in New Issue
Block a user