proxystorage

package
v0.0.91 Latest Latest
Warning

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

Go to latest
Published: Nov 1, 2024 License: MIT Imports: 27 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CloneExpr added in v0.0.58

func CloneExpr(expr parser.Expr) (newExpr parser.Expr)

CloneExp returns a cloned copy of `expr`

func ExprIsLiteral added in v0.0.88

func ExprIsLiteral(expr parser.Expr) bool

func PreserveLabel added in v0.0.58

func PreserveLabel(expr parser.Expr, srcLabel string, dstLabel string) (relabelExpress parser.Expr)

PreserveLabel wraps the input expression with a label replace in order to preserve the metadata through binary expressions

func UnwrapExpr added in v0.0.88

func UnwrapExpr(expr parser.Expr) parser.Expr

Types

type BooleanFinder

type BooleanFinder struct {
	Func  func(parser.Node) bool
	Found int
}

BooleanFinder uses the given func to determine if something is in there or notret := &parser.VectorSelector{Offset: offset}

func (*BooleanFinder) Visit

func (f *BooleanFinder) Visit(node parser.Node, _ []parser.Node) (parser.Visitor, error)

Visit runs on each node in the tree

type MultiVisitor

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

MultiVisitor runs a set of visitors on the same pass over the node tree

func NewMultiVisitor added in v0.0.58

func NewMultiVisitor(visitors []parser.Visitor) *MultiVisitor

NewMultiVisitor takes a set of visitors and returns a MultiVisitor

func (*MultiVisitor) Visit

func (v *MultiVisitor) Visit(node parser.Node, path []parser.Node) (parser.Visitor, error)

Visit runs on each node in the tree

type OffsetFinder

type OffsetFinder struct {
	Found  bool
	Offset time.Duration
	Error  error
	// contains filtered or unexported fields
}

OffsetFinder finds the offset (if any) within the tree

func (*OffsetFinder) Visit

func (o *OffsetFinder) Visit(node parser.Node, path []parser.Node) (parser.Visitor, error)

Visit runs on each node in the tree

type OffsetRemover

type OffsetRemover struct{}

OffsetRemover removes any offset found in the node tree This is required when we send the queries below as we want to actually *remove* the offset.

func (*OffsetRemover) Visit

func (o *OffsetRemover) Visit(node parser.Node, _ []parser.Node) (parser.Visitor, error)

Visit runs on each node in the tree

type ProxyStorage

type ProxyStorage struct {
	NoStepSubqueryIntervalFn func(rangeMillis int64) int64
	// contains filtered or unexported fields
}

ProxyStorage implements prometheus' Storage interface

func NewProxyStorage

func NewProxyStorage(NoStepSubqueryIntervalFn func(rangeMillis int64) int64) (*ProxyStorage, error)

NewProxyStorage creates a new ProxyStorage

func (*ProxyStorage) Appender

Appender returns a new appender against the storage.

func (*ProxyStorage) ApplyConfig

func (p *ProxyStorage) ApplyConfig(c *proxyconfig.Config) error

ApplyConfig updates the current state of this ProxyStorage

func (*ProxyStorage) ChunkQuerier added in v0.0.63

func (p *ProxyStorage) ChunkQuerier(ctx context.Context, mint, maxt int64) (storage.ChunkQuerier, error)

ChunkQuerier returns a new ChunkQuerier on the storage.

func (*ProxyStorage) CleanTombstones added in v0.0.68

func (p *ProxyStorage) CleanTombstones() (err error)

Implement web.LocalStorage

func (*ProxyStorage) Close

func (p *ProxyStorage) Close() error

Close releases the resources of the Querier.

func (*ProxyStorage) ConfigHandler added in v0.0.76

func (p *ProxyStorage) ConfigHandler(w http.ResponseWriter, r *http.Request)

ConfigHandler is an implementation of the config handler within the prometheus API

func (*ProxyStorage) Delete added in v0.0.68

func (p *ProxyStorage) Delete(mint, maxt int64, ms ...*labels.Matcher) error

func (*ProxyStorage) ExemplarQuerier added in v0.0.75

func (p *ProxyStorage) ExemplarQuerier(ctx context.Context) (storage.ExemplarQuerier, error)

ExemplarQuerier returns a new ExemplarQuerier on the storage.

func (*ProxyStorage) GetState

func (p *ProxyStorage) GetState() *proxyStorageState

GetState returns the current state of the ProxyStorage

func (*ProxyStorage) MetadataHandler added in v0.0.76

func (p *ProxyStorage) MetadataHandler(w http.ResponseWriter, r *http.Request)

MetadataHandler is an implementation of the metadata handler within the prometheus API

func (*ProxyStorage) NodeReplacer

func (p *ProxyStorage) NodeReplacer(ctx context.Context, s *parser.EvalStmt, node parser.Node, path []parser.Node) (parser.Node, error)

NodeReplacer replaces promql Nodes with more efficient-to-fetch ones. This works by taking lower-layer chunks of the query, farming them out to prometheus hosts, then stitching the results back together. An example would be a sum, we can sum multiple sums and come up with the same result -- so we do. There are a few ground rules for this:

  • Children cannot be AggregateExpr: aggregates have their own combining logic, so its not safe to send a subquery with additional aggregations
  • offsets within the subtree must match: if they don't then we'll get mismatched data, so we wait until we are far enough down the tree that they converge
  • Don't reduce accuracy/granularity: the intention of this is to get the correct data faster, meaning correctness overrules speed.

func (*ProxyStorage) Querier

func (p *ProxyStorage) Querier(ctx context.Context, mint, maxt int64) (storage.Querier, error)

Querier returns a new Querier on the storage.

func (*ProxyStorage) Snapshot added in v0.0.68

func (p *ProxyStorage) Snapshot(dir string, withHead bool) error

func (*ProxyStorage) StartTime

func (p *ProxyStorage) StartTime() (int64, error)

StartTime returns the oldest timestamp stored in the storage.

func (*ProxyStorage) Stats added in v0.0.68

func (p *ProxyStorage) Stats(statsByLabelName string) (*tsdb.Stats, error)

func (*ProxyStorage) WALReplayStatus added in v0.0.73

func (p *ProxyStorage) WALReplayStatus() (tsdb.WALReplayStatus, error)

Jump to

Keyboard shortcuts

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