tracing: Change runtime tracing tags to vars

Tracing tags are stored inconsistently throughout the runtime. Change
all instances of tracing tags to variables.

Fixes #2512

Signed-off-by: Chelsea Mafrica <chelsea.e.mafrica@intel.com>
This commit is contained in:
Chelsea Mafrica
2021-08-25 11:06:06 -07:00
parent d490704133
commit 8058e97212
7 changed files with 201 additions and 139 deletions

View File

@@ -36,13 +36,10 @@ import (
)
// tracingTags defines tags for the trace span
func (c *Container) tracingTags() map[string]string {
return map[string]string{
"source": "runtime",
"package": "virtcontainers",
"subsystem": "container",
"container_id": c.id,
}
var containerTracingTags = map[string]string{
"source": "runtime",
"package": "virtcontainers",
"subsystem": "container",
}
// https://github.com/torvalds/linux/blob/master/include/uapi/linux/major.h
@@ -619,12 +616,14 @@ func (c *Container) mountSharedDirMounts(ctx context.Context, sharedDirMounts, i
}
func (c *Container) unmountHostMounts(ctx context.Context) error {
span, ctx := katatrace.Trace(ctx, c.Logger(), "unmountHostMounts", c.tracingTags())
span, ctx := katatrace.Trace(ctx, c.Logger(), "unmountHostMounts", containerTracingTags)
katatrace.AddTag(span, "container_id", c.id)
defer span.End()
for _, m := range c.mounts {
if m.HostPath != "" {
span, _ := katatrace.Trace(ctx, c.Logger(), "unmount", c.tracingTags())
span, _ := katatrace.Trace(ctx, c.Logger(), "unmount", containerTracingTags)
katatrace.AddTag(span, "container_id", c.id)
katatrace.AddTag(span, "host-path", m.HostPath)
if err := syscall.Unmount(m.HostPath, syscall.MNT_DETACH|UmountNoFollow); err != nil {
@@ -753,7 +752,9 @@ func (c *Container) initConfigResourcesMemory() {
// newContainer creates a Container structure from a sandbox and a container configuration.
func newContainer(ctx context.Context, sandbox *Sandbox, contConfig *ContainerConfig) (*Container, error) {
span, ctx := katatrace.Trace(ctx, sandbox.Logger(), "newContainer", sandbox.tracingTags())
span, ctx := katatrace.Trace(ctx, sandbox.Logger(), "newContainer", containerTracingTags)
katatrace.AddTag(span, "sandbox_id", sandbox.id)
katatrace.AddTag(span, "container_id", contConfig.ID)
defer span.End()
if !contConfig.valid() {
@@ -1049,7 +1050,8 @@ func (c *Container) start(ctx context.Context) error {
}
func (c *Container) stop(ctx context.Context, force bool) error {
span, ctx := katatrace.Trace(ctx, c.Logger(), "stop", c.tracingTags())
span, ctx := katatrace.Trace(ctx, c.Logger(), "stop", containerTracingTags)
katatrace.AddTag(span, "container_id", c.id)
defer span.End()
// In case the container status has been updated implicitly because