Documentation ¶
Index ¶
- type Bounds
- func (b Bounds) Blocks(t time.Time) int
- func (b Bounds) Contains(t time.Time) bool
- func (b Bounds) End() time.Time
- func (b Bounds) Equals(other Bounds) bool
- func (b Bounds) Nearest(t time.Time) Bounds
- func (b Bounds) Next(n int) Bounds
- func (b Bounds) Previous(n int) Bounds
- func (b Bounds) Steps() int
- func (b Bounds) String() string
- func (b Bounds) TimeForIndex(idx int) (time.Time, error)
- type FetchedBlockType
- type FormatType
- type IDSchemeType
- type MatchType
- type Matcher
- type Matchers
- type Metric
- type Metrics
- type QueryContext
- type RequestParams
- type Tag
- type TagOptions
- type Tags
- func (t Tags) Add(other Tags) Tags
- func (t Tags) AddOrUpdateTag(tag Tag) Tags
- func (t Tags) AddTag(tag Tag) Tags
- func (t Tags) AddTagWithoutNormalizing(tag Tag) Tags
- func (t Tags) AddTags(tags []Tag) Tags
- func (t Tags) Bucket() ([]byte, bool)
- func (t Tags) Clone() Tags
- func (t Tags) Get(key []byte) ([]byte, bool)
- func (t Tags) HashedID() uint64
- func (t Tags) ID() []byte
- func (t Tags) Len() int
- func (t Tags) Less(i, j int) bool
- func (t Tags) Name() ([]byte, bool)
- func (t Tags) Normalize() Tags
- func (t Tags) SetBucket(value []byte) Tags
- func (t Tags) SetName(value []byte) Tags
- func (t Tags) Swap(i, j int)
- func (t Tags) TagsWithKeys(includeKeys [][]byte) Tags
- func (t Tags) TagsWithoutKeys(excludeKeys [][]byte) Tags
- func (t Tags) WithoutName() Tags
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Bounds ¶ added in v0.4.4
Bounds are the time bounds, start time is inclusive but end is exclusive
func (Bounds) Previous ¶ added in v0.4.4
Previous returns the nth previous bound from the current bound
type FetchedBlockType ¶ added in v0.5.0
type FetchedBlockType uint8
FetchedBlockType determines the type for fetched blocks, and how they are transformed from storage type.
const ( // TypeSingleBlock represents a single block which contains each encoded fetched // series. Default block type for Prometheus queries. TypeSingleBlock FetchedBlockType = iota // TypeMultiBlock represents multiple blocks, each containing a time-based slice // of encoded fetched series. Default block type for non-Prometheus queries. TypeMultiBlock // TypeDecodedBlock represents a single block which contains all fetched series // which get decoded. // // NB: this is a legacy block type, will be deprecated once there is // sufficient confidence that other block types are performing correctly. TypeDecodedBlock )
func (FetchedBlockType) Validate ¶ added in v0.5.0
func (t FetchedBlockType) Validate() error
Validate validates the fetched block type.
type FormatType ¶ added in v0.5.0
type FormatType int
FormatType describes what format to return the data in
const ( // FormatPromQL returns results in Prom format FormatPromQL FormatType = iota // FormatM3QL returns results in M3QL format FormatM3QL )
type IDSchemeType ¶ added in v0.5.0
type IDSchemeType uint16
IDSchemeType determines the scheme for generating series IDs based on their tags.
const ( // TypeDefault is an invalid scheme that indicates that the default scheme // for the tag options version option should be used. TypeDefault IDSchemeType = iota // TypeLegacy describes a scheme where IDs are generated by appending // tag name/value pairs with = and , separators. Note that an additional , is // added to the end of the ID. // // NB: this should not be used, and exists here as a deprecated legacy // ID generation scheme, as it may cause collisions in situations where // incoming tags contain the following characters: << =," >>, for example: // {t1:v1},{t2:v2} -> t1=v1,t2=v2, // {t1:v1,t2:v2} -> t1=v1,t2=v2, TypeLegacy // TypeQuoted describes a scheme where IDs are generated by appending // tag names with explicitly quoted and escaped tag values. Tag names are // also escaped if they contain invalid characters. This is equivalent to // the Prometheus ID style. // {t1:v1},{t2:v2} -> {t1="v1",t2="v2"} // {t1:v1,t2:v2} -> {t1="v1,t2:v2"} // {"t1":"v1"} -> {\"t1\""="\"v1\""} TypeQuoted // TypePrependMeta describes a scheme where IDs are generated by prepending // the length of each tag at the start of the ID // {t1:v1},{t2:v2} -> 2,2,2,2!t1v1t2v2 // {t1:v1,t2:v2} -> 2,8!t1v1,t2:v2 // {"t1":"v1"} -> 4,4!"t1""v1" TypePrependMeta // TypeGraphite describes a scheme where IDs are generated to match graphite // representation of the tags. This scheme should only be used on the graphite // ingestion path, as it ignores tag names and is very prone to collisions if // used on non-graphite data. // {__g0__:v1},{__g1__:v2} -> v1.v2 // // NB: when TypeGraphite is specified, tags are ordered numerically rather // than lexically. // // NB 2: while the graphite scheme is valid, it is not available to choose as // a general ID scheme; instead, it is set on any metric coming through the // graphite ingestion path. TypeGraphite )
func (IDSchemeType) String ¶ added in v0.5.0
func (t IDSchemeType) String() string
func (*IDSchemeType) UnmarshalYAML ¶ added in v0.5.0
func (t *IDSchemeType) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML unmarshals a stored merics type.
func (IDSchemeType) Validate ¶ added in v0.5.0
func (t IDSchemeType) Validate() error
Validate validates that the scheme type is valid.
type Matcher ¶
type Matcher struct { Type MatchType `json:"type"` Name []byte `json:"name"` Value []byte `json:"value"` // contains filtered or unexported fields }
Matcher models the matching of a label. NB: when serialized to JSON, name and value will be in base64.
func NewMatcher ¶
NewMatcher returns a matcher object.
type Matchers ¶
type Matchers []Matcher
Matchers is a list of individual matchers.
func MatchersFromString ¶ added in v0.5.0
MatchersFromString parses a string into Matchers TODO: make this more robust, handle types other than MatchEqual
type QueryContext ¶ added in v0.7.0
QueryContext provides all external state needed to execute and track a query. It acts as a hook back into the execution engine for things like cost accounting.
func NewQueryContext ¶ added in v0.7.0
func NewQueryContext( ctx context.Context, scope tally.Scope, enforcer cost.ChainedEnforcer) *QueryContext
NewQueryContext constructs a QueryContext using the given Enforcer to enforce per query limits.
func NoopQueryContext ¶ added in v0.7.0
func NoopQueryContext() *QueryContext
NoopQueryContext returns a query context with no active components.
func (*QueryContext) WithContext ¶ added in v0.7.0
func (qc *QueryContext) WithContext(ctx context.Context) *QueryContext
WithContext creates a shallow copy of this QueryContext using the new context. Sample usage:
ctx, cancel := context.WithTimeout(qc.Ctx, 5*time.Second) defer cancel() qc = qc.WithContext(ctx)
type RequestParams ¶
type RequestParams struct { Start time.Time End time.Time // Now captures the current time and fixes it throughout the request, we may let people override it in the future Now time.Time Timeout time.Duration Step time.Duration Query string Debug bool KeepNans bool IncludeEnd bool BlockType FetchedBlockType FormatType FormatType }
RequestParams represents the params from the request
func (RequestParams) ExclusiveEnd ¶ added in v0.4.1
func (r RequestParams) ExclusiveEnd() time.Time
ExclusiveEnd returns the end exclusive
type TagOptions ¶ added in v0.4.8
type TagOptions interface { // Validate validates these tag options. Validate() error // SetMetricName sets the name for the `metric name` tag. SetMetricName(metricName []byte) TagOptions // MetricName gets the name for the `metric name` tag. MetricName() []byte // SetBucketName sets the name for the `bucket label` tag. SetBucketName(metricName []byte) TagOptions // BucketName gets the name for the `bucket label` tag. BucketName() []byte // SetIDSchemeType sets the ID generation scheme type. SetIDSchemeType(scheme IDSchemeType) TagOptions // IDSchemeType gets the ID generation scheme type. IDSchemeType() IDSchemeType }
TagOptions describes additional options for tags.
func NewTagOptions ¶ added in v0.4.8
func NewTagOptions() TagOptions
NewTagOptions builds a new tag options with default values.
type Tags ¶
type Tags struct { Opts TagOptions Tags []Tag }
Tags represents a set of tags with options.
func EmptyTags ¶ added in v0.4.2
func EmptyTags() Tags
EmptyTags returns empty tags with a default tag options.
func NewTags ¶ added in v0.4.8
func NewTags(size int, opts TagOptions) Tags
NewTags builds a tags with the given size and tag options.
func (Tags) AddOrUpdateTag ¶ added in v0.4.8
AddOrUpdateTag is used to add a single tag and maintain sorted order, or to replace the value of an existing tag.
func (Tags) AddTagWithoutNormalizing ¶ added in v0.5.0
AddTagWithoutNormalizing is used to add a single tag.
func (Tags) AddTags ¶ added in v0.4.8
AddTags is used to add a list of tags and maintain sorted order.
func (Tags) ID ¶
ID returns a byte slice representation of the tags, using the generation strategy from the tag options.
func (Tags) Normalize ¶ added in v0.4.8
Normalize normalizes the tags by sorting them in place. In the future, it might also ensure other things like uniqueness.
func (Tags) TagsWithKeys ¶ added in v0.4.2
TagsWithKeys returns only the tags which have the given keys.
func (Tags) TagsWithoutKeys ¶ added in v0.4.2
TagsWithoutKeys returns only the tags which do not have the given keys.
func (Tags) WithoutName ¶
WithoutName copies the tags excluding the name tag.