Dashboard Builder#
Constructor#
import "github.com/perses/perses/go-sdk/dashboard"
var options []dashboard.Option
dashboard.New("my Super Dashboard", options...)
Need to provide the name of the dashboard and a list of options.
Default options#
- Name(): with the name provided in the constructor
- Duration(): one hour
Available options#
Name#
Define the dashboard metadata name and display name.
ProjectName#
Define the dashboard project name in metadata.
Duration#
Define the dashboard duration.
RefreshInterval#
import "time"
import "github.com/perses/perses/go-sdk/dashboard"
dashboard.RefreshInterval(15*time.minutes)
Define the dashboard refresh interval.
AddPanelGroup#
import "github.com/perses/perses/go-sdk/dashboard"
import "github.com/perses/perses/go-sdk/panel-group"
var panelGroupOptions []panelgroup.Option
dashboard.AddPanelGroup("My Super Panel Group", panelGroupOptions...)
Add a panel group to the dashboard. More info at Panel Group.
AddDatasource#
import "github.com/perses/perses/go-sdk/dashboard"
import "github.com/perses/perses/go-sdk/datasource"
var datasourceOptions []datasource.Option
dashboard.AddDatasource("MySuperDatasourceName", datasourceOptions...)
Add a local datasource to the dashboard. More info at Datasource.
AddVariable#
import "github.com/perses/perses/go-sdk/dashboard"
import "github.com/perses/perses/go-sdk/variable"
var variableOptions []variable.Option
dashboard.AddVariable("MySuperVariableName", variableOptions...)
Add a local variable to the dashboard. More info at Variable.
AddVariableGroup#
import "github.com/perses/perses/go-sdk/dashboard"
import "github.com/perses/perses/go-sdk/variable-group"
var variableGroupOptions []variablegroup.Option
dashboard.AddVariableGroup(variableGroupOptions...)
Add a group of variables to the dashboard. More info at Variable Group.
Example#
package main
import (
"time"
"github.com/perses/perses/go-sdk/dashboard"
"github.com/perses/perses/go-sdk/panel-group"
"github.com/perses/perses/go-sdk/panel/markdown"
promDs "github.com/perses/perses/go-sdk/prometheus/datasource"
labelValuesVar "github.com/perses/perses/go-sdk/prometheus/variable/label-values"
listVar "github.com/perses/perses/go-sdk/variable/list-variable"
)
func main() {
dashboard.New("Example Dashboard",
dashboard.ProjectName("MyProject"),
dashboard.RefreshInterval(1*time.Minute),
dashboard.Duration(24*time.Hour),
// VARIABLES
dashboard.AddVariable("stack",
listVar.List(
labelValuesVar.PrometheusLabelValues("stack",
labelValuesVar.Matchers("thanos_build_info{}"),
labelValuesVar.Datasource("promDemo"),
),
listVar.DisplayName("PaaS"),
),
),
// ROWS
dashboard.AddPanelGroup("Info",
panelgroup.PanelsPerLine(3),
// PANELS
panelgroup.AddPanel("Contact",
markdown.Markdown("Dashboard owner: [John Doe](mailto:zzz)"),
),
),
// DATASOURCES
dashboard.AddDatasource("promDemo", promDs.Prometheus(promDs.HTTPProxy("#####"))),
)
}