Skip to content

Commit

Permalink
Various updates to observability library (#1034)
Browse files Browse the repository at this point in the history
* Various updates to observability library

- Fix TransformOptions not accepting arbitrary options
- Cleanup Hide, Multi, IncludeAll options in variables
- Add Data Source variable

* Add text box variable
  • Loading branch information
leeyikjiun authored Feb 18, 2025
1 parent f365e2b commit 0a09711
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 11 deletions.
2 changes: 1 addition & 1 deletion observability-lib/grafana/panels.go
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ func newThresholds(options *ThresholdOptions) *dashboard.ThresholdsConfigBuilder

type TransformOptions struct {
ID string
Options map[string]string
Options map[string]any
}

func newTransform(options *TransformOptions) dashboard.DataTransformerConfig {
Expand Down
43 changes: 33 additions & 10 deletions observability-lib/grafana/variables.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,6 @@ type QueryVariableOptions struct {
Regex string
IncludeAll bool
QueryWithType map[string]any
Hide *dashboard.VariableHide
}

func NewQueryVariable(options *QueryVariableOptions) *dashboard.QueryVariableBuilder {
Expand All @@ -98,14 +97,16 @@ func NewQueryVariable(options *QueryVariableOptions) *dashboard.QueryVariableBui
variable := dashboard.NewQueryVariableBuilder(options.Name).
Label(options.Label).
Description(options.Description).
Hide(options.Hide).
Datasource(datasourceRef(options.Datasource)).
Current(dashboard.VariableOption{
Selected: cog.ToPtr[bool](true),
Text: dashboard.StringOrArrayOfString{ArrayOfString: []string{options.CurrentText}},
Value: dashboard.StringOrArrayOfString{ArrayOfString: []string{options.CurrentValue}},
}).
Sort(dashboard.VariableSortAlphabeticalAsc).
Multi(options.Multi)
Multi(options.Multi).
IncludeAll(options.IncludeAll)

if options.Query != "" {
variable.Query(dashboard.StringOrMap{String: cog.ToPtr[string](options.Query)})
Expand All @@ -117,14 +118,6 @@ func NewQueryVariable(options *QueryVariableOptions) *dashboard.QueryVariableBui
variable.Regex(options.Regex)
}

if options.IncludeAll {
variable.IncludeAll(options.IncludeAll)
}

if options.Hide != nil {
variable.Hide(*options.Hide)
}

return variable
}

Expand All @@ -149,3 +142,33 @@ func NewIntervalVariable(options *IntervalVariableOptions) *dashboard.IntervalVa
Value: dashboard.StringOrArrayOfString{ArrayOfString: []string{options.CurrentValue}},
})
}

type DataSourceVariableOptions struct {
*VariableOption
Type string
Regex string
Multi bool
IncludeAll bool
}

func NewDataSourceVariable(options *DataSourceVariableOptions) *dashboard.DatasourceVariableBuilder {
return dashboard.NewDatasourceVariableBuilder(options.Name).
Label(options.Label).
Description(options.Description).
Hide(options.Hide).
Type(options.Type).
Regex(options.Regex).
Multi(options.Multi).
IncludeAll(options.IncludeAll)
}

type TextBoxVariableOptions struct {
*VariableOption
}

func NewTextBoxVariableOptions(options *TextBoxVariableOptions) *dashboard.TextBoxVariableBuilder {
return dashboard.NewTextBoxVariableBuilder(options.Name).
Label(options.Label).
Description(options.Description).
Hide(options.Hide)
}

0 comments on commit 0a09711

Please sign in to comment.