cli: delete tracing code for kata-runtime binary

There are no pod/container operations in kata-runtime binary,
tracing in this package is meaningless.

Fixes: #1748

Signed-off-by: bin <bin@hyper.sh>
This commit is contained in:
bin 2021-04-25 19:23:27 +08:00
parent db4fbac1d3
commit 13c23fec11
5 changed files with 8 additions and 143 deletions

View File

@ -389,13 +389,6 @@ EXAMPLES:
if verbose { if verbose {
kataLog.Logger.SetLevel(logrus.InfoLevel) kataLog.Logger.SetLevel(logrus.InfoLevel)
} }
ctx, err := cliContextToContext(context)
if err != nil {
return err
}
span, _ := katautils.Trace(ctx, "check")
defer span.End()
if !context.Bool("no-network-checks") && os.Getenv(noNetworkEnvVar) == "" { if !context.Bool("no-network-checks") && os.Getenv(noNetworkEnvVar) == "" {
cmd := RelCmdCheck cmd := RelCmdCheck
@ -407,8 +400,7 @@ EXAMPLES:
if os.Geteuid() == 0 { if os.Geteuid() == 0 {
kataLog.Warn("Not running network checks as super user") kataLog.Warn("Not running network checks as super user")
} else { } else {
err := HandleReleaseVersions(cmd, version, context.Bool("include-all-releases"))
err = HandleReleaseVersions(cmd, version, context.Bool("include-all-releases"))
if err != nil { if err != nil {
return err return err
} }
@ -424,7 +416,7 @@ EXAMPLES:
return errors.New("check: cannot determine runtime config") return errors.New("check: cannot determine runtime config")
} }
err = setCPUtype(runtimeConfig.HypervisorType) err := setCPUtype(runtimeConfig.HypervisorType)
if err != nil { if err != nil {
return err return err
} }
@ -437,7 +429,6 @@ EXAMPLES:
} }
err = hostIsVMContainerCapable(details) err = hostIsVMContainerCapable(details)
if err != nil { if err != nil {
return err return err
} }

View File

@ -13,7 +13,6 @@ import (
"strings" "strings"
"github.com/BurntSushi/toml" "github.com/BurntSushi/toml"
"github.com/kata-containers/kata-containers/src/runtime/pkg/katautils"
"github.com/kata-containers/kata-containers/src/runtime/pkg/utils" "github.com/kata-containers/kata-containers/src/runtime/pkg/utils"
vc "github.com/kata-containers/kata-containers/src/runtime/virtcontainers" vc "github.com/kata-containers/kata-containers/src/runtime/virtcontainers"
exp "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/experimental" exp "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/experimental"
@ -448,14 +447,6 @@ var kataEnvCLICommand = cli.Command{
}, },
}, },
Action: func(context *cli.Context) error { Action: func(context *cli.Context) error {
ctx, err := cliContextToContext(context)
if err != nil {
return err
}
span, _ := katautils.Trace(ctx, "kata-env")
defer span.End()
return handleSettings(defaultOutputFile, context) return handleSettings(defaultOutputFile, context)
}, },
} }

View File

