From 684949717bea364a84a924e24c41aafe6419bedf Mon Sep 17 00:00:00 2001 From: SungJin1212 Date: Tue, 10 Sep 2024 16:04:16 +0900 Subject: [PATCH] Add support rule evaluation via query frontend docs Signed-off-by: SungJin1212 --- .../rule-evaluations-via-query-frontend.md | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 docs/guides/rule-evaluations-via-query-frontend.md diff --git a/docs/guides/rule-evaluations-via-query-frontend.md b/docs/guides/rule-evaluations-via-query-frontend.md new file mode 100644 index 00000000000..e305ad4991d --- /dev/null +++ b/docs/guides/rule-evaluations-via-query-frontend.md @@ -0,0 +1,40 @@ +--- +title: "Rule evaluations via query frontend" +linkTitle: "Rule evaluations via query frontend" +weight: 10 +slug: rule-evalutions-via-query-frontend +--- + +This guide explains how to configure the Ruler to evaluate rules via Query Frontends instead of the Ingester/Store Gateway and the pros and cons of rule evaluation via Query Frontend. + +## How to enable + +By default, the Ruler queries both Ingesters and Store Gateway depending on the Rule time range for evaluating rules (alerting rules or recording rules). If you have set `-ruler.frontend-address` then the Ruler queries the Query Frontend for evaluation rules. +The address should be the gRPC listen address in host:port format. + +You can configure via args: +``` +-ruler.frontend-address=query-frontend.svc.cluster.local:9095 +``` +And via yaml: +```yaml +ruler: + frontend_address: query-frontend.svc.cluster.local:9095 +``` + +In addition, you can configure gRPC client (Ruler -> Query Frontend) config, please refer to frontend_client section in [ruler config](../configuration/config-file-reference.md#ruler_config). + +## Pros and Cons +If this feature is enabled, the query execute path is as follows: + +Ruler -> Query Frontend -> Query Scheduler -> Querier -> Ingester/Store Gateway + +There are more hops than before (Ruler -> Ingester/Store Gateway). +### Pros +The rule evaluation performance is improved in such a situation where the number of Queriers pulling queries from the Query Scheduler is enough as we can use Query Frontend features like the vertical query sharding. +Also, the Ruler can use fewer resources as it doesn't need to run query engine to evaluate rules. + +### Cons +If there are not enough Queriers, add rule queries to Query Scheduler could cause query starvation problem and rules cannot get evaluated. +Another is, currently, the only support format of the query response of the Query Frontend is the JSON format. The JSON format only contains partial information of the native histogram. +So, if your rules use the native histogram, it is not allowed yet. \ No newline at end of file