promrelabel

package
v0.11.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 7, 2024 License: AGPL-3.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CleanLabels

func CleanLabels(labels []prompbmarshal.Label)

CleanLabels sets label.Name and label.Value to an empty string for all the labels.

This should help GC cleaning up label.Name and label.Value strings.

func FinalizeLabels

func FinalizeLabels(dst, src []prompbmarshal.Label) []prompbmarshal.Label

FinalizeLabels removes labels with "__" in the beginning (except of "__name__").

func GetLabelByName

func GetLabelByName(labels []prompbmarshal.Label, name string) *prompbmarshal.Label

GetLabelByName returns label with the given name from labels.

func GetScrapeURL

func GetScrapeURL(labels *promutils.Labels, extraParams map[string][]string) (string, string)

GetScrapeURL makes scrape url and __address_ labels for the given labels and extraParams.

func LabelsToString

func LabelsToString(labels []prompbmarshal.Label) string

LabelsToString returns Prometheus string representation for the given labels.

Labels in the returned string are sorted by name, while the __name__ label is put in front of {} labels.

func SanitizeLabelName

func SanitizeLabelName(name string) string

SanitizeLabelName replaces unsupported by Prometheus chars in label names with _.

See https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels

func SanitizeMetricName

func SanitizeMetricName(value string) string

SanitizeMetricName replaces unsupported by Prometheus chars in metric names with _.

See https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels

func SortLabels

func SortLabels(labels []prompbmarshal.Label)

SortLabels sorts labels in alphabetical order.

Types

type DebugStep

type DebugStep struct {
	// Rule contains string representation of the rule step
	Rule string

	// In contains the input labels before the execution of the rule step
	In string

	// Out contains the output labels after the execution of the rule step
	Out string
}

DebugStep contains debug information about a single relabeling rule step

func (DebugStep) String

func (ds DebugStep) String() string

String returns human-readable representation for ds

type IfExpression

type IfExpression struct {
	// contains filtered or unexported fields
}

IfExpression represents PromQL-like label filters such as `metric_name{filters...}`.

It may contain either a single filter or multiple filters, which are executed with `or` operator.

Examples:

if: 'foo{bar="baz"}'

if: - 'foo{bar="baz"}' - '{x=~"y"}'

func (*IfExpression) MarshalJSON

func (ie *IfExpression) MarshalJSON() ([]byte, error)

MarshalJSON marshals ie to JSON.

func (*IfExpression) MarshalYAML

func (ie *IfExpression) MarshalYAML() (interface{}, error)

MarshalYAML marshals ie to YAML

func (*IfExpression) Match

func (ie *IfExpression) Match(labels []prompbmarshal.Label) bool

Match returns true if labels match at least a single label filter inside ie.

Match returns true for empty ie.

func (*IfExpression) Parse

func (ie *IfExpression) Parse(s string) error

Parse parses ie from s.

func (*IfExpression) String

func (ie *IfExpression) String() string

String returns string representation of ie.

func (*IfExpression) UnmarshalJSON

func (ie *IfExpression) UnmarshalJSON(data []byte) error

UnmarshalJSON unmarshals ie from JSON data.

func (*IfExpression) UnmarshalYAML

func (ie *IfExpression) UnmarshalYAML(f func(interface{}) error) error

UnmarshalYAML unmarshals ie from YAML passed to f.

type MultiLineRegex

type MultiLineRegex struct {
	S string
}

MultiLineRegex contains a regex, which can be split into multiple lines.

These lines are joined with "|" then. For example:

regex: - foo - bar

is equivalent to:

regex: "foo|bar"

func (*MultiLineRegex) MarshalYAML

func (mlr *MultiLineRegex) MarshalYAML() (interface{}, error)

MarshalYAML marshals mlr to YAML.

func (*MultiLineRegex) UnmarshalYAML

func (mlr *MultiLineRegex) UnmarshalYAML(f func(interface{}) error) error

UnmarshalYAML unmarshals mlr from YAML passed to f.

type ParsedConfigs

type ParsedConfigs struct {
	// contains filtered or unexported fields
}

ParsedConfigs represents parsed relabel configs.

func ParseRelabelConfigs

func ParseRelabelConfigs(rcs []RelabelConfig) (*ParsedConfigs, error)

ParseRelabelConfigs parses rcs to dst.

func (*ParsedConfigs) Apply

func (pcs *ParsedConfigs) Apply(labels []prompbmarshal.Label, labelsOffset int) []prompbmarshal.Label

Apply applies pcs to labels starting from the labelsOffset.

func (*ParsedConfigs) ApplyDebug

func (pcs *ParsedConfigs) ApplyDebug(labels []prompbmarshal.Label) ([]prompbmarshal.Label, []DebugStep)

ApplyDebug applies pcs to labels in debug mode.

It returns DebugStep list - one entry per each applied relabeling step.

func (*ParsedConfigs) Len

func (pcs *ParsedConfigs) Len() int

Len returns the number of relabel configs in pcs.

func (*ParsedConfigs) String

func (pcs *ParsedConfigs) String() string

String returns human-readabale representation for pcs.

type RelabelConfig

type RelabelConfig struct {
	If           *IfExpression   `yaml:"if,omitempty"`
	Action       string          `yaml:"action,omitempty"`
	SourceLabels []string        `yaml:"source_labels,flow,omitempty"`
	Separator    *string         `yaml:"separator,omitempty"`
	TargetLabel  string          `yaml:"target_label,omitempty"`
	Regex        *MultiLineRegex `yaml:"regex,omitempty"`
	Modulus      uint64          `yaml:"modulus,omitempty"`
	Replacement  *string         `yaml:"replacement,omitempty"`

	// Match is used together with Labels for `action: graphite`. For example:
	// - action: graphite
	//   match: 'foo.*.*.bar'
	//   labels:
	//     job: '$1'
	//     instance: '${2}:8080'
	Match string `yaml:"match,omitempty"`

	// Labels is used together with Match for `action: graphite`. For example:
	// - action: graphite
	//   match: 'foo.*.*.bar'
	//   labels:
	//     job: '$1'
	//     instance: '${2}:8080'
	Labels map[string]string `yaml:"labels,omitempty"`
}

RelabelConfig represents relabel config.

See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL