labels

package
v0.0.0-...-5655933 Latest Latest
Warning

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

Go to latest
Published: Oct 20, 2023 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MetricName   = "__name__"
	AlertName    = "alertname"
	BucketLabel  = "le"
	InstanceName = "instance"
)

Well-known label names used by Prometheus components.

Variables

This section is empty.

Functions

func Compare

func Compare(a, b Labels) int

Compare compares the two label sets. The result will be 0 if a==b, <0 if a < b, and >0 if a > b.

func Equal

func Equal(ls, o Labels) bool

Equal returns whether the two label sets are equal.

Types

type Builder

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

Builder allows modifying Labels.

func NewBuilder

func NewBuilder(base Labels) *Builder

NewBuilder returns a new LabelsBuilder.

func (*Builder) Del

func (b *Builder) Del(ns ...string) *Builder

Del deletes the label of the given name.

func (*Builder) Get

func (b *Builder) Get(n string) string

func (*Builder) Keep

func (b *Builder) Keep(ns ...string) *Builder

Keep removes all labels from the base except those with the given names.

func (*Builder) Labels

func (b *Builder) Labels() Labels

Labels returns the labels from the builder. If no modifications were made, the original labels are returned.

func (*Builder) Range

func (b *Builder) Range(f func(l Label))

Range calls f on each label in the Builder.

func (*Builder) Reset

func (b *Builder) Reset(base Labels)

Reset clears all current state for the builder.

func (*Builder) Set

func (b *Builder) Set(n, v string) *Builder

Set the name/value pair as a label. A value of "" means delete that label.

type Label

type Label struct {
	Name, Value string
}

Label is a key/value pair of strings.

type Labels

type Labels []Label

Labels is a sorted set of labels. Order has to be guaranteed upon instantiation.

func EmptyLabels

func EmptyLabels() Labels

EmptyLabels returns n empty Labels value, for convenience.

func FromMap

func FromMap(m map[string]string) Labels

FromMap returns new sorted Labels from the given map.

func FromStrings

func FromStrings(ss ...string) Labels

FromStrings creates new labels from pairs of strings.

func New

func New(ls ...Label) Labels

New returns a sorted Labels from the given labels. The caller has to guarantee that all label names are unique.

func (Labels) Bytes

func (ls Labels) Bytes(buf []byte) []byte

Bytes returns ls as a byte slice. It uses an byte invalid character as a separator and so should not be used for printing.

func (Labels) BytesWithLabels

func (ls Labels) BytesWithLabels(buf []byte, names ...string) []byte

BytesWithLabels is just as Bytes(), but only for labels matching names. 'names' have to be sorted in ascending order.

func (Labels) BytesWithoutLabels

func (ls Labels) BytesWithoutLabels(buf []byte, names ...string) []byte

BytesWithoutLabels is just as Bytes(), but only for labels not matching names. 'names' have to be sorted in ascending order.

func (Labels) Copy

func (ls Labels) Copy() Labels

Copy returns a copy of the labels.

func (*Labels) CopyFrom

func (ls *Labels) CopyFrom(b Labels)

Copy labels from b on top of whatever was in ls previously, reusing memory or expanding if needed.

func (Labels) Get

func (ls Labels) Get(name string) string

Get returns the value for the label with the given name. Returns an empty string if the label doesn't exist.

func (Labels) Has

func (ls Labels) Has(name string) bool

Has returns true if the label with the given name is present.

func (Labels) HasDuplicateLabelNames

func (ls Labels) HasDuplicateLabelNames() (string, bool)

HasDuplicateLabelNames returns whether ls has duplicate label names. It assumes that the labelset is sorted.

func (Labels) Hash

func (ls Labels) Hash() uint64

Hash returns a hash value for the label set. Note: the result is not guaranteed to be consistent across different runs of Prometheus.

func (Labels) HashForLabels

func (ls Labels) HashForLabels(b []byte, names ...string) (uint64, []byte)

HashForLabels returns a hash value for the labels matching the provided names. 'names' have to be sorted in ascending order.

func (Labels) HashWithoutLabels

func (ls Labels) HashWithoutLabels(b []byte, names ...string) (uint64, []byte)

HashWithoutLabels returns a hash value for all labels except those matching the provided names. 'names' have to be sorted in ascending order.

func (*Labels) InternStrings

func (ls *Labels) InternStrings(intern func(string) string)

InternStrings calls intern on every string value inside ls, replacing them with what it returns.

func (Labels) IsEmpty

func (ls Labels) IsEmpty() bool

IsEmpty returns true if ls represents an empty set of labels.

func (Labels) IsValid

func (ls Labels) IsValid() bool

IsValid checks if the metric name or label names are valid.

func (Labels) Len

func (ls Labels) Len() int

func (Labels) Less

func (ls Labels) Less(i, j int) bool

func (Labels) Map

func (ls Labels) Map() map[string]string

Map returns a string map of the labels.

func (Labels) MarshalJSON

func (ls Labels) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler.

func (Labels) MarshalYAML

func (ls Labels) MarshalYAML() (interface{}, error)

MarshalYAML implements yaml.Marshaler.

func (Labels) MatchLabels

func (ls Labels) MatchLabels(on bool, names ...string) Labels

MatchLabels returns a subset of Labels that matches/does not match with the provided label names based on the 'on' boolean. If on is set to true, it returns the subset of labels that match with the provided label names and its inverse when 'on' is set to false.

func (Labels) Range

func (ls Labels) Range(f func(l Label))

Range calls f on each label.

func (Labels) ReleaseStrings

func (ls Labels) ReleaseStrings(release func(string))

ReleaseStrings calls release on every string value inside ls.

func (Labels) String

func (ls Labels) String() string

func (Labels) Swap

func (ls Labels) Swap(i, j int)

func (*Labels) UnmarshalJSON

func (ls *Labels) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

func (*Labels) UnmarshalYAML

func (ls *Labels) UnmarshalYAML(unmarshal func(interface{}) error) error

UnmarshalYAML implements yaml.Unmarshaler.

func (Labels) Validate

func (ls Labels) Validate(f func(l Label) error) error

Validate calls f on each label. If f returns a non-nil error, then it returns that error cancelling the iteration.

func (Labels) WithoutEmpty

func (ls Labels) WithoutEmpty() Labels

WithoutEmpty returns the labelset without empty labels. May return the same labelset.

type ScratchBuilder

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

ScratchBuilder allows efficient construction of a Labels from scratch.

func NewScratchBuilder

func NewScratchBuilder(n int) ScratchBuilder

NewScratchBuilder creates a ScratchBuilder initialized for Labels with n entries.

func (*ScratchBuilder) Add

func (b *ScratchBuilder) Add(name, value string)

Add a name/value pair. Note if you Add the same name twice you will get a duplicate label, which is invalid.

func (*ScratchBuilder) Assign

func (b *ScratchBuilder) Assign(ls Labels)

Assign is for when you already have a Labels which you want this ScratchBuilder to return.

func (*ScratchBuilder) Labels

func (b *ScratchBuilder) Labels() Labels

Return the name/value pairs added so far as a Labels object. Note: if you want them sorted, call Sort() first.

func (*ScratchBuilder) Overwrite

func (b *ScratchBuilder) Overwrite(ls *Labels)

Write the newly-built Labels out to ls. Callers must ensure that there are no other references to ls, or any strings fetched from it.

func (*ScratchBuilder) Reset

func (b *ScratchBuilder) Reset()

func (*ScratchBuilder) Sort

func (b *ScratchBuilder) Sort()

Sort the labels added so far by name.

Jump to

Keyboard shortcuts

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