Skip to content

Table Go SDK#

Constructor#

package main

import table "github.com/perses/plugins/table/sdk/go"

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

Need a list of options.

Default options#

  • None

Available options#

WithDensity#

package main

import table "github.com/perses/plugins/table/sdk/go"

table.WithDensity(table.CompactDensity)
table.WithDensity(table.StandardDensity)

Set the table density. Available options: CompactDensity, StandardDensity.

WithColumnSettings#

package main

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

table.WithColumnSettings([]table.ColumnSettings{
    {
        Name:          "metric_name",
        Header:        "Metric",
        Align:         table.LeftAlign,
        EnableSorting: true,
        Width:         200.0,
        Format: &common.Format{
            Unit:          &common.DecimalUnit,
            DecimalPlaces: 2,
        },
    },
})

Configure individual columns. Available align options: LeftAlign, CenterAlign, RightAlign. Available sort options: AscSort, DescSort.

WithCellSettings#

package main

import table "github.com/perses/plugins/table/sdk/go"

table.WithCellSettings([]table.CellSettings{
    {
        Condition: table.Condition{
            Kind: table.RangeConditionKind,
            Spec: &table.RangeConditionSpec{
                Min: 0.8,
                Max: 1.0,
            },
        },
        TextColor:       "#FF0000",
        BackgroundColor: "#FFEEEE",
    },
})

Configure cell styling based on conditions. Available condition kinds: ValueConditionKind, RangeConditionKind, RegexConditionKind, MiscConditionKind.

Transform#

package main

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

table.Transform([]common.Transform{
    // Add transforms here
})

Apply data transformations to the table data.

Example#

package main

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

func main() {
    dashboard.New("Table Dashboard",
        dashboard.AddPanel("Metrics Table",
            panel.New(
                table.Chart(
                    table.WithDensity(table.CompactDensity),
                    table.WithColumnSettings([]table.ColumnSettings{
                        {
                            Name:          "instance",
                            Header:        "Instance",
                            Align:         table.LeftAlign,
                            EnableSorting: true,
                        },
                        {
                            Name:   "value",
                            Header: "CPU Usage",
                            Align:  table.RightAlign,
                            Format: &common.Format{
                                Unit:          &common.PercentUnit,
                                DecimalPlaces: 1,
                            },
                        },
                    }),
                ),
            ),
        ),
    )
}```