PieChart Go SDK

Constructor#

package main

import pie "github.com/perses/plugins/piechart/sdk/go"

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

Need a list of options.

Default options#

  • Calculation: last
  • Visual outer radius: 100 (100%)

Available options#

Calculation#

package main

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

pie.Calculation(common.LastCalculation)

Define how the pie chart calculates the value for each series.

WithLegend#

package main

import pie "github.com/perses/plugins/piechart/sdk/go"

pie.WithLegend(pie.Legend{
	Position: pie.BottomPosition,
	Mode:     pie.ListMode,
	Size:     pie.SmallSize,
})

Define legend properties for the pie chart. Available positions: BottomPosition, RightPosition. Available modes: ListMode, TableMode. Available sizes: SmallSize, MediumSize.

WithVisual#

package main

import pie "github.com/perses/plugins/piechart/sdk/go"

pie.WithVisual(pie.Visual{
	OuterRadius: 90,
})

Define the pie chart's radii and colors. Radius values are whole-number percentages from 0 through 100. Inner and outer radii are passed to ECharts without enforcing an order. WithVisual preserves an OuterRadius of 0 rather than replacing it with the default.

pie.WithVisual(pie.Visual{
	InnerRadius:  40,
	OuterRadius:  90,
	ColorPalette: []string{"#3366cc", "#dc3912"},
})

Set InnerRadius to create a doughnut chart. When omitted, the chart renders as a pie.

WithShowLabels#

pie.WithShowLabels(true)

Show labels inside the pie chart segments.

WithFormat#

package main

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

pie.WithFormat(&common.Format{
	Unit:          &common.DecimalUnit,
	DecimalPlaces: 2,
})

Define the format for pie chart values.

Example#

package main

import (
	"github.com/perses/perses/go-sdk/common"
	"github.com/perses/perses/go-sdk/dashboard"
	"github.com/perses/perses/go-sdk/panel"
	pie "github.com/perses/plugins/piechart/sdk/go"
)

func main() {
	dashboard.New("Pie Chart Dashboard",
		dashboard.AddPanel("Resource Usage Distribution",
			panel.New(
				pie.Chart(
					pie.WithLegend(pie.Legend{
						Position: pie.RightPosition,
						Mode:     pie.ListMode,
						Size:     pie.MediumSize,
					}),
					pie.WithVisual(pie.Visual{
						InnerRadius: 40,
						OuterRadius: 90,
					}),
					pie.WithFormat(&common.Format{
						Unit:          &common.BytesUnit,
						DecimalPlaces: 1,
					}),
				),
			),
		),
	)
}