api

package
v1.17.0-rc.1 Latest Latest
Warning

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

Go to latest
Published: Apr 28, 2024 License: Apache-2.0 Imports: 53 Imported by: 1

Documentation

Index

Constants

View Source
const (
	SectionAdminEndpoints = "Admin Endpoints:"
	SectionDangerous      = "Dangerous:"
)

Variables

This section is empty.

Functions

func DefaultConfigHandler added in v1.10.0

func DefaultConfigHandler(actualCfg interface{}, defaultCfg interface{}) http.HandlerFunc

func NewQuerierHandler added in v1.5.0

func NewQuerierHandler(
	cfg Config,
	queryable storage.SampleAndChunkQueryable,
	exemplarQueryable storage.ExemplarQueryable,
	engine promql.QueryEngine,
	distributor Distributor,
	reg prometheus.Registerer,
	logger log.Logger,
) http.Handler

NewQuerierHandler returns a HTTP handler that can be used by the querier service to either register with the frontend worker query processor or with the external HTTP server to fulfill the Prometheus query API.

Types

type API

type API struct {
	AuthMiddleware middleware.Interface

	HTTPHeaderMiddleware *HTTPHeaderMiddleware
	// contains filtered or unexported fields
}

func New

func New(cfg Config, serverCfg server.Config, s *server.Server, logger log.Logger) (*API, error)

func (*API) RegisterAPI

func (a *API) RegisterAPI(httpPathPrefix string, actualCfg interface{}, defaultCfg interface{})

RegisterAPI registers the standard endpoints associated with a running Cortex.

func (*API) RegisterAlertmanager

func (a *API) RegisterAlertmanager(am *alertmanager.MultitenantAlertmanager, target, apiEnabled bool)

RegisterAlertmanager registers endpoints associated with the alertmanager. It will only serve endpoints using the legacy http-prefix if it is not run as a single binary.

func (*API) RegisterCompactor

func (a *API) RegisterCompactor(c *compactor.Compactor)

RegisterCompactor registers the ring UI page associated with the compactor.

func (*API) RegisterDistributor

func (a *API) RegisterDistributor(d *distributor.Distributor, pushConfig distributor.Config)

RegisterDistributor registers the endpoints associated with the distributor.

func (*API) RegisterIngester

func (a *API) RegisterIngester(i Ingester, pushConfig distributor.Config)

RegisterIngester registers the ingesters HTTP and GRPC service

func (*API) RegisterMemberlistKV added in v1.7.0

func (a *API) RegisterMemberlistKV(handler http.Handler)

func (*API) RegisterQueryAPI added in v1.5.0

func (a *API) RegisterQueryAPI(handler http.Handler)

RegisterQueryAPI registers the Prometheus API routes with the provided handler.

func (*API) RegisterQueryFrontend1 added in v1.6.0

func (a *API) RegisterQueryFrontend1(f *frontendv1.Frontend)

func (*API) RegisterQueryFrontend2 added in v1.6.0

func (a *API) RegisterQueryFrontend2(f *frontendv2.Frontend)

func (*API) RegisterQueryFrontendHandler added in v1.6.0

func (a *API) RegisterQueryFrontendHandler(h http.Handler)

RegisterQueryFrontendHandler registers the Prometheus routes supported by the Cortex querier service. Currently, this can not be registered simultaneously with the Querier.

func (*API) RegisterQueryScheduler added in v1.6.0

func (a *API) RegisterQueryScheduler(f *scheduler.Scheduler)

func (*API) RegisterQueryable added in v1.5.0

func (a *API) RegisterQueryable(
	queryable storage.SampleAndChunkQueryable,
	distributor Distributor,
)

RegisterQueryable registers the default routes associated with the querier module.

func (*API) RegisterRing

func (a *API) RegisterRing(r *ring.Ring)

RegisterRing registers the ring UI page associated with the distributor for writes.

func (*API) RegisterRoute

func (a *API) RegisterRoute(path string, handler http.Handler, auth bool, method string, methods ...string)

RegisterRoute registers a single route enforcing HTTP methods. A single route is expected to be specific about which HTTP methods are supported.

func (*API) RegisterRoutesWithPrefix

func (a *API) RegisterRoutesWithPrefix(prefix string, handler http.Handler, auth bool, methods ...string)

func (*API) RegisterRuler

func (a *API) RegisterRuler(r *ruler.Ruler)

RegisterRuler registers routes associated with the Ruler service.

func (*API) RegisterRulerAPI added in v1.5.0

