Documentation ¶
Index ¶
- func ChunksHandler(queryable storage.Queryable) http.Handler
- func MetadataHandler(d Distributor) http.Handler
- func New(cfg Config, limits *validation.Overrides, distributor Distributor, ...) (storage.SampleAndChunkQueryable, *promql.Engine)
- func NewChunkStoreQueryable(cfg Config, chunkStore chunkstore.ChunkStore) storage.Queryable
- func NewQueryable(distributor QueryableWithFilter, stores []QueryableWithFilter, ...) storage.Queryable
- func RemoteReadHandler(q storage.Queryable) http.Handler
- type BlocksConsistencyChecker
- type BlocksFinder
- type BlocksScanner
- type BlocksScannerConfig
- type BlocksStoreClient
- type BlocksStoreLimits
- type BlocksStoreQueryable
- type BlocksStoreSet
- type Config
- type Distributor
- type DummyAlertmanagerRetriever
- type DummyRulesRetriever
- type DummyTargetRetriever
- type QueryableWithFilter
- type SeriesWithChunks
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ChunksHandler ¶
ChunksHandler allows you to fetch a compressed tar of all the chunks for a given time range and set of matchers. Only works with the new unified chunk querier, which is enabled when you turn on ingester chunk query streaming.
func MetadataHandler ¶ added in v1.1.0
func MetadataHandler(d Distributor) http.Handler
MetadataHandler returns metric metadata held by Cortex for a given tenant. It is kept and returned as a set.
func New ¶
func New(cfg Config, limits *validation.Overrides, distributor Distributor, stores []QueryableWithFilter, tombstonesLoader *purger.TombstonesLoader, reg prometheus.Registerer) (storage.SampleAndChunkQueryable, *promql.Engine)
New builds a queryable and promql engine.
func NewChunkStoreQueryable ¶ added in v0.7.0
func NewChunkStoreQueryable(cfg Config, chunkStore chunkstore.ChunkStore) storage.Queryable
NewChunkStoreQueryable returns the storage.Queryable implementation against the chunks store.
func NewQueryable ¶
func NewQueryable(distributor QueryableWithFilter, stores []QueryableWithFilter, chunkIterFn chunkIteratorFunc, cfg Config, limits *validation.Overrides, tombstonesLoader *purger.TombstonesLoader) storage.Queryable
NewQueryable creates a new Queryable for cortex.
Types ¶
type BlocksConsistencyChecker ¶ added in v1.2.0
type BlocksConsistencyChecker struct {
// contains filtered or unexported fields
}
func NewBlocksConsistencyChecker ¶ added in v1.2.0
func NewBlocksConsistencyChecker(uploadGracePeriod, deletionGracePeriod time.Duration, logger log.Logger, reg prometheus.Registerer) *BlocksConsistencyChecker
func (*BlocksConsistencyChecker) Check ¶ added in v1.2.0
func (c *BlocksConsistencyChecker) Check(knownBlocks bucketindex.Blocks, knownDeletionMarks map[ulid.ULID]*bucketindex.BlockDeletionMark, queriedBlocks []ulid.ULID) (missingBlocks []ulid.ULID)
type BlocksFinder ¶ added in v1.1.0
type BlocksFinder interface { services.Service // GetBlocks returns known blocks for userID containing samples within the range minT // and maxT (milliseconds, both included). Returned blocks are sorted by MaxTime descending. GetBlocks(ctx context.Context, userID string, minT, maxT int64) (bucketindex.Blocks, map[ulid.ULID]*bucketindex.BlockDeletionMark, error) }
BlocksFinder is the interface used to find blocks for a given user and time range.
type BlocksScanner ¶ added in v1.1.0
func NewBlocksScanner ¶ added in v1.1.0
func NewBlocksScanner(cfg BlocksScannerConfig, bucketClient objstore.Bucket, logger log.Logger, reg prometheus.Registerer) *BlocksScanner
func (*BlocksScanner) GetBlocks ¶ added in v1.1.0
func (d *BlocksScanner) GetBlocks(_ context.Context, userID string, minT, maxT int64) (bucketindex.Blocks, map[ulid.ULID]*bucketindex.BlockDeletionMark, error)
GetBlocks returns known blocks for userID containing samples within the range minT and maxT (milliseconds, both included). Returned blocks are sorted by MaxTime descending.
type BlocksScannerConfig ¶ added in v1.1.0
type BlocksStoreClient ¶ added in v1.2.0
type BlocksStoreClient interface { storegatewaypb.StoreGatewayClient // RemoteAddress returns the address of the remote store-gateway and is used to uniquely // identify a store-gateway backend instance. RemoteAddress() string }
BlocksStoreClient is the interface that should be implemented by any client used to query a backend store-gateway.
type BlocksStoreLimits ¶ added in v1.3.0
type BlocksStoreLimits interface { MaxChunksPerQuery(userID string) int StoreGatewayTenantShardSize(userID string) int }
BlocksStoreLimits is the interface that should be implemented by the limits provider.
type BlocksStoreQueryable ¶ added in v1.1.0
BlocksStoreQueryable is a queryable which queries blocks storage via the store-gateway.
func NewBlocksStoreQueryable ¶ added in v1.1.0
func NewBlocksStoreQueryable(stores BlocksStoreSet, finder BlocksFinder, consistency *BlocksConsistencyChecker, limits BlocksStoreLimits, queryStoreAfter time.Duration, logger log.Logger, reg prometheus.Registerer) (*BlocksStoreQueryable, error)
func NewBlocksStoreQueryableFromConfig ¶ added in v1.1.0
func NewBlocksStoreQueryableFromConfig(querierCfg Config, gatewayCfg storegateway.Config, storageCfg cortex_tsdb.BlocksStorageConfig, limits BlocksStoreLimits, logger log.Logger, reg prometheus.Registerer) (*BlocksStoreQueryable, error)
type BlocksStoreSet ¶ added in v1.1.0
type BlocksStoreSet interface { services.Service // GetClientsFor returns the store gateway clients that should be used to // query the set of blocks in input. The exclude parameter is the map of // blocks -> store-gateway addresses that should be excluded. GetClientsFor(userID string, blockIDs []ulid.ULID, exclude map[ulid.ULID][]string) (map[BlocksStoreClient][]ulid.ULID, error) }
BlocksStoreSet is the interface used to get the clients to query series on a set of blocks.
type Config ¶
type Config struct { MaxConcurrent int `yaml:"max_concurrent"` Timeout time.Duration `yaml:"timeout"` Iterators bool `yaml:"iterators"` BatchIterators bool `yaml:"batch_iterators"` IngesterStreaming bool `yaml:"ingester_streaming"` MaxSamples int `yaml:"max_samples"` QueryIngestersWithin time.Duration `yaml:"query_ingesters_within"` QueryStoreForLabels bool `yaml:"query_store_for_labels_enabled"` // QueryStoreAfter the time after which queries should also be sent to the store and not just ingesters. QueryStoreAfter time.Duration `yaml:"query_store_after"` MaxQueryIntoFuture time.Duration `yaml:"max_query_into_future"` // The default evaluation interval for the promql engine. // Needs to be configured for subqueries to work as it is the default // step if not specified. DefaultEvaluationInterval time.Duration `yaml:"default_evaluation_interval"` // Directory for ActiveQueryTracker. If empty, ActiveQueryTracker will be disabled and MaxConcurrent will not be applied (!). // ActiveQueryTracker logs queries that were active during the last crash, but logs them on the next startup. // However, we need to use active query tracker, otherwise we cannot limit Max Concurrent queries in the PromQL // engine. ActiveQueryTrackerDir string `yaml:"active_query_tracker_dir"` // LookbackDelta determines the time since the last sample after which a time // series is considered stale. LookbackDelta time.Duration `yaml:"lookback_delta"` // Blocks storage only. StoreGatewayAddresses string `yaml:"store_gateway_addresses"` StoreGatewayClient tls.ClientConfig `yaml:"store_gateway_client"` SecondStoreEngine string `yaml:"second_store_engine"` UseSecondStoreBeforeTime flagext.Time `yaml:"use_second_store_before_time"` ShuffleShardingIngestersLookbackPeriod time.Duration `yaml:"shuffle_sharding_ingesters_lookback_period"` }
Config contains the configuration require to create a querier
func (*Config) GetStoreGatewayAddresses ¶ added in v1.1.0
func (*Config) RegisterFlags ¶
RegisterFlags adds the flags required to config this to the given FlagSet.
type Distributor ¶
type Distributor interface { Query(ctx context.Context, from, to model.Time, matchers ...*labels.Matcher) (model.Matrix, error) QueryStream(ctx context.Context, from, to model.Time, matchers ...*labels.Matcher) (*client.QueryStreamResponse, error) LabelValuesForLabelName(ctx context.Context, from, to model.Time, label model.LabelName) ([]string, error) LabelNames(context.Context, model.Time, model.Time) ([]string, error) MetricsForLabelMatchers(ctx context.Context, from, through model.Time, matchers ...*labels.Matcher) ([]metric.Metric, error) MetricsMetadata(ctx context.Context) ([]scrape.MetricMetadata, error) }
Distributor is the read interface to the distributor, made an interface here to reduce package coupling.
type DummyAlertmanagerRetriever ¶
type DummyAlertmanagerRetriever struct{}
DummyAlertmanagerRetriever implements AlertmanagerRetriever.
func (DummyAlertmanagerRetriever) Alertmanagers ¶
func (DummyAlertmanagerRetriever) Alertmanagers() []*url.URL
Alertmanagers implements AlertmanagerRetriever.
func (DummyAlertmanagerRetriever) DroppedAlertmanagers ¶
func (DummyAlertmanagerRetriever) DroppedAlertmanagers() []*url.URL
DroppedAlertmanagers implements AlertmanagerRetriever.
type DummyRulesRetriever ¶
type DummyRulesRetriever struct{}
DummyRulesRetriever implements RulesRetriever.
func (DummyRulesRetriever) AlertingRules ¶
func (DummyRulesRetriever) AlertingRules() []*rules.AlertingRule
AlertingRules implements RulesRetriever.
func (DummyRulesRetriever) RuleGroups ¶
func (DummyRulesRetriever) RuleGroups() []*rules.Group
RuleGroups implements RulesRetriever.
type DummyTargetRetriever ¶
type DummyTargetRetriever struct{}
DummyTargetRetriever implements github.com/prometheus/prometheus/web/api/v1.targetRetriever.
func (DummyTargetRetriever) TargetsActive ¶
func (DummyTargetRetriever) TargetsActive() map[string][]*scrape.Target
TargetsActive implements targetRetriever.
func (DummyTargetRetriever) TargetsDropped ¶
func (DummyTargetRetriever) TargetsDropped() map[string][]*scrape.Target
TargetsDropped implements targetRetriever.
type QueryableWithFilter ¶ added in v1.3.0
type QueryableWithFilter interface { storage.Queryable // UseQueryable returns true if this queryable should be used to satisfy the query for given time range. // Query min and max time are in milliseconds since epoch. UseQueryable(now time.Time, queryMinT, queryMaxT int64) bool }
QueryableWithFilter extends Queryable interface with `UseQueryable` filtering function.
func UseAlwaysQueryable ¶ added in v1.3.0
func UseAlwaysQueryable(q storage.Queryable) QueryableWithFilter
Wraps storage.Queryable into QueryableWithFilter, with no query filtering.
func UseBeforeTimestampQueryable ¶ added in v1.3.0
func UseBeforeTimestampQueryable(queryable storage.Queryable, ts time.Time) QueryableWithFilter
Returns QueryableWithFilter, that is used only if query starts before given timestamp. If timestamp is zero (time.IsZero), queryable is always used.
Source Files ¶
- block.go
- blocks_consistency_checker.go
- blocks_scanner.go
- blocks_store_balanced_set.go
- blocks_store_queryable.go
- blocks_store_replicated_set.go
- chunk_store_queryable.go
- chunks_handler.go
- distributor_queryable.go
- dummy.go
- matrix.go
- metadata_handler.go
- querier.go
- remote_read.go
- series_with_chunks.go
- store_gateway_client.go
- timeseries_series_set.go