Documentation
      ¶
    
    
  
    
  
    Index ¶
- Constants
 - Variables
 - func Inspect(node Node, f func(Node) bool)
 - func ParseMetric(input string) (m labels.Labels, err error)
 - func ParseMetricSelector(input string) (m []*labels.Matcher, err error)
 - func Tree(node Node) string
 - func Walk(v Visitor, node Node)
 - type AggregateExpr
 - type AlertStmt
 - type BinaryExpr
 - type Call
 - type Engine
 - type EngineOptions
 - type ErrQueryCanceled
 - type ErrQueryTimeout
 - type ErrStorage
 - type EvalStmt
 - type Expr
 - type Expressions
 - type Function
 - type Matrix
 - type MatrixSelector
 - type Node
 - type NumberLiteral
 - type ParenExpr
 - type ParseErr
 - type Point
 - type Pos
 - type Query
 - type Queryable
 - type RecordStmt
 - type Result
 - type Sample
 - type Scalar
 - type Series
 - type Statement
 - type Statements
 - type String
 - type StringLiteral
 - type Test
 - type UnaryExpr
 - type Value
 - type ValueType
 - type Vector
 - type VectorMatchCardinality
 - type VectorMatching
 - type VectorSelector
 - type Visitor
 
Constants ¶
const ( ValueTypeNone = "none" ValueTypeVector = "vector" ValueTypeScalar = "scalar" ValueTypeMatrix = "matrix" ValueTypeString = "string" )
The valid value types.
const LowestPrec = 0 // Non-operators.
    LowestPrec is a constant for operator precedence in expressions.
Variables ¶
var DefaultEngineOptions = &EngineOptions{ MaxConcurrentQueries: 20, Timeout: 2 * time.Minute, Logger: log.Base(), }
DefaultEngineOptions are the default engine options.
var LookbackDelta = 5 * time.Minute
    LookbackDelta determines the time since the last sample after which a time series is considered stale.
Functions ¶
func Inspect ¶
Inspect traverses an AST in depth-first order: It starts by calling f(node); node must not be nil. If f returns true, Inspect invokes f for all the non-nil children of node, recursively.
func ParseMetric ¶
ParseMetric parses the input into a metric
func ParseMetricSelector ¶
ParseMetricSelector parses the provided textual metric selector into a list of label matchers.
Types ¶
type AggregateExpr ¶
type AggregateExpr struct {
	Op               itemType // The used aggregation operation.
	Expr             Expr     // The Vector expression over which is aggregated.
	Param            Expr     // Parameter used by some aggregators.
	Grouping         []string // The labels by which to group the Vector.
	Without          bool     // Whether to drop the given labels rather than keep them.
	KeepCommonLabels bool     // Whether to keep common labels among result elements.
}
    AggregateExpr represents an aggregation operation on a Vector.
func (*AggregateExpr) String ¶
func (node *AggregateExpr) String() string
func (*AggregateExpr) Type ¶
func (e *AggregateExpr) Type() ValueType
type AlertStmt ¶
type AlertStmt struct {
	Name        string
	Expr        Expr
	Duration    time.Duration
	Labels      labels.Labels
	Annotations labels.Labels
}
    AlertStmt represents an added alert rule.
type BinaryExpr ¶
type BinaryExpr struct {
	Op       itemType // The operation of the expression.
	LHS, RHS Expr     // The operands on the respective sides of the operator.
	// The matching behavior for the operation if both operands are Vectors.
	// If they are not this field is nil.
	VectorMatching *VectorMatching
	// If a comparison operator, return 0/1 rather than filtering.
	ReturnBool bool
}
    BinaryExpr represents a binary expression between two child expressions.
func (*BinaryExpr) String ¶
func (node *BinaryExpr) String() string
func (*BinaryExpr) Type ¶
func (e *BinaryExpr) Type() ValueType
type Call ¶
type Call struct {
	Func *Function   // The function that was called.
	Args Expressions // Arguments used in the call.
}
    Call represents a function call.
type Engine ¶
type Engine struct {
	// contains filtered or unexported fields
}
    Engine handles the lifetime of queries from beginning to end. It is connected to a querier.
func NewEngine ¶
func NewEngine(queryable Queryable, o *EngineOptions) *Engine
NewEngine returns a new engine.
func (*Engine) NewInstantQuery ¶
NewInstantQuery returns an evaluation query for the given expression at the given time.
type EngineOptions ¶
EngineOptions contains configuration parameters for an Engine.
type ErrQueryCanceled ¶
type ErrQueryCanceled string
ErrQueryCanceled is returned if a query was canceled during processing.
func (ErrQueryCanceled) Error ¶
func (e ErrQueryCanceled) Error() string
type ErrQueryTimeout ¶
type ErrQueryTimeout string
ErrQueryTimeout is returned if a query timed out during processing.
func (ErrQueryTimeout) Error ¶
func (e ErrQueryTimeout) Error() string
type ErrStorage ¶ added in v1.6.0
type ErrStorage error
ErrStorage is returned if an error was encountered in the storage layer during query handling.
type EvalStmt ¶
type EvalStmt struct {
	Expr Expr // Expression to be evaluated.
	// The time boundaries for the evaluation. If Start equals End an instant
	// is evaluated.
	Start, End time.Time
	// Time between two evaluated instants for the range [Start:End].
	Interval time.Duration
}
    EvalStmt holds an expression and information on the range it should be evaluated on.
type Expr ¶
type Expr interface {
	Node
	// Type returns the type the expression evaluates to. It does not perform
	// in-depth checks as this is done at parsing-time.
	Type() ValueType
	// contains filtered or unexported methods
}
    Expr is a generic interface for all expression types.
