From 326c7138bb8c36d6c92b1d31e3f851ec048be536 Mon Sep 17 00:00:00 2001 From: Laura Brehm Date: Fri, 10 May 2024 13:54:33 +0100 Subject: [PATCH] OTel: implement missing MeterProvider `ForceFlush` Signed-off-by: Laura Brehm (cherry picked from commit 5f4f4f64d34cb42fa01c52f02de26fa4fd913bb2) --- cli/command/telemetry.go | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/cli/command/telemetry.go b/cli/command/telemetry.go index 8db51c0596b5..d18d94d4a993 100644 --- a/cli/command/telemetry.go +++ b/cli/command/telemetry.go @@ -186,11 +186,6 @@ func newCLIReader(exp sdkmetric.Exporter) sdkmetric.Reader { } func (r *cliReader) Shutdown(ctx context.Context) error { - var rm metricdata.ResourceMetrics - if err := r.Reader.Collect(ctx, &rm); err != nil { - return err - } - // Place a pretty tight constraint on the actual reporting. // We don't want CLI metrics to prevent the CLI from exiting // so if there's some kind of issue we need to abort pretty @@ -198,6 +193,15 @@ func (r *cliReader) Shutdown(ctx context.Context) error { ctx, cancel := context.WithTimeout(ctx, exportTimeout) defer cancel() + return r.ForceFlush(ctx) +} + +func (r *cliReader) ForceFlush(ctx context.Context) error { + var rm metricdata.ResourceMetrics + if err := r.Reader.Collect(ctx, &rm); err != nil { + return err + } + return r.exporter.Export(ctx, &rm) }