Skip to content

Commit 4b5a196

Browse files
jsternberglaurazard
authored andcommitted
telemetry: pass otel errors to the otel handler for shutdown and force flush
Signed-off-by: Jonathan A. Sternberg <[email protected]> (cherry picked from commit b1956f5) Signed-off-by: Laura Brehm <[email protected]>
1 parent 58a14cc commit 4b5a196

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

cli/command/telemetry_utils.go

+4-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"github.com/docker/cli/cli/version"
1010
"github.com/pkg/errors"
1111
"github.com/spf13/cobra"
12+
"go.opentelemetry.io/otel"
1213
"go.opentelemetry.io/otel/attribute"
1314
"go.opentelemetry.io/otel/metric"
1415
)
@@ -94,7 +95,9 @@ func startCobraCommandTimer(mp metric.MeterProvider, attrs []attribute.KeyValue)
9495
metric.WithAttributes(cmdStatusAttrs...),
9596
)
9697
if mp, ok := mp.(MeterProvider); ok {
97-
mp.ForceFlush(ctx)
98+
if err := mp.ForceFlush(ctx); err != nil {
99+
otel.Handle(err)
100+
}
98101
}
99102
}
100103
}

cmd/docker/docker.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,9 @@ func runDocker(ctx context.Context, dockerCli *command.DockerCli) error {
360360

361361
mp := dockerCli.MeterProvider()
362362
if mp, ok := mp.(command.MeterProvider); ok {
363-
defer mp.Shutdown(ctx)
363+
if err := mp.Shutdown(ctx); err != nil {
364+
otel.Handle(err)
365+
}
364366
} else {
365367
fmt.Fprint(dockerCli.Err(), "Warning: Unexpected OTEL error, metrics may not be flushed")
366368
}

0 commit comments

Comments
 (0)