Documentation

Overview

    Package model contains common data structures that are shared across Prometheus components and libraries.

    Index

    Constants

    View Source
    const (
    	// AlertNameLabel is the name of the label containing the an alert's name.
    	AlertNameLabel = "alertname"
    
    	// ExportedLabelPrefix is the prefix to prepend to the label names present in
    	// exported metrics if a label of the same name is added by the server.
    	ExportedLabelPrefix = "exported_"
    
    	// MetricNameLabel is the label name indicating the metric name of a
    	// timeseries.
    	MetricNameLabel = "__name__"
    
    	// SchemeLabel is the name of the label that holds the scheme on which to
    	// scrape a target.
    	SchemeLabel = "__scheme__"
    
    	// AddressLabel is the name of the label that holds the address of
    	// a scrape target.
    	AddressLabel = "__address__"
    
    	// MetricsPathLabel is the name of the label that holds the path on which to
    	// scrape a target.
    	MetricsPathLabel = "__metrics_path__"
    
    	// ReservedLabelPrefix is a prefix which is not legal in user-supplied
    	// label names.
    	ReservedLabelPrefix = "__"
    
    	// MetaLabelPrefix is a prefix for labels that provide meta information.
    	// Labels with this prefix are used for intermediate label processing and
    	// will not be attached to time series.
    	MetaLabelPrefix = "__meta_"
    
    	// TmpLabelPrefix is a prefix for temporary labels as part of relabelling.
    	// Labels with this prefix are used for intermediate label processing and
    	// will not be attached to time series. This is reserved for use in
    	// Prometheus configuration files by users.
    	TmpLabelPrefix = "__tmp_"
    
    	// ParamLabelPrefix is a prefix for labels that provide URL parameters
    	// used to scrape a target.
    	ParamLabelPrefix = "__param_"
    
    	// JobLabel is the label name indicating the job from which a timeseries
    	// was scraped.
    	JobLabel = "job"
    
    	// InstanceLabel is the label name used for the instance label.
    	InstanceLabel = "instance"
    
    	// BucketLabel is used for the label that defines the upper bound of a
    	// bucket of a histogram ("le" -> "less or equal").
    	BucketLabel = "le"
    
    	// QuantileLabel is used for the label that defines the quantile in a
    	// summary.
    	QuantileLabel = "quantile"
    )
    View Source
    const (
    
    	// Earliest is the earliest Time representable. Handy for
    	// initializing a high watermark.
    	Earliest = Time(math.MinInt64)
    	// Latest is the latest Time representable. Handy for initializing
    	// a low watermark.
    	Latest = Time(math.MaxInt64)
    )
    View Source
    const SeparatorByte byte = 255

      SeparatorByte is a byte that cannot occur in valid UTF-8 sequences and is used to separate label names, label values, and other strings from each other when calculating their combined hash value (aka signature aka fingerprint).

      Variables

      View Source
      var (
      	// ZeroSamplePair is the pseudo zero-value of SamplePair used to signal a
      	// non-existing sample pair. It is a SamplePair with timestamp Earliest and
      	// value 0.0. Note that the natural zero value of SamplePair has a timestamp
      	// of 0, which is possible to appear in a real SamplePair and thus not
      	// suitable to signal a non-existing SamplePair.
      	ZeroSamplePair = SamplePair{Timestamp: Earliest}
      
      	// ZeroSample is the pseudo zero-value of Sample used to signal a
      	// non-existing sample. It is a Sample with timestamp Earliest, value 0.0,
      	// and metric nil. Note that the natural zero value of Sample has a timestamp
      	// of 0, which is possible to appear in a real Sample and thus not suitable
      	// to signal a non-existing Sample.
      	ZeroSample = Sample{Timestamp: Earliest}
      )
      View Source
      var LabelNameRE = regexp.MustCompile("^[a-zA-Z_][a-zA-Z0-9_]*$")

        LabelNameRE is a regular expression matching valid label names. Note that the IsValid method of LabelName performs the same check but faster than a match with this regular expression.

        View Source
        var (
        	// MetricNameRE is a regular expression matching valid metric
        	// names. Note that the IsValidMetricName function performs the same
        	// check but faster than a match with this regular expression.
        	MetricNameRE = regexp.MustCompile(`^[a-zA-Z_:][a-zA-Z0-9_:]*$`)
        )

        Functions

        func IsValidMetricName

        func IsValidMetricName(n LabelValue) bool

          IsValidMetricName returns true iff name matches the pattern of MetricNameRE. This function, however, does not use MetricNameRE for the check but a much faster hardcoded implementation.

          func LabelsToSignature

          func LabelsToSignature(labels map[string]string) uint64

            LabelsToSignature returns a quasi-unique signature (i.e., fingerprint) for a given label set. (Collisions are possible but unlikely if the number of label sets the function is applied to is small.)

            func SignatureForLabels

            func SignatureForLabels(m Metric, labels ...LabelName) uint64

              SignatureForLabels works like LabelsToSignature but takes a Metric as parameter (rather than a label map) and only includes the labels with the specified LabelNames into the signature calculation. The labels passed in will be sorted by this function.

              func SignatureWithoutLabels

              func SignatureWithoutLabels(m Metric, labels map[LabelName]struct{}) uint64

                SignatureWithoutLabels works like LabelsToSignature but takes a Metric as parameter (rather than a label map) and excludes the labels with any of the specified LabelNames from the signature calculation.

                Types

                type Alert

                type Alert struct {
                	// Label value pairs for purpose of aggregation, matching, and disposition
                	// dispatching. This must minimally include an "alertname" label.
                	Labels LabelSet `json:"labels"`
                
                	// Extra key/value information which does not define alert identity.
                	Annotations LabelSet `json:"annotations"`
                
                	// The known time range for this alert. Both ends are optional.
                	StartsAt     time.Time `json:"startsAt,omitempty"`
                	EndsAt       time.Time `json:"endsAt,omitempty"`
                	GeneratorURL string    `json:"generatorURL"`
                }

                  Alert is a generic representation of an alert in the Prometheus eco-system.

                  func (*Alert) Fingerprint

                  func (a *Alert) Fingerprint() Fingerprint

                    Fingerprint returns a unique hash for the alert. It is equivalent to the fingerprint of the alert's label set.

                    func (*Alert) Name

                    func (a *Alert) Name() string

                      Name returns the name of the alert. It is equivalent to the "alertname" label.

                      func (*Alert) Resolved

                      func (a *Alert) Resolved() bool

                        Resolved returns true iff the activity interval ended in the past.

                        func (*Alert) ResolvedAt

                        func (a *Alert) ResolvedAt(ts time.Time) bool

                          ResolvedAt returns true off the activity interval ended before the given timestamp.

                          func (*Alert) Status

                          func (a *Alert) Status() AlertStatus

                            Status returns the status of the alert.

                            func (*Alert) String

                            func (a *Alert) String() string

                            func (*Alert) Validate

                            func (a *Alert) Validate() error

                              Validate checks whether the alert data is inconsistent.

                              type AlertStatus

                              type AlertStatus string
                              const (
                              	AlertFiring   AlertStatus = "firing"
                              	AlertResolved AlertStatus = "resolved"
                              )

                              type Alerts

                              type Alerts []*Alert

                                Alert is a list of alerts that can be sorted in chronological order.

                                func (Alerts) HasFiring

                                func (as Alerts) HasFiring() bool

                                  HasFiring returns true iff one of the alerts is not resolved.

                                  func (Alerts) Len

                                  func (as Alerts) Len() int

                                  func (Alerts) Less

                                  func (as Alerts) Less(i, j int) bool

                                  func (Alerts) Status

                                  func (as Alerts) Status() AlertStatus

                                    Status returns StatusFiring iff at least one of the alerts is firing.

                                    func (Alerts) Swap

                                    func (as Alerts) Swap(i, j int)

                                    type Duration

                                    type Duration time.Duration

                                      Duration wraps time.Duration. It is used to parse the custom duration format from YAML. This type should not propagate beyond the scope of input/output processing.

                                      func ParseDuration

                                      func ParseDuration(durationStr string) (Duration, error)

                                        ParseDuration parses a string into a time.Duration, assuming that a year always has 365d, a week always has 7d, and a day always has 24h.

                                        func (Duration) MarshalJSON

                                        func (d Duration) MarshalJSON() ([]byte, error)

                                          MarshalJSON implements the json.Marshaler interface.

                                          func (*Duration) MarshalText

                                          func (d *Duration) MarshalText() ([]byte, error)

                                            MarshalText implements the encoding.TextMarshaler interface.

                                            func (Duration) MarshalYAML

                                            func (d Duration) MarshalYAML() (interface{}, error)

                                              MarshalYAML implements the yaml.Marshaler interface.

                                              func (*Duration) Set

                                              func (d *Duration) Set(s string) error

                                                Set implements pflag/flag.Value

                                                func (Duration) String

                                                func (d Duration) String() string

                                                func (*Duration) Type

                                                func (d *Duration) Type() string

                                                  Type implements pflag.Value

                                                  func (*Duration) UnmarshalJSON

                                                  func (d *Duration) UnmarshalJSON(bytes []byte) error

                                                    UnmarshalJSON implements the json.Unmarshaler interface.

                                                    func (*Duration) UnmarshalText

                                                    func (d *Duration) UnmarshalText(text []byte) error

                                                      UnmarshalText implements the encoding.TextUnmarshaler interface.

                                                      func (*Duration) UnmarshalYAML

                                                      func (d *Duration) UnmarshalYAML(unmarshal func(interface{}) error) error

                                                        UnmarshalYAML implements the yaml.Unmarshaler interface.

                                                        type Fingerprint

                                                        type Fingerprint uint64

                                                          Fingerprint provides a hash-capable representation of a Metric. For our purposes, FNV-1A 64-bit is used.

                                                          func FingerprintFromString

                                                          func FingerprintFromString(s string) (Fingerprint, error)

                                                            FingerprintFromString transforms a string representation into a Fingerprint.

                                                            func ParseFingerprint

                                                            func ParseFingerprint(s string) (Fingerprint, error)

                                                              ParseFingerprint parses the input string into a fingerprint.

                                                              func (Fingerprint) String

                                                              func (f Fingerprint) String() string

                                                              type FingerprintSet

                                                              type FingerprintSet map[Fingerprint]struct{}

                                                                FingerprintSet is a set of Fingerprints.

                                                                func (FingerprintSet) Equal

                                                                func (s FingerprintSet) Equal(o FingerprintSet) bool

                                                                  Equal returns true if both sets contain the same elements (and not more).

                                                                  func (FingerprintSet) Intersection

                                                                  func (s FingerprintSet) Intersection(o FingerprintSet) FingerprintSet

                                                                    Intersection returns the elements contained in both sets.

                                                                    type Fingerprints

                                                                    type Fingerprints []Fingerprint

                                                                      Fingerprints represents a collection of Fingerprint subject to a given natural sorting scheme. It implements sort.Interface.

                                                                      func (Fingerprints) Len

                                                                      func (f Fingerprints) Len() int

                                                                        Len implements sort.Interface.

                                                                        func (Fingerprints) Less

                                                                        func (f Fingerprints) Less(i, j int) bool

                                                                          Less implements sort.Interface.

                                                                          func (Fingerprints) Swap

                                                                          func (f Fingerprints) Swap(i, j int)

                                                                            Swap implements sort.Interface.

                                                                            type Interval

                                                                            type Interval struct {
                                                                            	Start, End Time
                                                                            }

                                                                              Interval describes an interval between two timestamps.

                                                                              type LabelName

                                                                              type LabelName string

                                                                                A LabelName is a key for a LabelSet or Metric. It has a value associated therewith.

                                                                                func (LabelName) IsValid

                                                                                func (ln LabelName) IsValid() bool

                                                                                  IsValid is true iff the label name matches the pattern of LabelNameRE. This method, however, does not use LabelNameRE for the check but a much faster hardcoded implementation.

                                                                                  func (*LabelName) UnmarshalJSON

                                                                                  func (ln *LabelName) UnmarshalJSON(b []byte) error

                                                                                    UnmarshalJSON implements the json.Unmarshaler interface.

                                                                                    func (*LabelName) UnmarshalYAML

                                                                                    func (ln *LabelName) UnmarshalYAML(unmarshal func(interface{}) error) error

                                                                                      UnmarshalYAML implements the yaml.Unmarshaler interface.

                                                                                      type LabelNames

                                                                                      type LabelNames []LabelName

                                                                                        LabelNames is a sortable LabelName slice. In implements sort.Interface.

                                                                                        func (LabelNames) Len

                                                                                        func (l LabelNames) Len() int

                                                                                        func (LabelNames) Less

                                                                                        func (l LabelNames) Less(i, j int) bool

                                                                                        func (LabelNames) String

                                                                                        func (l LabelNames) String() string

                                                                                        func (LabelNames) Swap

                                                                                        func (l LabelNames) Swap(i, j int)

                                                                                        type LabelPair

                                                                                        type LabelPair struct {
                                                                                        	Name  LabelName
                                                                                        	Value LabelValue
                                                                                        }

                                                                                          LabelPair pairs a name with a value.

                                                                                          type LabelPairs

                                                                                          type LabelPairs []*LabelPair

                                                                                            LabelPairs is a sortable slice of LabelPair pointers. It implements sort.Interface.

                                                                                            func (LabelPairs) Len

                                                                                            func (l LabelPairs) Len() int

                                                                                            func (LabelPairs) Less

                                                                                            func (l LabelPairs) Less(i, j int) bool

                                                                                            func (LabelPairs) Swap

                                                                                            func (l LabelPairs) Swap(i, j int)

                                                                                            type LabelSet

                                                                                            type LabelSet map[LabelName]LabelValue

                                                                                              A LabelSet is a collection of LabelName and LabelValue pairs. The LabelSet may be fully-qualified down to the point where it may resolve to a single Metric in the data store or not. All operations that occur within the realm of a LabelSet can emit a vector of Metric entities to which the LabelSet may match.

                                                                                              func (LabelSet) Before

                                                                                              func (ls LabelSet) Before(o LabelSet) bool

                                                                                                Before compares the metrics, using the following criteria:

                                                                                                If m has fewer labels than o, it is before o. If it has more, it is not.

                                                                                                If the number of labels is the same, the superset of all label names is sorted alphanumerically. The first differing label pair found in that order determines the outcome: If the label does not exist at all in m, then m is before o, and vice versa. Otherwise the label value is compared alphanumerically.

                                                                                                If m and o are equal, the method returns false.

                                                                                                func (LabelSet) Clone

                                                                                                func (ls LabelSet) Clone() LabelSet

                                                                                                  Clone returns a copy of the label set.

                                                                                                  func (LabelSet) Equal

                                                                                                  func (ls LabelSet) Equal(o LabelSet) bool

                                                                                                    Equal returns true iff both label sets have exactly the same key/value pairs.

                                                                                                    func (LabelSet) FastFingerprint

                                                                                                    func (ls LabelSet) FastFingerprint() Fingerprint

                                                                                                      FastFingerprint returns the LabelSet's Fingerprint calculated by a faster hashing algorithm, which is, however, more susceptible to hash collisions.

                                                                                                      func (LabelSet) Fingerprint

                                                                                                      func (ls LabelSet) Fingerprint() Fingerprint

                                                                                                        Fingerprint returns the LabelSet's fingerprint.

                                                                                                        func (LabelSet) Merge

                                                                                                        func (l LabelSet) Merge(other LabelSet) LabelSet

                                                                                                          Merge is a helper function to non-destructively merge two label sets.

                                                                                                          func (LabelSet) String

                                                                                                          func (l LabelSet) String() string

                                                                                                          func (*LabelSet) UnmarshalJSON

                                                                                                          func (l *LabelSet) UnmarshalJSON(b []byte) error

                                                                                                            UnmarshalJSON implements the json.Unmarshaler interface.

                                                                                                            func (LabelSet) Validate

                                                                                                            func (ls LabelSet) Validate() error

                                                                                                              Validate checks whether all names and values in the label set are valid.

                                                                                                              type LabelValue

                                                                                                              type LabelValue string

                                                                                                                A LabelValue is an associated value for a LabelName.

                                                                                                                func (LabelValue) IsValid

                                                                                                                func (lv LabelValue) IsValid() bool

                                                                                                                  IsValid returns true iff the string is a valid UTF8.

                                                                                                                  type LabelValues

                                                                                                                  type LabelValues []LabelValue

                                                                                                                    LabelValues is a sortable LabelValue slice. It implements sort.Interface.

                                                                                                                    func (LabelValues) Len

                                                                                                                    func (l LabelValues) Len() int

                                                                                                                    func (LabelValues) Less

                                                                                                                    func (l LabelValues) Less(i, j int) bool

                                                                                                                    func (LabelValues) Swap

                                                                                                                    func (l LabelValues) Swap(i, j int)

                                                                                                                    type Matcher

                                                                                                                    type Matcher struct {
                                                                                                                    	Name    LabelName `json:"name"`
                                                                                                                    	Value   string    `json:"value"`
                                                                                                                    	IsRegex bool      `json:"isRegex"`
                                                                                                                    }

                                                                                                                      Matcher describes a matches the value of a given label.

                                                                                                                      func (*Matcher) UnmarshalJSON

                                                                                                                      func (m *Matcher) UnmarshalJSON(b []byte) error

                                                                                                                      func (*Matcher) Validate

                                                                                                                      func (m *Matcher) Validate() error

                                                                                                                        Validate returns true iff all fields of the matcher have valid values.

                                                                                                                        type Matrix

                                                                                                                        type Matrix []*SampleStream

                                                                                                                          Matrix is a list of time series.

                                                                                                                          func (Matrix) Len

                                                                                                                          func (m Matrix) Len() int

                                                                                                                          func (Matrix) Less

                                                                                                                          func (m Matrix) Less(i, j int) bool

                                                                                                                          func (Matrix) String

                                                                                                                          func (mat Matrix) String() string

                                                                                                                          func (Matrix) Swap

                                                                                                                          func (m Matrix) Swap(i, j int)

                                                                                                                          func (Matrix) Type

                                                                                                                          func (Matrix) Type() ValueType

                                                                                                                          type Metric

                                                                                                                          type Metric LabelSet

                                                                                                                            A Metric is similar to a LabelSet, but the key difference is that a Metric is a singleton and refers to one and only one stream of samples.

                                                                                                                            func (Metric) Before

                                                                                                                            func (m Metric) Before(o Metric) bool

                                                                                                                              Before compares the metrics' underlying label sets.

                                                                                                                              func (Metric) Clone

                                                                                                                              func (m Metric) Clone() Metric

                                                                                                                                Clone returns a copy of the Metric.

                                                                                                                                func (Metric) Equal

                                                                                                                                func (m Metric) Equal(o Metric) bool

                                                                                                                                  Equal compares the metrics.

                                                                                                                                  func (Metric) FastFingerprint

                                                                                                                                  func (m Metric) FastFingerprint() Fingerprint

                                                                                                                                    FastFingerprint returns a Metric's Fingerprint calculated by a faster hashing algorithm, which is, however, more susceptible to hash collisions.

                                                                                                                                    func (Metric) Fingerprint

                                                                                                                                    func (m Metric) Fingerprint() Fingerprint

                                                                                                                                      Fingerprint returns a Metric's Fingerprint.

                                                                                                                                      func (Metric) String

                                                                                                                                      func (m Metric) String() string

                                                                                                                                      type Sample

                                                                                                                                      type Sample struct {
                                                                                                                                      	Metric    Metric      `json:"metric"`
                                                                                                                                      	Value     SampleValue `json:"value"`
                                                                                                                                      	Timestamp Time        `json:"timestamp"`
                                                                                                                                      }

                                                                                                                                        Sample is a sample pair associated with a metric.

                                                                                                                                        func (*Sample) Equal

                                                                                                                                        func (s *Sample) Equal(o *Sample) bool

                                                                                                                                          Equal compares first the metrics, then the timestamp, then the value. The semantics of value equality is defined by SampleValue.Equal.

                                                                                                                                          func (Sample) MarshalJSON

                                                                                                                                          func (s Sample) MarshalJSON() ([]byte, error)

                                                                                                                                            MarshalJSON implements json.Marshaler.

                                                                                                                                            func (Sample) String

                                                                                                                                            func (s Sample) String() string

                                                                                                                                            func (*Sample) UnmarshalJSON

                                                                                                                                            func (s *Sample) UnmarshalJSON(b []byte) error

                                                                                                                                              UnmarshalJSON implements json.Unmarshaler.

                                                                                                                                              type SamplePair

                                                                                                                                              type SamplePair struct {
                                                                                                                                              	Timestamp Time
                                                                                                                                              	Value     SampleValue
                                                                                                                                              }

                                                                                                                                                SamplePair pairs a SampleValue with a Timestamp.

                                                                                                                                                func (*SamplePair) Equal

                                                                                                                                                func (s *SamplePair) Equal(o *SamplePair) bool

                                                                                                                                                  Equal returns true if this SamplePair and o have equal Values and equal Timestamps. The semantics of Value equality is defined by SampleValue.Equal.

                                                                                                                                                  func (SamplePair) MarshalJSON

                                                                                                                                                  func (s SamplePair) MarshalJSON() ([]byte, error)

                                                                                                                                                    MarshalJSON implements json.Marshaler.

                                                                                                                                                    func (SamplePair) String

                                                                                                                                                    func (s SamplePair) String() string

                                                                                                                                                    func (*SamplePair) UnmarshalJSON

                                                                                                                                                    func (s *SamplePair) UnmarshalJSON(b []byte) error

                                                                                                                                                      UnmarshalJSON implements json.Unmarshaler.

                                                                                                                                                      type SampleStream

                                                                                                                                                      type SampleStream struct {
                                                                                                                                                      	Metric Metric       `json:"metric"`
                                                                                                                                                      	Values []SamplePair `json:"values"`
                                                                                                                                                      }

                                                                                                                                                        SampleStream is a stream of Values belonging to an attached COWMetric.

                                                                                                                                                        func (SampleStream) String

                                                                                                                                                        func (ss SampleStream) String() string

                                                                                                                                                        type SampleValue

                                                                                                                                                        type SampleValue float64

                                                                                                                                                          A SampleValue is a representation of a value for a given sample at a given time.

                                                                                                                                                          func (SampleValue) Equal

                                                                                                                                                          func (v SampleValue) Equal(o SampleValue) bool

                                                                                                                                                            Equal returns true if the value of v and o is equal or if both are NaN. Note that v==o is false if both are NaN. If you want the conventional float behavior, use == to compare two SampleValues.

                                                                                                                                                            func (SampleValue) MarshalJSON

                                                                                                                                                            func (v SampleValue) MarshalJSON() ([]byte, error)

                                                                                                                                                              MarshalJSON implements json.Marshaler.

                                                                                                                                                              func (SampleValue) String

                                                                                                                                                              func (v SampleValue) String() string

                                                                                                                                                              func (*SampleValue) UnmarshalJSON

                                                                                                                                                              func (v *SampleValue) UnmarshalJSON(b []byte) error

                                                                                                                                                                UnmarshalJSON implements json.Unmarshaler.

                                                                                                                                                                type Samples

                                                                                                                                                                type Samples []*Sample

                                                                                                                                                                  Samples is a sortable Sample slice. It implements sort.Interface.

                                                                                                                                                                  func (Samples) Equal

                                                                                                                                                                  func (s Samples) Equal(o Samples) bool

                                                                                                                                                                    Equal compares two sets of samples and returns true if they are equal.

                                                                                                                                                                    func (Samples) Len

                                                                                                                                                                    func (s Samples) Len() int

                                                                                                                                                                    func (Samples) Less

                                                                                                                                                                    func (s Samples) Less(i, j int) bool

                                                                                                                                                                      Less compares first the metrics, then the timestamp.

                                                                                                                                                                      func (Samples) Swap

                                                                                                                                                                      func (s Samples) Swap(i, j int)

                                                                                                                                                                      type Scalar

                                                                                                                                                                      type Scalar struct {
                                                                                                                                                                      	Value     SampleValue `json:"value"`
                                                                                                                                                                      	Timestamp Time        `json:"timestamp"`
                                                                                                                                                                      }

                                                                                                                                                                        Scalar is a scalar value evaluated at the set timestamp.

                                                                                                                                                                        func (Scalar) MarshalJSON

                                                                                                                                                                        func (s Scalar) MarshalJSON() ([]byte, error)

                                                                                                                                                                          MarshalJSON implements json.Marshaler.

                                                                                                                                                                          func (Scalar) String

                                                                                                                                                                          func (s Scalar) String() string

                                                                                                                                                                          func (*Scalar) Type

                                                                                                                                                                          func (*Scalar) Type() ValueType

                                                                                                                                                                          func (*Scalar) UnmarshalJSON

                                                                                                                                                                          func (s *Scalar) UnmarshalJSON(b []byte) error

                                                                                                                                                                            UnmarshalJSON implements json.Unmarshaler.

                                                                                                                                                                            type Silence

                                                                                                                                                                            type Silence struct {
                                                                                                                                                                            	ID uint64 `json:"id,omitempty"`
                                                                                                                                                                            
                                                                                                                                                                            	Matchers []*Matcher `json:"matchers"`
                                                                                                                                                                            
                                                                                                                                                                            	StartsAt time.Time `json:"startsAt"`
                                                                                                                                                                            	EndsAt   time.Time `json:"endsAt"`
                                                                                                                                                                            
                                                                                                                                                                            	CreatedAt time.Time `json:"createdAt,omitempty"`
                                                                                                                                                                            	CreatedBy string    `json:"createdBy"`
                                                                                                                                                                            	Comment   string    `json:"comment,omitempty"`
                                                                                                                                                                            }

                                                                                                                                                                              Silence defines the representation of a silence definition in the Prometheus eco-system.

                                                                                                                                                                              func (*Silence) Validate

                                                                                                                                                                              func (s *Silence) Validate() error

                                                                                                                                                                                Validate returns true iff all fields of the silence have valid values.

                                                                                                                                                                                type String

                                                                                                                                                                                type String struct {
                                                                                                                                                                                	Value     string `json:"value"`
                                                                                                                                                                                	Timestamp Time   `json:"timestamp"`
                                                                                                                                                                                }

                                                                                                                                                                                  String is a string value evaluated at the set timestamp.

                                                                                                                                                                                  func (String) MarshalJSON

                                                                                                                                                                                  func (s String) MarshalJSON() ([]byte, error)

                                                                                                                                                                                    MarshalJSON implements json.Marshaler.

                                                                                                                                                                                    func (*String) String

                                                                                                                                                                                    func (s *String) String() string

                                                                                                                                                                                    func (*String) Type

                                                                                                                                                                                    func (*String) Type() ValueType

                                                                                                                                                                                    func (*String) UnmarshalJSON

                                                                                                                                                                                    func (s *String) UnmarshalJSON(b []byte) error

                                                                                                                                                                                      UnmarshalJSON implements json.Unmarshaler.

                                                                                                                                                                                      type Time

                                                                                                                                                                                      type Time int64

                                                                                                                                                                                        Time is the number of milliseconds since the epoch (1970-01-01 00:00 UTC) excluding leap seconds.

                                                                                                                                                                                        func Now

                                                                                                                                                                                        func Now() Time

                                                                                                                                                                                          Now returns the current time as a Time.

                                                                                                                                                                                          func TimeFromUnix

                                                                                                                                                                                          func TimeFromUnix(t int64) Time

                                                                                                                                                                                            TimeFromUnix returns the Time equivalent to the Unix Time t provided in seconds.

                                                                                                                                                                                            func TimeFromUnixNano

                                                                                                                                                                                            func TimeFromUnixNano(t int64) Time

                                                                                                                                                                                              TimeFromUnixNano returns the Time equivalent to the Unix Time t provided in nanoseconds.

                                                                                                                                                                                              func (Time) Add

                                                                                                                                                                                              func (t Time) Add(d time.Duration) Time

                                                                                                                                                                                                Add returns the Time t + d.

                                                                                                                                                                                                func (Time) After

                                                                                                                                                                                                func (t Time) After(o Time) bool

                                                                                                                                                                                                  After reports whether the Time t is after o.

                                                                                                                                                                                                  func (Time) Before

                                                                                                                                                                                                  func (t Time) Before(o Time) bool

                                                                                                                                                                                                    Before reports whether the Time t is before o.

                                                                                                                                                                                                    func (Time) Equal

                                                                                                                                                                                                    func (t Time) Equal(o Time) bool

                                                                                                                                                                                                      Equal reports whether two Times represent the same instant.

                                                                                                                                                                                                      func (Time) MarshalJSON

                                                                                                                                                                                                      func (t Time) MarshalJSON() ([]byte, error)

                                                                                                                                                                                                        MarshalJSON implements the json.Marshaler interface.

                                                                                                                                                                                                        func (Time) String

                                                                                                                                                                                                        func (t Time) String() string

                                                                                                                                                                                                          String returns a string representation of the Time.

                                                                                                                                                                                                          func (Time) Sub

                                                                                                                                                                                                          func (t Time) Sub(o Time) time.Duration

                                                                                                                                                                                                            Sub returns the Duration t - o.

                                                                                                                                                                                                            func (Time) Time

                                                                                                                                                                                                            func (t Time) Time() time.Time

                                                                                                                                                                                                              Time returns the time.Time representation of t.

                                                                                                                                                                                                              func (Time) Unix

                                                                                                                                                                                                              func (t Time) Unix() int64

                                                                                                                                                                                                                Unix returns t as a Unix time, the number of seconds elapsed since January 1, 1970 UTC.

                                                                                                                                                                                                                func (Time) UnixNano

                                                                                                                                                                                                                func (t Time) UnixNano() int64

                                                                                                                                                                                                                  UnixNano returns t as a Unix time, the number of nanoseconds elapsed since January 1, 1970 UTC.

                                                                                                                                                                                                                  func (*Time) UnmarshalJSON

                                                                                                                                                                                                                  func (t *Time) UnmarshalJSON(b []byte) error

                                                                                                                                                                                                                    UnmarshalJSON implements the json.Unmarshaler interface.

                                                                                                                                                                                                                    type Value

                                                                                                                                                                                                                    type Value interface {
                                                                                                                                                                                                                    	Type() ValueType
                                                                                                                                                                                                                    	String() string
                                                                                                                                                                                                                    }

                                                                                                                                                                                                                      Value is a generic interface for values resulting from a query evaluation.

                                                                                                                                                                                                                      type ValueType

                                                                                                                                                                                                                      type ValueType int
                                                                                                                                                                                                                      const (
                                                                                                                                                                                                                      	ValNone ValueType = iota
                                                                                                                                                                                                                      	ValScalar
                                                                                                                                                                                                                      	ValVector
                                                                                                                                                                                                                      	ValMatrix
                                                                                                                                                                                                                      	ValString
                                                                                                                                                                                                                      )

                                                                                                                                                                                                                      func (ValueType) MarshalJSON

                                                                                                                                                                                                                      func (et ValueType) MarshalJSON() ([]byte, error)

                                                                                                                                                                                                                        MarshalJSON implements json.Marshaler.

                                                                                                                                                                                                                        func (ValueType) String

                                                                                                                                                                                                                        func (e ValueType) String() string

                                                                                                                                                                                                                        func (*ValueType) UnmarshalJSON

                                                                                                                                                                                                                        func (et *ValueType) UnmarshalJSON(b []byte) error

                                                                                                                                                                                                                        type Vector

                                                                                                                                                                                                                        type Vector []*Sample

                                                                                                                                                                                                                          Vector is basically only an alias for Samples, but the contract is that in a Vector, all Samples have the same timestamp.

                                                                                                                                                                                                                          func (Vector) Equal

                                                                                                                                                                                                                          func (vec Vector) Equal(o Vector) bool

                                                                                                                                                                                                                            Equal compares two sets of samples and returns true if they are equal.

                                                                                                                                                                                                                            func (Vector) Len

                                                                                                                                                                                                                            func (vec Vector) Len() int

                                                                                                                                                                                                                            func (Vector) Less

                                                                                                                                                                                                                            func (vec Vector) Less(i, j int) bool

                                                                                                                                                                                                                              Less compares first the metrics, then the timestamp.

                                                                                                                                                                                                                              func (Vector) String

                                                                                                                                                                                                                              func (vec Vector) String() string

                                                                                                                                                                                                                              func (Vector) Swap

                                                                                                                                                                                                                              func (vec Vector) Swap(i, j int)

                                                                                                                                                                                                                              func (Vector) Type

                                                                                                                                                                                                                              func (Vector) Type() ValueType