From 1db25e2171cca6cddd199a443abeb519216ac44e Mon Sep 17 00:00:00 2001 From: Nishant Bangarwa Date: Mon, 20 Jul 2026 17:25:53 +0530 Subject: [PATCH] fix: nil pointer panic in MetricsViewAggregation.Export when request has no time range --- runtime/queries/metricsview_aggregation.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/runtime/queries/metricsview_aggregation.go b/runtime/queries/metricsview_aggregation.go index 68a6bce4057a..15b79b61c6af 100644 --- a/runtime/queries/metricsview_aggregation.go +++ b/runtime/queries/metricsview_aggregation.go @@ -162,8 +162,12 @@ func (q *MetricsViewAggregation) Export(ctx context.Context, rt *runtime.Runtime } defer e.Close() + qryTimeDim := "" + if q.TimeRange != nil { + qryTimeDim = q.TimeRange.TimeDimension + } if mv.ValidSpec.TimeDimension != "" { - tsRes, err := ResolveTimestampResult(ctx, rt, instanceID, q.MetricsViewName, q.TimeRange.TimeDimension, q.SecurityClaims, opts.Priority) + tsRes, err := ResolveTimestampResult(ctx, rt, instanceID, q.MetricsViewName, qryTimeDim, q.SecurityClaims, opts.Priority) if err != nil { return err } @@ -520,7 +524,7 @@ func (q *MetricsViewAggregation) generateExportHeaders(ctx context.Context, rt * headers = append(headers, title) // Build date range - if !qry.TimeRange.Start.IsZero() || !qry.TimeRange.End.IsZero() { + if qry.TimeRange != nil && (!qry.TimeRange.Start.IsZero() || !qry.TimeRange.End.IsZero()) { timeRange := fmt.Sprintf("Date range: %s to %s", qry.TimeRange.Start.Format(time.RFC3339), qry.TimeRange.End.Format(time.RFC3339)) headers = append(headers, timeRange) }