11package main
22
33import (
4+ "context"
45 "fmt"
56 "os"
67 "os/exec"
@@ -21,17 +22,19 @@ import (
2122 "github.com/sirupsen/logrus"
2223 "github.com/spf13/cobra"
2324 "github.com/spf13/pflag"
25+ "go.opentelemetry.io/otel"
2426)
2527
2628func main () {
27- dockerCli , err := command .NewDockerCli ()
29+ ctx := context .Background ()
30+ dockerCli , err := command .NewDockerCli (command .WithBaseContext (ctx ))
2831 if err != nil {
2932 fmt .Fprintln (os .Stderr , err )
3033 os .Exit (1 )
3134 }
3235 logrus .SetOutput (dockerCli .Err ())
3336
34- if err := runDocker (dockerCli ); err != nil {
37+ if err := runDocker (ctx , dockerCli ); err != nil {
3538 if sterr , ok := err .(cli.StatusError ); ok {
3639 if sterr .Status != "" {
3740 fmt .Fprintln (dockerCli .Err (), sterr .Status )
@@ -286,7 +289,7 @@ func tryPluginRun(dockerCli command.Cli, cmd *cobra.Command, subcommand string,
286289}
287290
288291//nolint:gocyclo
289- func runDocker (dockerCli * command.DockerCli ) error {
292+ func runDocker (ctx context. Context , dockerCli * command.DockerCli ) error {
290293 tcmd := newDockerCommand (dockerCli )
291294
292295 cmd , args , err := tcmd .HandleGlobalFlags ()
@@ -298,6 +301,11 @@ func runDocker(dockerCli *command.DockerCli) error {
298301 return err
299302 }
300303
304+ mp := dockerCli .MeterProvider (ctx )
305+ defer mp .Shutdown (ctx )
306+ otel .SetMeterProvider (mp )
307+ command .InstrumentCobraCommands (cmd , mp )
308+
301309 var envs []string
302310 args , os .Args , envs , err = processAliases (dockerCli , cmd , args , os .Args )
303311 if err != nil {
0 commit comments