mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-04-28 19:54:35 +00:00
runtime: use root span for shimv2 tracing
Add rootCtx to service struct in shimv2 to use as parent of spans created in shimv2 for a more organized trace ouput. Fixes #1355 Signed-off-by: Chelsea Mafrica <chelsea.e.mafrica@intel.com>
This commit is contained in:
parent
6b0dc60dda
commit
9e4932a6e2
@ -73,9 +73,14 @@ func create(ctx context.Context, s *service, r *taskAPI.CreateTaskRequest) (*con
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// create root span
|
||||
var rootSpan otelTrace.Span
|
||||
rootSpan, s.rootCtx = trace(s.ctx, "root span")
|
||||
defer rootSpan.End()
|
||||
|
||||
// create span
|
||||
var span otelTrace.Span
|
||||
span, s.ctx = trace(ctx, "create")
|
||||
span, s.ctx = trace(s.rootCtx, "create")
|
||||
defer span.End()
|
||||
|
||||
if rootFs.Mounted, err = checkAndMount(s, r); err != nil {
|
||||
|
@ -125,6 +125,7 @@ type service struct {
|
||||
pid uint32
|
||||
|
||||
ctx context.Context
|
||||
rootCtx context.Context // root context for tracing
|
||||
sandbox vc.VCSandbox
|
||||
containers map[string]*container
|
||||
config *oci.RuntimeConfig
|
||||
@ -300,7 +301,7 @@ func trace(ctx context.Context, name string) (otelTrace.Span, context.Context) {
|
||||
}
|
||||
|
||||
func (s *service) Cleanup(ctx context.Context) (_ *taskAPI.DeleteResponse, err error) {
|
||||
span, ctx := trace(ctx, "Cleanup")
|
||||
span, ctx := trace(s.rootCtx, "Cleanup")
|
||||
defer span.End()
|
||||
|
||||
//Since the binary cleanup will return the DeleteResponse from stdout to
|
||||
@ -411,7 +412,7 @@ func (s *service) Create(ctx context.Context, r *taskAPI.CreateTaskRequest) (_ *
|
||||
|
||||
// Start a process
|
||||
func (s *service) Start(ctx context.Context, r *taskAPI.StartRequest) (_ *taskAPI.StartResponse, err error) {
|
||||
span, ctx := trace(ctx, "Start")
|
||||
span, ctx := trace(s.rootCtx, "Start")
|
||||
defer span.End()
|
||||
|
||||
start := time.Now()
|
||||
@ -462,7 +463,7 @@ func (s *service) Start(ctx context.Context, r *taskAPI.StartRequest) (_ *taskAP
|
||||
|
||||
// Delete the initial process and container
|
||||
func (s *service) Delete(ctx context.Context, r *taskAPI.DeleteRequest) (_ *taskAPI.DeleteResponse, err error) {
|
||||
span, ctx := trace(ctx, "Delete")
|
||||
span, ctx := trace(s.rootCtx, "Delete")
|
||||
defer span.End()
|
||||
|
||||
start := time.Now()
|
||||
@ -514,7 +515,7 @@ func (s *service) Delete(ctx context.Context, r *taskAPI.DeleteRequest) (_ *task
|
||||
|
||||
// Exec an additional process inside the container
|
||||
func (s *service) Exec(ctx context.Context, r *taskAPI.ExecProcessRequest) (_ *ptypes.Empty, err error) {
|
||||
span, ctx := trace(ctx, "Exec")
|
||||
span, ctx := trace(s.rootCtx, "Exec")
|
||||
defer span.End()
|
||||
|
||||
start := time.Now()
|
||||
@ -552,7 +553,7 @@ func (s *service) Exec(ctx context.Context, r *taskAPI.ExecProcessRequest) (_ *p
|
||||
|
||||
// ResizePty of a process
|
||||
func (s *service) ResizePty(ctx context.Context, r *taskAPI.ResizePtyRequest) (_ *ptypes.Empty, err error) {
|
||||
span, ctx := trace(ctx, "ResizePty")
|
||||
span, ctx := trace(s.rootCtx, "ResizePty")
|
||||
defer span.End()
|
||||
|
||||
start := time.Now()
|
||||
@ -591,7 +592,7 @@ func (s *service) ResizePty(ctx context.Context, r *taskAPI.ResizePtyRequest) (_
|
||||
|
||||
// State returns runtime state information for a process
|
||||
func (s *service) State(ctx context.Context, r *taskAPI.StateRequest) (_ *taskAPI.StateResponse, err error) {
|
||||
span, ctx := trace(ctx, "State")
|
||||
span, ctx := trace(s.rootCtx, "State")
|
||||
defer span.End()
|
||||
|
||||
start := time.Now()
|
||||
@ -643,7 +644,7 @@ func (s *service) State(ctx context.Context, r *taskAPI.StateRequest) (_ *taskAP
|
||||
|
||||
// Pause the container
|
||||
func (s *service) Pause(ctx context.Context, r *taskAPI.PauseRequest) (_ *ptypes.Empty, err error) {
|
||||
span, ctx := trace(ctx, "Pause")
|
||||
span, ctx := trace(s.rootCtx, "Pause")
|
||||
defer span.End()
|
||||
|
||||
start := time.Now()
|
||||
@ -682,7 +683,7 @@ func (s *service) Pause(ctx context.Context, r *taskAPI.PauseRequest) (_ *ptypes
|
||||
|
||||
// Resume the container
|
||||
func (s *service) Resume(ctx context.Context, r *taskAPI.ResumeRequest) (_ *ptypes.Empty, err error) {
|
||||
span, ctx := trace(ctx, "Resume")
|
||||
span, ctx := trace(s.rootCtx, "Resume")
|
||||
defer span.End()
|
||||
|
||||
start := time.Now()
|
||||
@ -719,7 +720,7 @@ func (s *service) Resume(ctx context.Context, r *taskAPI.ResumeRequest) (_ *ptyp
|
||||
|
||||
// Kill a process with the provided signal
|
||||
func (s *service) Kill(ctx context.Context, r *taskAPI.KillRequest) (_ *ptypes.Empty, err error) {
|
||||
span, ctx := trace(ctx, "Kill")
|
||||
span, ctx := trace(s.rootCtx, "Kill")
|
||||
defer span.End()
|
||||
|
||||
start := time.Now()
|
||||
@ -780,7 +781,7 @@ func (s *service) Kill(ctx context.Context, r *taskAPI.KillRequest) (_ *ptypes.E
|
||||
// Since for kata, it cannot get the process's pid from VM,
|
||||
// thus only return the Shim's pid directly.
|
||||
func (s *service) Pids(ctx context.Context, r *taskAPI.PidsRequest) (_ *taskAPI.PidsResponse, err error) {
|
||||
span, ctx := trace(ctx, "Pids")
|
||||
span, ctx := trace(s.rootCtx, "Pids")
|
||||
defer span.End()
|
||||
|
||||
var processes []*task.ProcessInfo
|
||||
@ -803,7 +804,7 @@ func (s *service) Pids(ctx context.Context, r *taskAPI.PidsRequest) (_ *taskAPI.
|
||||
|
||||
// CloseIO of a process
|
||||
func (s *service) CloseIO(ctx context.Context, r *taskAPI.CloseIORequest) (_ *ptypes.Empty, err error) {
|
||||
span, ctx := trace(ctx, "CloseIO")
|
||||
span, ctx := trace(s.rootCtx, "CloseIO")
|
||||
defer span.End()
|
||||
|
||||
start := time.Now()
|
||||
@ -844,7 +845,7 @@ func (s *service) CloseIO(ctx context.Context, r *taskAPI.CloseIORequest) (_ *pt
|
||||
|
||||
// Checkpoint the container
|
||||
func (s *service) Checkpoint(ctx context.Context, r *taskAPI.CheckpointTaskRequest) (_ *ptypes.Empty, err error) {
|
||||
span, ctx := trace(ctx, "Checkpoint")
|
||||
span, ctx := trace(s.rootCtx, "Checkpoint")
|
||||
defer span.End()
|
||||
|
||||
start := time.Now()
|
||||
@ -858,7 +859,7 @@ func (s *service) Checkpoint(ctx context.Context, r *taskAPI.CheckpointTaskReque
|
||||
|
||||
// Connect returns shim information such as the shim's pid
|
||||
func (s *service) Connect(ctx context.Context, r *taskAPI.ConnectRequest) (_ *taskAPI.ConnectResponse, err error) {
|
||||
span, ctx := trace(ctx, "Connect")
|
||||
span, ctx := trace(s.rootCtx, "Connect")
|
||||
defer span.End()
|
||||
|
||||
start := time.Now()
|
||||
@ -878,7 +879,7 @@ func (s *service) Connect(ctx context.Context, r *taskAPI.ConnectRequest) (_ *ta
|
||||
}
|
||||
|
||||
func (s *service) Shutdown(ctx context.Context, r *taskAPI.ShutdownRequest) (_ *ptypes.Empty, err error) {
|
||||
span, ctx := trace(ctx, "Shutdown")
|
||||
span, ctx := trace(s.rootCtx, "Shutdown")
|
||||
|
||||
start := time.Now()
|
||||
defer func() {
|
||||
@ -906,7 +907,7 @@ func (s *service) Shutdown(ctx context.Context, r *taskAPI.ShutdownRequest) (_ *
|
||||
}
|
||||
|
||||
func (s *service) Stats(ctx context.Context, r *taskAPI.StatsRequest) (_ *taskAPI.StatsResponse, err error) {
|
||||
span, ctx := trace(ctx, "Stats")
|
||||
span, ctx := trace(s.rootCtx, "Stats")
|
||||
defer span.End()
|
||||
|
||||
start := time.Now()
|
||||
@ -935,7 +936,7 @@ func (s *service) Stats(ctx context.Context, r *taskAPI.StatsRequest) (_ *taskAP
|
||||
|
||||
// Update a running container
|
||||
func (s *service) Update(ctx context.Context, r *taskAPI.UpdateTaskRequest) (_ *ptypes.Empty, err error) {
|
||||
span, ctx := trace(ctx, "Update")
|
||||
span, ctx := trace(s.rootCtx, "Update")
|
||||
defer span.End()
|
||||
|
||||
start := time.Now()
|
||||
@ -967,7 +968,7 @@ func (s *service) Update(ctx context.Context, r *taskAPI.UpdateTaskRequest) (_ *
|
||||
|
||||
// Wait for a process to exit
|
||||
func (s *service) Wait(ctx context.Context, r *taskAPI.WaitRequest) (_ *taskAPI.WaitResponse, err error) {
|
||||
span, ctx := trace(ctx, "Wait")
|
||||
span, ctx := trace(s.rootCtx, "Wait")
|
||||
defer span.End()
|
||||
|
||||
var ret uint32
|
||||
|
Loading…
Reference in New Issue
Block a user