mirror of https://github.com/docker/cli.git
cli: make initializing the global meter- and tracing providers optional
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
parent
50acbb031b
commit
617eb5271a
|
@ -45,6 +45,7 @@ func RunPlugin(dockerCli *command.DockerCli, plugin *cobra.Command, meta manager
|
||||||
if os.Getenv("DOCKER_CLI_PLUGIN_USE_DIAL_STDIO") != "" {
|
if os.Getenv("DOCKER_CLI_PLUGIN_USE_DIAL_STDIO") != "" {
|
||||||
opts = append(opts, withPluginClientConn(plugin.Name()))
|
opts = append(opts, withPluginClientConn(plugin.Name()))
|
||||||
}
|
}
|
||||||
|
opts = append(opts, command.WithEnableGlobalMeterProvider(), command.WithEnableGlobalTracerProvider())
|
||||||
err = tcmd.Initialize(opts...)
|
err = tcmd.Initialize(opts...)
|
||||||
ogRunE := cmd.RunE
|
ogRunE := cmd.RunE
|
||||||
if ogRunE == nil {
|
if ogRunE == nil {
|
||||||
|
|
|
@ -92,6 +92,8 @@ type DockerCli struct {
|
||||||
// this may be replaced by explicitly passing a context to functions that
|
// this may be replaced by explicitly passing a context to functions that
|
||||||
// need it.
|
// need it.
|
||||||
baseCtx context.Context
|
baseCtx context.Context
|
||||||
|
|
||||||
|
enableGlobalMeter, enableGlobalTracer bool
|
||||||
}
|
}
|
||||||
|
|
||||||
// DefaultVersion returns api.defaultVersion.
|
// DefaultVersion returns api.defaultVersion.
|
||||||
|
@ -284,8 +286,12 @@ func (cli *DockerCli) Initialize(opts *cliflags.ClientOptions, ops ...CLIOption)
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO(krissetto): pass ctx to the funcs instead of using this
|
// TODO(krissetto): pass ctx to the funcs instead of using this
|
||||||
|
if cli.enableGlobalMeter {
|
||||||
cli.createGlobalMeterProvider(cli.baseCtx)
|
cli.createGlobalMeterProvider(cli.baseCtx)
|
||||||
|
}
|
||||||
|
if cli.enableGlobalTracer {
|
||||||
cli.createGlobalTracerProvider(cli.baseCtx)
|
cli.createGlobalTracerProvider(cli.baseCtx)
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
package command
|
||||||
|
|
||||||
|
// WithEnableGlobalMeterProvider configures the DockerCli to create a new
|
||||||
|
// MeterProvider from the initialized DockerCli struct, and set it as
|
||||||
|
// the global meter provider.
|
||||||
|
//
|
||||||
|
// WARNING: For internal use, don't depend on this.
|
||||||
|
func WithEnableGlobalMeterProvider() CLIOption {
|
||||||
|
return func(cli *DockerCli) error {
|
||||||
|
cli.enableGlobalMeter = true
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithEnableGlobalTracerProvider configures the DockerCli to create a new
|
||||||
|
// TracerProvider from the initialized DockerCli struct, and set it as
|
||||||
|
// the global tracer provider.
|
||||||
|
//
|
||||||
|
// WARNING: For internal use, don't depend on this.
|
||||||
|
func WithEnableGlobalTracerProvider() CLIOption {
|
||||||
|
return func(cli *DockerCli) error {
|
||||||
|
cli.enableGlobalTracer = true
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
|
@ -354,7 +354,7 @@ func runDocker(ctx context.Context, dockerCli *command.DockerCli) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := tcmd.Initialize(); err != nil {
|
if err := tcmd.Initialize(command.WithEnableGlobalMeterProvider(), command.WithEnableGlobalTracerProvider()); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue