Skip to content

PromQL Variable builder#

The PromQL Variable builder helps creating prometheus promQL variables in the format expected by Perses.

Usage#

package myDaC

import (
    promQLVarBuilder "github.com/perses/perses/cue/dac-utils/prometheus/variable/promql"
)

promQLVarBuilder & {} // input parameters expected

Parameters#

Parameter Type Mandatory/Optional Default Description
#name string Mandatory The name of this variable.
#datasourceName string Mandatory The name of the datasource to query.
#label string Mandatory to name parameter The label from which to retrieve the list of values. /!\ The filter library does NOT rely on this parameter to build the corresponding matcher, only #name is used.
#allowAllValue boolean Optional false Whether to append the "All" value to the list.
#allowMultiple boolean Optional false Whether to allow multi-selection of values.
#capturingRegexp string Optional Regexp used to catch and filter the results of the query. If empty, then nothing is filtered (equivalent of setting it to (.*)).
#customAllValue string Optional Custom value that will be used if #allowAllValue is true and if All is selected.
#display Display Optional Display object to tune the display name, description and visibility (show/hide).
#metric string Optional The name of the source metric to be used. /!\ Mandatory if you want to rely on the standard query pattern, thus didn't provide a value to the #query parameter.
#query string Optional Custom query to be used for this variable. /!\ Mandatory if you didn't provide a value to the #metric parameter.
#sort Sort Optional Sort method to apply when rendering the list of values.

Output#

Field Type Description
variable Variable The final variable object, to be passed to the dashboard.

Example#

package myDaC

import (
    promQLVarBuilder "github.com/perses/perses/cue/dac-utils/prometheus/variable/promql"
)

{promQLVarBuilder & {
    #name:           "container"
    #metric:         "kube_pod_container_info"
    #allowAllValue:  true
    #allowMultiple:  true
    #datasourceName: "promDemo"
}}.variable