BarChart Go SDK

Constructor#

package main

import bar "github.com/perses/plugins/barchart/sdk/go"

var options []bar.Option
bar.Chart(options...)

Need a list of options.

Default options#

  • Calculation(): last

Available options#

Calculation#

package main

import (
	"github.com/perses/perses/go-sdk/common"
	"github.com/perses/plugins/barchart/sdk/go"
)

bar.Calculation(common.LastCalculation)

Define the chart calculation.

Format#

package main

import (
	"github.com/perses/perses/go-sdk/common"
	bar "github.com/perses/plugins/barchart/sdk/go"
)

bar.Format(common.Format{...})

Define the chart format.

SortingBy#

import bar "github.com/perses/plugins/barchart/sdk/go"

bar.SortingBy(bar.AscSort)

Define the chart sorting.

WithMode#

import bar "github.com/perses/plugins/barchart/sdk/go"

bar.WithMode(bar.PercentageMode)

Define the chart mode.

WithOrientation#

import bar "github.com/perses/plugins/barchart/sdk/go"

bar.WithOrientation(bar.VerticalOrientation)

Define the chart orientation.

WithGroupBy#

import bar "github.com/perses/plugins/barchart/sdk/go"

bar.WithGroupBy([]string{"job", "instance"})

Define label keys used to group time series.

WithStacked#

import bar "github.com/perses/plugins/barchart/sdk/go"

bar.WithStacked(true)

Enable or disable stacked rendering for grouped bars.

Example#

package main

import (
	"github.com/perses/perses/go-sdk/common"
	"github.com/perses/perses/go-sdk/dashboard"
	panelgroup "github.com/perses/perses/go-sdk/panel-group"
	bar "github.com/perses/plugins/barchart/sdk/go"
)

func main() {
	dashboard.New("Example Dashboard",
		dashboard.AddPanelGroup("Resource usage",
			panelgroup.AddPanel("Container memory",
				bar.Chart(
					bar.Calculation(common.LastCalculation),
					bar.Format(common.Format{
						Unit: common.BytesUnit,
					}),
					bar.SortingBy(bar.AscSort),
					bar.WithMode(bar.PercentageMode),
					bar.WithOrientation(bar.VerticalOrientation),
					bar.WithGroupBy([]string{"job"}),
					bar.WithStacked(true),
				),
			),
		),
	)
}