Documentation
¶
Index ¶
- Constants
- func NewAlertsHandler(client rules.UnaryClient, enablePartialResponse bool) func(*http.Request) (any, []error, *api.ApiError, func())
- func NewExemplarsHandler(client exemplars.UnaryClient, enablePartialResponse bool) func(*http.Request) (any, []error, *api.ApiError, func())
- func NewMetricMetadataHandler(client metadata.UnaryClient, enablePartialResponse bool) func(*http.Request) (any, []error, *api.ApiError, func())
- func NewRulesHandler(client rules.UnaryClient, enablePartialResponse bool) func(*http.Request) (any, []error, *api.ApiError, func())
- func NewTargetsHandler(client targets.UnaryClient, enablePartialResponse bool) func(*http.Request) (any, []error, *api.ApiError, func())
- func RegisterQueryServer(queryServer querypb.QueryServer) func(*grpc.Server)
- type GRPCAPI
- type PromqlEngineType
- type PromqlQueryMode
- type QueryAPI
- type QueryFactory
Constants ¶
const ( QueryParam = "query" DedupParam = "dedup" PartialResponseParam = "partial_response" MaxSourceResolutionParam = "max_source_resolution" ReplicaLabelsParam = "replicaLabels[]" MatcherParam = "match[]" StoreMatcherParam = "storeMatch[]" Step = "step" Stats = "stats" ShardInfoParam = "shard_info" LookbackDeltaParam = "lookback_delta" EngineParam = "engine" QueryAnalyzeParam = "analyze" RuleNameParam = "rule_name[]" RuleGroupParam = "rule_group[]" FileParam = "file[]" )
Variables ¶
This section is empty.
Functions ¶
func NewAlertsHandler ¶ added in v0.28.0
func NewAlertsHandler(client rules.UnaryClient, enablePartialResponse bool) func(*http.Request) (any, []error, *api.ApiError, func())
NewAlertsHandler created handler compatible with HTTP /api/v1/alerts https://prometheus.io/docs/prometheus/latest/querying/api/#alerts which uses gRPC Unary Rules API (Rules API works for both /alerts and /rules).
func NewExemplarsHandler ¶ added in v0.20.0
func NewExemplarsHandler(client exemplars.UnaryClient, enablePartialResponse bool) func(*http.Request) (any, []error, *api.ApiError, func())
NewExemplarsHandler creates handler compatible with HTTP /api/v1/query_exemplars https://prometheus.io/docs/prometheus/latest/querying/api/#querying-exemplars which uses gRPC Unary Exemplars API.
func NewMetricMetadataHandler ¶ added in v0.19.0
func NewMetricMetadataHandler(client metadata.UnaryClient, enablePartialResponse bool) func(*http.Request) (any, []error, *api.ApiError, func())
NewMetricMetadataHandler creates handler compatible with HTTP /api/v1/metadata https://prometheus.io/docs/prometheus/latest/querying/api/#querying-metric-metadata which uses gRPC Unary Metadata API.
func NewRulesHandler ¶
func NewRulesHandler(client rules.UnaryClient, enablePartialResponse bool) func(*http.Request) (any, []error, *api.ApiError, func())
NewRulesHandler created handler compatible with HTTP /api/v1/rules https://prometheus.io/docs/prometheus/latest/querying/api/#rules which uses gRPC Unary Rules API.
func NewTargetsHandler ¶ added in v0.20.0
func NewTargetsHandler(client targets.UnaryClient, enablePartialResponse bool) func(*http.Request) (any, []error, *api.ApiError, func())
NewTargetsHandler created handler compatible with HTTP /api/v1/targets https://prometheus.io/docs/prometheus/latest/querying/api/#targets which uses gRPC Unary Targets API.
func RegisterQueryServer ¶ added in v0.26.0
func RegisterQueryServer(queryServer querypb.QueryServer) func(*grpc.Server)
Types ¶
type GRPCAPI ¶ added in v0.26.0
type GRPCAPI struct {
// contains filtered or unexported fields
}
func NewGRPCAPI ¶ added in v0.26.0
func NewGRPCAPI( now func() time.Time, replicaLabels []string, queryableCreator query.QueryableCreator, remoteEndpointsCreator query.RemoteEndpointsCreator, queryCreator queryCreator, defaultEngine querypb.EngineType, lookbackDeltaCreate func(int64) time.Duration, defaultMaxResolution time.Duration, ) *GRPCAPI
func (*GRPCAPI) Query ¶ added in v0.26.0
func (g *GRPCAPI) Query(request *querypb.QueryRequest, server querypb.Query_QueryServer) error
func (*GRPCAPI) QueryRange ¶ added in v0.26.0
func (g *GRPCAPI) QueryRange(request *querypb.QueryRangeRequest, srv querypb.Query_QueryRangeServer) error
type PromqlEngineType ¶ added in v0.32.0
type PromqlEngineType string
const ( PromqlEnginePrometheus PromqlEngineType = "prometheus" PromqlEngineThanos PromqlEngineType = "thanos" )
type PromqlQueryMode ¶ added in v0.38.0
type PromqlQueryMode string
const ( PromqlQueryModeLocal PromqlQueryMode = "local" PromqlQueryModeDistributed PromqlQueryMode = "distributed" )
type QueryAPI ¶
type QueryAPI struct {
// contains filtered or unexported fields
}
QueryAPI is an API used by Thanos Querier.
func NewQueryAPI ¶
func NewQueryAPI( logger log.Logger, endpointStatus func() []query.EndpointStatus, queryCreate *QueryFactory, defaultEngine PromqlEngineType, lookbackDeltaCreate func(int64) time.Duration, queryableCreate query.QueryableCreator, remoteEndpointsCreate query.RemoteEndpointsCreator, ruleGroups rules.UnaryClient, targets targets.UnaryClient, metadatas metadata.UnaryClient, exemplars exemplars.UnaryClient, status status.UnaryClient, enableAutodownsampling bool, enableQueryPartialResponse bool, enableRulePartialResponse bool, enableTargetPartialResponse bool, enableMetricMetadataPartialResponse bool, enableExemplarPartialResponse bool, enableStatusPartialResponse bool, replicaLabels []string, flagsMap map[string]string, defaultRangeQueryStep time.Duration, defaultInstantQueryMaxSourceResolution time.Duration, defaultMetadataTimeRange time.Duration, disableCORS bool, gate gate.Gate, statsAggregatorFactory store.SeriesQueryPerformanceMetricsAggregatorFactory, reg *prometheus.Registry, tenantHeader string, defaultTenant string, tenantCertField string, enforceTenancy bool, tenantLabel string, tsdbSelector *store.TSDBSelector, ) *QueryAPI
NewQueryAPI returns an initialized QueryAPI type.
func (*QueryAPI) Register ¶
func (qapi *QueryAPI) Register(r *route.Router, tracer opentracing.Tracer, logger log.Logger, ins extpromhttp.InstrumentationMiddleware, logMiddleware *logging.HTTPServerMiddleware)
Register the API's endpoints in the given router.
type QueryFactory ¶ added in v0.38.0
type QueryFactory struct {
// contains filtered or unexported fields
}
func NewQueryFactory ¶ added in v0.38.0
func NewQueryFactory( reg *prometheus.Registry, logger log.Logger, queryTimeout time.Duration, lookbackDelta time.Duration, evaluationInterval time.Duration, enableXFunctions bool, activeQueryTracker *promql.ActiveQueryTracker, mode PromqlQueryMode, disableFallback bool, ) *QueryFactory