Skip to content

Commit e4dc9d2

Browse files
authored
Merge pull request #5448 from laurazard/backport-otel-shutdown-errors
[27.x backport] telemetry: handle otel errors on shutdown
2 parents ddf8f23 + 4b5a196 commit e4dc9d2

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)