Documentation
¶
Index ¶
- func Query[Req, Resp any](ctx context.Context, router *Router, req *connect.Request[Req], ...) (*connect.Response[Resp], error)
- type Config
- type Overrides
- type Router
- func (r *Router) AnalyzeQuery(ctx context.Context, req *connect.Request[querierv1.AnalyzeQueryRequest]) (*connect.Response[querierv1.AnalyzeQueryResponse], error)
- func (r *Router) Diff(ctx context.Context, c *connect.Request[querierv1.DiffRequest]) (*connect.Response[querierv1.DiffResponse], error)
- func (r *Router) GetProfileStats(ctx context.Context, c *connect.Request[typesv1.GetProfileStatsRequest]) (*connect.Response[typesv1.GetProfileStatsResponse], error)
- func (r *Router) LabelNames(ctx context.Context, c *connect.Request[typesv1.LabelNamesRequest]) (*connect.Response[typesv1.LabelNamesResponse], error)
- func (r *Router) LabelValues(ctx context.Context, c *connect.Request[typesv1.LabelValuesRequest]) (*connect.Response[typesv1.LabelValuesResponse], error)
- func (r *Router) ProfileTypes(ctx context.Context, c *connect.Request[querierv1.ProfileTypesRequest]) (*connect.Response[querierv1.ProfileTypesResponse], error)
- func (r *Router) SelectMergeProfile(ctx context.Context, c *connect.Request[querierv1.SelectMergeProfileRequest]) (*connect.Response[profilev1.Profile], error)
- func (r *Router) SelectMergeSpanProfile(ctx context.Context, ...) (*connect.Response[querierv1.SelectMergeSpanProfileResponse], error)
- func (r *Router) SelectMergeStacktraces(ctx context.Context, ...) (*connect.Response[querierv1.SelectMergeStacktracesResponse], error)
- func (r *Router) SelectSeries(ctx context.Context, c *connect.Request[querierv1.SelectSeriesRequest]) (*connect.Response[querierv1.SelectSeriesResponse], error)
- func (r *Router) Series(ctx context.Context, c *connect.Request[querierv1.SeriesRequest]) (*connect.Response[querierv1.SeriesResponse], error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Query ¶
func Query[Req, Resp any]( ctx context.Context, router *Router, req *connect.Request[Req], sanitize func(a, b *Req), aggregate func(a, b *Resp) (*Resp, error), ) (*connect.Response[Resp], error)
Query routes a query to the appropriate query frontend. Before the call to the frontend is made, the requests are sanitized: any of the arguments can be nil, but not both. If the query was split, the responses are aggregated.
Types ¶
type Config ¶
type Config struct { EnableQueryBackend bool `yaml:"enable_query_backend" json:"enable_query_backend" doc:"hidden"` EnableQueryBackendFrom time.Time `yaml:"enable_query_backend_from" json:"enable_query_backend_from" doc:"hidden"` }
func (*Config) RegisterFlags ¶
type Router ¶
type Router struct {
// contains filtered or unexported fields
}
Router is a proxy that routes queries to the query frontend.
If the query backend is enabled, it routes queries to the new query frontend, otherwise it routes queries to the old query frontend.
If the query targets a time range that spans the enablement of the new query backend, it splits the query into two parts and sends them to the old and new query frontends.
func NewRouter ¶
func NewRouter( logger log.Logger, overrides Overrides, oldFrontend querierv1connect.QuerierServiceClient, newFrontend querierv1connect.QuerierServiceClient, ) *Router
func (*Router) AnalyzeQuery ¶
func (*Router) GetProfileStats ¶
func (*Router) LabelNames ¶
func (*Router) LabelValues ¶
func (*Router) ProfileTypes ¶
func (*Router) SelectMergeProfile ¶
func (*Router) SelectMergeSpanProfile ¶
func (*Router) SelectMergeStacktraces ¶
func (*Router) SelectSeries ¶
Click to show internal directories.
Click to hide internal directories.