From ef3e9a1b57026ecc7f693288500d0d8fde31a7c7 Mon Sep 17 00:00:00 2001 From: Clement Erena Date: Mon, 6 Jan 2025 13:32:13 +0100 Subject: [PATCH] feat(observability-lib): can specify max data points on panels --- observability-lib/grafana/panels.go | 49 ++++++++++++++++++++--------- 1 file changed, 35 insertions(+), 14 deletions(-) diff --git a/observability-lib/grafana/panels.go b/observability-lib/grafana/panels.go index 9869a2317..53522d79d 100644 --- a/observability-lib/grafana/panels.go +++ b/observability-lib/grafana/panels.go @@ -89,20 +89,21 @@ func newTransform(options *TransformOptions) dashboard.DataTransformerConfig { } type PanelOptions struct { - Datasource string - Title string - Description string - Span uint32 - Height uint32 - Decimals float64 - Unit string - NoValue string - Min *float64 - Max *float64 - Query []Query - Threshold *ThresholdOptions - Transform *TransformOptions - ColorScheme dashboard.FieldColorModeId + Datasource string + Title string + Description string + Span uint32 + Height uint32 + Decimals float64 + Unit string + NoValue string + Min *float64 + Max *float64 + MaxDataPoints *float64 + Query []Query + Threshold *ThresholdOptions + Transform *TransformOptions + ColorScheme dashboard.FieldColorModeId } type Panel struct { @@ -183,6 +184,10 @@ func NewStatPanel(options *StatPanelOptions) *Panel { Mappings(options.Mappings). ReduceOptions(common.NewReduceDataOptionsBuilder().Calcs([]string{"last"})) + if options.MaxDataPoints != nil { + newPanel.MaxDataPoints(*options.MaxDataPoints) + } + if options.Min != nil { newPanel.Min(*options.Min) } @@ -259,6 +264,10 @@ func NewTimeSeriesPanel(options *TimeSeriesPanelOptions) *Panel { Type(options.ScaleDistribution), ) + if options.MaxDataPoints != nil { + newPanel.MaxDataPoints(*options.MaxDataPoints) + } + if options.Min != nil { newPanel.Min(*options.Min) } @@ -326,6 +335,10 @@ func NewGaugePanel(options *GaugePanelOptions) *Panel { Calcs([]string{"lastNotNull"}).Values(false), ) + if options.MaxDataPoints != nil { + newPanel.MaxDataPoints(*options.MaxDataPoints) + } + if options.Min != nil { newPanel.Min(*options.Min) } @@ -368,6 +381,10 @@ func NewTablePanel(options *TablePanelOptions) *Panel { Unit(options.Unit). NoValue(options.NoValue) + if options.MaxDataPoints != nil { + newPanel.MaxDataPoints(*options.MaxDataPoints) + } + if options.Min != nil { newPanel.Min(*options.Min) } @@ -414,6 +431,10 @@ func NewLogPanel(options *LogPanelOptions) *Panel { NoValue(options.NoValue). PrettifyLogMessage(options.PrettifyJSON) + if options.MaxDataPoints != nil { + newPanel.MaxDataPoints(*options.MaxDataPoints) + } + if options.Min != nil { newPanel.Min(*options.Min) }