type Expressions ¶
type Expressions []Expr
Expressions is a list of expression nodes that implements Node.
func (Expressions) String ¶
func (es Expressions) String() (s string)
type Function ¶
type Function struct {
	Name       string
	ArgTypes   []ValueType
	Variadic   int
	ReturnType ValueType
	Call       func(ev *evaluator, args Expressions) Value
}
    Function represents a function of the expression language and is used by function nodes.
type Matrix ¶
type Matrix []Series
Matrix is a slice of Seriess that implements sort.Interface and has a String method.
type MatrixSelector ¶
type MatrixSelector struct {
	Name          string
	Range         time.Duration
	Offset        time.Duration
	LabelMatchers []*labels.Matcher
	// contains filtered or unexported fields
}
    MatrixSelector represents a Matrix selection.
func (*MatrixSelector) String ¶
func (node *MatrixSelector) String() string
func (*MatrixSelector) Type ¶
func (e *MatrixSelector) Type() ValueType
type Node ¶
type Node interface {
	// String representation of the node that returns the given node when parsed
	// as part of a valid query.
	String() string
}
    Node is a generic interface for all nodes in an AST.
Whenever numerous nodes are listed such as in a switch-case statement or a chain of function definitions (e.g. String(), expr(), etc.) convention is to list them as follows:
- Statements
 - statement types (alphabetical)
 - ...
 - Expressions
 - expression types (alphabetical)
 - ...
 
type NumberLiteral ¶
type NumberLiteral struct {
	Val float64
}
    NumberLiteral represents a number.
func (*NumberLiteral) String ¶
func (node *NumberLiteral) String() string
func (*NumberLiteral) Type ¶
func (e *NumberLiteral) Type() ValueType
type ParenExpr ¶
type ParenExpr struct {
	Expr Expr
}
    ParenExpr wraps an expression so it cannot be disassembled as a consequence of operator precedence.
type ParseErr ¶
ParseErr wraps a parsing error with line and position context. If the parsing input was a single line, line will be 0 and omitted from the error string.
type Point ¶
Point represents a single data point for a given timestamp.
func (Point) MarshalJSON ¶
MarshalJSON implements json.Marshaler.
type Query ¶
type Query interface {
	// Exec processes the query and
	Exec(ctx context.Context) *Result
	// Statement returns the parsed statement of the query.
	Statement() Statement
	// Stats returns statistics about the lifetime of the query.
	Stats() *stats.TimerGroup
	// Cancel signals that a running query execution should be aborted.
	Cancel()
}
    A Query is derived from an a raw query string and can be run against an engine it is associated with.
type RecordStmt ¶
RecordStmt represents an added recording rule.
func (*RecordStmt) String ¶
func (node *RecordStmt) String() string
type Result ¶
Result holds the resulting value of an execution or an error if any occurred.
func (*Result) Matrix ¶
Matrix returns a Matrix. An error is returned if the result was an error or the result value is not a Matrix.
type Scalar ¶
Scalar is a data point that's explicitly not associated with a metric.
func (Scalar) MarshalJSON ¶
type Statement ¶
type Statement interface {
	Node
	// contains filtered or unexported methods
}
    Statement is a generic interface for all statements.
type Statements ¶
type Statements []Statement
Statements is a list of statement nodes that implements Node.
func ParseStmts ¶
func ParseStmts(input string) (Statements, error)
ParseStmts parses the input and returns the resulting statements or any occurring error.
func (Statements) String ¶
func (stmts Statements) String() (s string)
type StringLiteral ¶
type StringLiteral struct {
	Val string
}
    StringLiteral represents a string.
func (*StringLiteral) String ¶
func (node *StringLiteral) String() string
func (*StringLiteral) Type ¶
func (e *StringLiteral) Type() ValueType
type Test ¶
Test is a sequence of read and write commands that are run against a test storage.
func (*Test) QueryEngine ¶
QueryEngine returns the test's query engine.
type UnaryExpr ¶
type UnaryExpr struct {
	Op   itemType
	Expr Expr
}
    UnaryExpr represents a unary operation on another expression. Currently unary operations are only supported for Scalars.
type Vector ¶
type Vector []Sample
Vector is basically only an alias for model.Samples, but the contract is that in a Vector, all Samples have the same timestamp.
type VectorMatchCardinality ¶
type VectorMatchCardinality int
VectorMatchCardinality describes the cardinality relationship of two Vectors in a binary operation.
const ( CardOneToOne VectorMatchCardinality = iota CardManyToOne CardOneToMany CardManyToMany )
func (VectorMatchCardinality) String ¶
func (vmc VectorMatchCardinality) String() string
type VectorMatching ¶
type VectorMatching struct {
	// The cardinality of the two Vectors.
	Card VectorMatchCardinality
	// MatchingLabels contains the labels which define equality of a pair of
	// elements from the Vectors.
	MatchingLabels []string
	// On includes the given label names from matching,
	// rather than excluding them.
	On bool
	// Include contains additional labels that should be included in
	// the result from the side with the lower cardinality.
	Include []string
}
    VectorMatching describes how elements from two Vectors in a binary operation are supposed to be matched.
type VectorSelector ¶
type VectorSelector struct {
	Name          string
	Offset        time.Duration
	LabelMatchers []*labels.Matcher
	// contains filtered or unexported fields
}
    VectorSelector represents a Vector selection.
func (*VectorSelector) String ¶
func (node *VectorSelector) String() string
func (*VectorSelector) Type ¶
func (e *VectorSelector) Type() ValueType