@ -26,7 +26,6 @@ import (
clientUtils "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/pkg/agent/protocols/client" clientUtils "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/pkg/agent/protocols/client"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/urfave/cli" "github.com/urfave/cli"
"go.opentelemetry.io/otel/label"
) )
const ( const (
@ -67,24 +66,15 @@ var kataExecCLICommand = cli.Command{
}, },
}, },
Action: func(context *cli.Context) error { Action: func(context *cli.Context) error {
ctx, err := cliContextToContext(context)
if err != nil {
return err
}
span, _ := katautils.Trace(ctx, subCommandName)
defer span.End()
namespace := context.String(paramRuntimeNamespace) namespace := context.String(paramRuntimeNamespace)
if namespace == "" { if namespace == "" {
namespace = defaultRuntimeNamespace namespace = defaultRuntimeNamespace
} }
span.SetAttributes(label.Key("namespace").String(namespace))
port := context.Uint64(paramDebugConsolePort) port := context.Uint64(paramDebugConsolePort)
if port == 0 { if port == 0 {
port = defaultKernelParamDebugConsoleVPortValue port = defaultKernelParamDebugConsoleVPortValue
} }
span.SetAttributes(label.Key("port").Uint64(port))
sandboxID := context.Args().Get(0) sandboxID := context.Args().Get(0)
@ -92,8 +82,6 @@ var kataExecCLICommand = cli.Command{
return err return err
} }
span.SetAttributes(label.Key("sandbox").String(sandboxID))
conn, err := getConn(namespace, sandboxID, port) conn, err := getConn(namespace, sandboxID, port)
if err != nil { if err != nil {
return err return err

View File

@ -27,9 +27,6 @@ import (
specs "github.com/opencontainers/runtime-spec/specs-go" specs "github.com/opencontainers/runtime-spec/specs-go"
"github.com/sirupsen/logrus" "github.com/sirupsen/logrus"
"github.com/urfave/cli" "github.com/urfave/cli"
"go.opentelemetry.io/otel"
"go.opentelemetry.io/otel/label"
otelTrace "go.opentelemetry.io/otel/trace"
) )
// specConfig is the name of the file holding the containers configuration // specConfig is the name of the file holding the containers configuration
@ -132,10 +129,6 @@ var runtimeCommands = []cli.Command{
// parsing occurs. // parsing occurs.
var runtimeBeforeSubcommands = beforeSubcommands var runtimeBeforeSubcommands = beforeSubcommands
// runtimeAfterSubcommands is the function to run after the command-line
// has been parsed.
var runtimeAfterSubcommands = afterSubcommands
// runtimeCommandNotFound is the function to handle an invalid sub-command. // runtimeCommandNotFound is the function to handle an invalid sub-command.
var runtimeCommandNotFound = commandNotFound var runtimeCommandNotFound = commandNotFound
@ -168,10 +161,6 @@ func init() {
// setupSignalHandler sets up signal handling, starting a go routine to deal // setupSignalHandler sets up signal handling, starting a go routine to deal
// with signals as they arrive. // with signals as they arrive.
//
// Note that the specified context is NOT used to create a trace span (since the
// first (root) span must be created in beforeSubcommands()): it is simply
// used to pass to the crash handling functions to finalise tracing.
func setupSignalHandler(ctx context.Context) { func setupSignalHandler(ctx context.Context) {
signals.SetLogger(kataLog) signals.SetLogger(kataLog)
@ -181,10 +170,6 @@ func setupSignalHandler(ctx context.Context) {
signal.Notify(sigCh, sig) signal.Notify(sigCh, sig)
} }
dieCb := func() {
katautils.StopTracing(ctx)
}
go func() { go func() {
for { for {
sig := <-sigCh sig := <-sigCh
@ -198,7 +183,6 @@ func setupSignalHandler(ctx context.Context) {
if signals.FatalSignal(nativeSignal) { if signals.FatalSignal(nativeSignal) {
kataLog.WithField("signal", sig).Error("received fatal signal") kataLog.WithField("signal", sig).Error("received fatal signal")
signals.Die(dieCb)
} else if debug && signals.NonFatalSignal(nativeSignal) { } else if debug && signals.NonFatalSignal(nativeSignal) {
kataLog.WithField("signal", sig).Debug("handling signal") kataLog.WithField("signal", sig).Debug("handling signal")
signals.Backtrace() signals.Backtrace()
@ -210,18 +194,6 @@ func setupSignalHandler(ctx context.Context) {
// setExternalLoggers registers the specified logger with the external // setExternalLoggers registers the specified logger with the external
// packages which accept a logger to handle their own logging. // packages which accept a logger to handle their own logging.
func setExternalLoggers(ctx context.Context, logger *logrus.Entry) { func setExternalLoggers(ctx context.Context, logger *logrus.Entry) {
var span otelTrace.Span
// Only create a new span if a root span already exists. This is
// required to ensure that this function will not disrupt the root
// span logic by creating a span before the proper root span has been
// created.
if otelTrace.SpanFromContext(ctx) != nil {
span, ctx = katautils.Trace(ctx, "setExternalLoggers")
defer span.End()
}
// Set virtcontainers logger. // Set virtcontainers logger.
vci.SetLogger(ctx, logger) vci.SetLogger(ctx, logger)
@ -244,7 +216,6 @@ func beforeSubcommands(c *cli.Context) error {
var configFile string var configFile string
var runtimeConfig oci.RuntimeConfig var runtimeConfig oci.RuntimeConfig
var err error var err error
var traceFlushFunc func()
katautils.SetConfigOptions(name, defaultRuntimeConfiguration, defaultSysConfRuntimeConfiguration) katautils.SetConfigOptions(name, defaultRuntimeConfiguration, defaultSysConfRuntimeConfiguration)
@ -270,7 +241,6 @@ func beforeSubcommands(c *cli.Context) error {
// Issue: https://github.com/kata-containers/runtime/issues/2428 // Issue: https://github.com/kata-containers/runtime/issues/2428
ignoreConfigLogs := false ignoreConfigLogs := false
var traceRootSpan string
subCmdIsCheckCmd := (c.NArg() >= 1 && ((c.Args()[0] == "kata-check") || (c.Args()[0] == "check"))) subCmdIsCheckCmd := (c.NArg() >= 1 && ((c.Args()[0] == "kata-check") || (c.Args()[0] == "check")))
if subCmdIsCheckCmd { if subCmdIsCheckCmd {
@ -302,16 +272,13 @@ func beforeSubcommands(c *cli.Context) error {
cmdName := c.Args().First() cmdName := c.Args().First()
if c.App.Command(cmdName) != nil { if c.App.Command(cmdName) != nil {
kataLog = kataLog.WithField("command", cmdName) kataLog = kataLog.WithField("command", cmdName)
// Name for the root span (used for tracing) now the
// sub-command name is known.
traceRootSpan = name + " " + cmdName
} }
// Since a context is required, pass a new (throw-away) one - we ctx, err := cliContextToContext(c)
// cannot use the main context as tracing hasn't been enabled yet if err != nil {
// (meaning any spans created at this point will be silently ignored). return err
setExternalLoggers(context.Background(), kataLog) }
setExternalLoggers(ctx, kataLog)
if c.NArg() == 1 && (c.Args()[0] == "kata-env" || c.Args()[0] == "env") { if c.NArg() == 1 && (c.Args()[0] == "kata-env" || c.Args()[0] == "env") {
// simply report the logging setup // simply report the logging setup
@ -325,20 +292,6 @@ func beforeSubcommands(c *cli.Context) error {
} }
if !subCmdIsCheckCmd { if !subCmdIsCheckCmd {
debug = runtimeConfig.Debug debug = runtimeConfig.Debug
if traceRootSpan != "" {
// Create the tracer.
//
// Note: no spans are created until the command-line has been parsed.
// This delays collection of trace data slightly but benefits the user by
// ensuring the first span is the name of the sub-command being
// invoked from the command-line.
traceFlushFunc, err = setupTracing(c, traceRootSpan, &runtimeConfig)
if err != nil {
return err
}
defer traceFlushFunc()
}
} }
args := strings.Join(c.Args(), " ") args := strings.Join(c.Args(), " ")
@ -377,36 +330,6 @@ func handleShowConfig(context *cli.Context) {
} }
} }
func setupTracing(context *cli.Context, rootSpanName string, config *oci.RuntimeConfig) (func(), error) {
flush, err := katautils.CreateTracer(name, config)
if err != nil {
return nil, err
}
ctx, err := cliContextToContext(context)
if err != nil {
return nil, err
}
// Create the root span now that the sub-command name is
// known.
//
// Note that this "Before" function is called (and returns)
// before the subcommand handler is called. As such, we cannot
// "Finish()" the span here - that is handled in the .After
// function.
tracer := otel.Tracer("kata")
newCtx, span := tracer.Start(ctx, rootSpanName)
span.SetAttributes(label.Key("subsystem").String("runtime"))
// Add tracer to metadata and update the context
context.App.Metadata["tracer"] = tracer
context.App.Metadata["context"] = newCtx
return flush, nil
}
// add supported experimental features in context // add supported experimental features in context
func addExpFeatures(clictx *cli.Context, runtimeConfig oci.RuntimeConfig) error { func addExpFeatures(clictx *cli.Context, runtimeConfig oci.RuntimeConfig) error {
ctx, err := cliContextToContext(clictx) ctx, err := cliContextToContext(clictx)
@ -420,22 +343,11 @@ func addExpFeatures(clictx *cli.Context, runtimeConfig oci.RuntimeConfig) error
} }
ctx = exp.ContextWithExp(ctx, exps) ctx = exp.ContextWithExp(ctx, exps)
// Add tracer to metadata and update the context // Add experimental features to metadata and update the context
clictx.App.Metadata["context"] = ctx clictx.App.Metadata["context"] = ctx
return nil return nil
} }
func afterSubcommands(c *cli.Context) error {
ctx, err := cliContextToContext(c)
if err != nil {
return err
}
katautils.StopTracing(ctx)
return nil
}
// function called when an invalid command is specified which causes the // function called when an invalid command is specified which causes the
// runtime to error. // runtime to error.
func commandNotFound(c *cli.Context, command string) { func commandNotFound(c *cli.Context, command string) {
@ -502,7 +414,6 @@ func createRuntimeApp(ctx context.Context, args []string) error {
app.Flags = runtimeFlags app.Flags = runtimeFlags
app.Commands = runtimeCommands app.Commands = runtimeCommands
app.Before = runtimeBeforeSubcommands app.Before = runtimeBeforeSubcommands
app.After = runtimeAfterSubcommands
app.EnableBashCompletion = true app.EnableBashCompletion = true
// allow sub-commands to access context // allow sub-commands to access context
@ -578,12 +489,5 @@ func cliContextToContext(c *cli.Context) (context.Context, error) {
func main() { func main() {
// create a new empty context // create a new empty context
ctx := context.Background() ctx := context.Background()
dieCb := func() {
katautils.StopTracing(ctx)
}
defer signals.HandlePanic(dieCb)
createRuntime(ctx) createRuntime(ctx)
} }

View File

@ -6,7 +6,6 @@
package main package main
import ( import (
"github.com/kata-containers/kata-containers/src/runtime/pkg/katautils"
"github.com/urfave/cli" "github.com/urfave/cli"
) )
@ -14,14 +13,6 @@ var versionCLICommand = cli.Command{
Name: "version", Name: "version",
Usage: "display version details", Usage: "display version details",
Action: func(context *cli.Context) error { Action: func(context *cli.Context) error {
ctx, err := cliContextToContext(context)
if err != nil {
return err
}
span, _ := katautils.Trace(ctx, "version")
defer span.End()
cli.VersionPrinter(context) cli.VersionPrinter(context)
return nil return nil
}, },