Skip to content

Commit 6c311f0

Browse files
committed
Bump grafana-sdk, inrtoduce AddCollapsedRow() and new configs to panel options
1 parent 8651b60 commit 6c311f0

5 files changed

Lines changed: 39 additions & 6 deletions

File tree

observability-lib/go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ toolchain go1.24.10
66

77
require (
88
github.com/go-resty/resty/v2 v2.17.1
9-
github.com/grafana/grafana-foundation-sdk/go v0.0.0-20251008104447-4b342c01ab41
9+
github.com/grafana/grafana-foundation-sdk/go v0.0.12
1010
github.com/spf13/cobra v1.10.2
1111
github.com/stretchr/testify v1.11.1
1212
gopkg.in/yaml.v3 v3.0.1

observability-lib/go.sum

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

observability-lib/grafana/builder.go

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@ type BuilderOptions struct {
3434
AlertsTags map[string]string
3535
}
3636

37+
type RowOptions struct {
38+
Collapsed bool
39+
}
40+
3741
func NewBuilder(options *BuilderOptions) *Builder {
3842
plugins.RegisterDefaultPlugins()
3943
cog.NewRuntime().RegisterPanelcfgVariant(businessvariable.VariantConfig())
@@ -73,8 +77,14 @@ func (b *Builder) AddVars(items ...cog.Builder[dashboard.VariableModel]) {
7377
}
7478
}
7579

76-
func (b *Builder) AddRow(title string) {
77-
b.dashboardBuilder.WithRow(dashboard.NewRowBuilder(title))
80+
func (b *Builder) AddRow(title string, options ...RowOptions) {
81+
row := dashboard.NewRowBuilder(title)
82+
for _, o := range options {
83+
if o.Collapsed {
84+
row.Collapsed(true)
85+
}
86+
}
87+
b.dashboardBuilder.WithRow(row)
7888
}
7989

8090
func (b *Builder) getPanelCounter() uint32 {

observability-lib/grafana/builder_test.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,20 @@ func TestBuilder_AddRow(t *testing.T) {
209209
}
210210
require.IsType(t, dashboard.RowPanel{}, *o.Dashboard.Panels[0].RowPanel)
211211
})
212+
213+
t.Run("AddRow adds a collapsed row to the dashboard", func(t *testing.T) {
214+
builder := grafana.NewBuilder(&grafana.BuilderOptions{
215+
Name: "Dashboard Name",
216+
})
217+
218+
builder.AddRow("Row Title", grafana.RowOptions{Collapsed: true})
219+
o, err := builder.Build()
220+
if err != nil {
221+
t.Errorf("Error building dashboard: %v", err)
222+
}
223+
require.IsType(t, dashboard.RowPanel{}, *o.Dashboard.Panels[0].RowPanel)
224+
require.True(t, o.Dashboard.Panels[0].RowPanel.Collapsed)
225+
})
212226
}
213227

214228
func TestBuilder_AddPanel(t *testing.T) {

observability-lib/grafana/panels.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,7 @@ type PanelOptions struct {
171171
NoValue string
172172
Min *float64
173173
Max *float64
174+
FieldMinMax bool
174175
MaxDataPoints *float64
175176
Query []Query
176177
Threshold *ThresholdOptions
@@ -259,6 +260,7 @@ func NewStatPanel(options *StatPanelOptions) *Panel {
259260
Height(options.Height).
260261
Unit(options.Unit).
261262
NoValue(options.NoValue).
263+
FieldMinMax(options.FieldMinMax).
262264
Text(common.NewVizTextDisplayOptionsBuilder().TitleSize(10).ValueSize(18)).
263265
ColorMode(options.ColorMode).
264266
GraphMode(options.GraphMode).
@@ -376,6 +378,7 @@ func NewTimeSeriesPanel(options *TimeSeriesPanelOptions) *Panel {
376378
Height(options.Height).
377379
Unit(options.Unit).
378380
NoValue(options.NoValue).
381+
FieldMinMax(options.FieldMinMax).
379382
LineWidth(*options.LineWidth).
380383
FillOpacity(options.FillOpacity).
381384
Legend(newLegend(options.LegendOptions)).
@@ -489,6 +492,7 @@ func NewBarGaugePanel(options *BarGaugePanelOptions) *Panel {
489492
NoValue(options.NoValue).
490493
Height(options.Height).
491494
Unit(options.Unit).
495+
FieldMinMax(options.FieldMinMax).
492496
ReduceOptions(
493497
common.NewReduceDataOptionsBuilder().
494498
Calcs([]string{"lastNotNull"}).Values(options.ShowAllValues),
@@ -564,6 +568,7 @@ func NewGaugePanel(options *GaugePanelOptions) *Panel {
564568
NoValue(options.NoValue).
565569
Height(options.Height).
566570
Unit(options.Unit).
571+
FieldMinMax(options.FieldMinMax).
567572
ReduceOptions(
568573
common.NewReduceDataOptionsBuilder().
569574
Calcs([]string{"lastNotNull"}).Values(options.ShowAllValues),
@@ -651,6 +656,7 @@ func NewTablePanel(options *TablePanelOptions) *Panel {
651656
Height(options.Height).
652657
Unit(options.Unit).
653658
NoValue(options.NoValue).
659+
FieldMinMax(options.FieldMinMax).
654660
Filterable(options.Filterable)
655661

656662
if options.Interval != "" {
@@ -763,6 +769,7 @@ func NewLogPanel(options *LogPanelOptions) *Panel {
763769
Span(options.Span).
764770
Height(options.Height).
765771
NoValue(options.NoValue).
772+
FieldMinMax(options.FieldMinMax).
766773
ShowTime(options.ShowTime).
767774
PrettifyLogMessage(options.PrettifyJSON).
768775
EnableLogDetails(*options.EnableLogDetails).
@@ -833,7 +840,8 @@ func NewHeatmapPanel(options *HeatmapPanelOptions) *Panel {
833840
Span(options.Span).
834841
Height(options.Height).
835842
Unit(options.Unit).
836-
NoValue(options.NoValue)
843+
NoValue(options.NoValue).
844+
FieldMinMax(options.FieldMinMax)
837845

838846
if options.Interval != "" {
839847
newPanel.Interval(options.Interval)
@@ -969,6 +977,7 @@ func NewHistogramPanel(options *HistogramPanelOptions) *Panel {
969977
Height(options.Height).
970978
Unit(options.Unit).
971979
NoValue(options.NoValue).
980+
FieldMinMax(options.FieldMinMax).
972981
ScaleDistribution(common.NewScaleDistributionConfigBuilder().
973982
Type(options.ScaleDistribution),
974983
).

0 commit comments

Comments
 (0)