func (a *API) RegisterRulerAPI(r *ruler.API)

RegisterRulerAPI registers routes associated with the Ruler API

func (*API) RegisterRuntimeConfig added in v1.7.0

func (a *API) RegisterRuntimeConfig(runtimeConfigHandler http.HandlerFunc)

RegisterRuntimeConfig registers the endpoints associates with the runtime configuration

func (*API) RegisterServiceMapHandler

func (a *API) RegisterServiceMapHandler(handler http.Handler)

RegisterServiceMapHandler registers the Cortex structs service handler TODO: Refactor this code to be accomplished using the services.ServiceManager or a future module manager #2291

func (*API) RegisterStoreGateway

func (a *API) RegisterStoreGateway(s *storegateway.StoreGateway)

RegisterStoreGateway registers the ring UI page associated with the store-gateway.

func (*API) RegisterTenantDeletion added in v1.8.0

func (a *API) RegisterTenantDeletion(api *purger.TenantDeletionAPI)

type Config

type Config struct {
	ResponseCompression bool `yaml:"response_compression_enabled"`

	AlertmanagerHTTPPrefix string `yaml:"alertmanager_http_prefix"`
	PrometheusHTTPPrefix   string `yaml:"prometheus_http_prefix"`

	// The following configs are injected by the upstream caller.
	ServerPrefix       string               `yaml:"-"`
	LegacyHTTPPrefix   string               `yaml:"-"`
	HTTPAuthMiddleware middleware.Interface `yaml:"-"`

	// This allows downstream projects to wrap the distributor push function
	// and access the deserialized write requests before/after they are pushed.
	DistributorPushWrapper DistributorPushWrapper `yaml:"-"`

	// The CustomConfigHandler allows for providing a different handler for the
	// `/config` endpoint. If this field is set _before_ the API module is
	// initialized, the custom config handler will be used instead of
	// DefaultConfigHandler.
	CustomConfigHandler ConfigHandler `yaml:"-"`

	// Allows and is used to configure the addition of HTTP Header fields to logs
	HTTPRequestHeadersToLog flagext.StringSlice `yaml:"http_request_headers_to_log"`
	// contains filtered or unexported fields
}

func (*Config) RegisterFlags

func (cfg *Config) RegisterFlags(f *flag.FlagSet)

RegisterFlags adds the flags required to config this to the given FlagSet.

func (*Config) RegisterFlagsWithPrefix

func (cfg *Config) RegisterFlagsWithPrefix(prefix string, f *flag.FlagSet)

RegisterFlagsWithPrefix adds the flags required to config this to the given FlagSet with the set prefix.

type ConfigHandler added in v1.10.0

type ConfigHandler func(actualCfg interface{}, defaultCfg interface{}) http.HandlerFunc

type Distributor added in v1.10.0

type Distributor interface {
	querier.Distributor
	UserStatsHandler(w http.ResponseWriter, r *http.Request)
}

type DistributorPushWrapper added in v1.8.0

type DistributorPushWrapper func(next push.Func) push.Func

DistributorPushWrapper wraps around a push. It is similar to middleware.Interface.

type HTTPHeaderMiddleware added in v1.14.0

type HTTPHeaderMiddleware struct {
	TargetHeaders []string
}

HTTPHeaderMiddleware adds specified HTTPHeaders to the request context

func (HTTPHeaderMiddleware) InjectTargetHeadersIntoHTTPRequest added in v1.14.0

func (h HTTPHeaderMiddleware) InjectTargetHeadersIntoHTTPRequest(r *http.Request) context.Context

InjectTargetHeadersIntoHTTPRequest injects specified HTTPHeaders into the request context

func (HTTPHeaderMiddleware) Wrap added in v1.14.0

Wrap implements Middleware

type IndexPageContent added in v1.4.0

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

IndexPageContent is a map of sections to path -> description.

func (pc *IndexPageContent) AddLink(section, path, description string)

func (*IndexPageContent) GetContent added in v1.4.0

func (pc *IndexPageContent) GetContent() map[string]map[string]string

type Ingester added in v1.5.0

type Ingester interface {
	client.IngesterServer
	FlushHandler(http.ResponseWriter, *http.Request)
	ShutdownHandler(http.ResponseWriter, *http.Request)
	Push(context.Context, *cortexpb.WriteRequest) (*cortexpb.WriteResponse, error)
}

Ingester is defined as an interface to allow for alternative implementations of ingesters to be passed into the API.RegisterIngester() method.

Jump to

Keyboard shortcuts

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