diff --git a/Makefile b/Makefile index 9cad6c495..37086c989 100644 --- a/Makefile +++ b/Makefile @@ -90,7 +90,7 @@ clean: .PHONY: test test: $(PROMTOOL_BIN) prometheus_alerts.yaml prometheus_rules.yaml - @$(PROMTOOL_BIN) test rules tests.yaml + @$(PROMTOOL_BIN) test rules tests/*.yaml $(BIN_DIR): mkdir -p $(BIN_DIR) diff --git a/tests/apiserver-availability-test.yaml b/tests/apiserver-availability-test.yaml new file mode 100644 index 000000000..5f7d0c89a --- /dev/null +++ b/tests/apiserver-availability-test.yaml @@ -0,0 +1,41 @@ +rule_files: +- ../prometheus_alerts.yaml +- ../prometheus_rules.yaml + +evaluation_interval: 1m + +tests: +- name: calculate apiserver request total increase 1h rate + interval: 1m + input_series: + # 100 requests in the overall interval, 99 successful and 1 error + - series: 'apiserver_request_total{job="kube-apiserver",verb="GET",code="200"}' + values: '0 10 20 50 90 99' + - series: 'apiserver_request_total{job="kube-apiserver",verb="GET",code="500"}' + values: '0x2 1x2' + + promql_expr_test: + - eval_time: 5m + expr: code_verb:apiserver_request_total:increase1h{verb="GET"} + exp_samples: + - labels: 'code_verb:apiserver_request_total:increase1h{code="200", verb="GET"}' + value: 99.0 + - labels: 'code_verb:apiserver_request_total:increase1h{code="500", verb="GET"}' + value: 1.0 + +- name: calculate apiserver request total increase 30d rate + interval: 1m + input_series: + - series: code_verb:apiserver_request_total:increase1h{verb="GET",code="200"} + values: '10+10x9' + - series: code_verb:apiserver_request_total:increase1h{verb="GET",code="500"} + values: '0+1x9' + + promql_expr_test: + - eval_time: 10m + expr: code_verb:apiserver_request_total:increase30d{verb="GET"} + exp_samples: + - labels: 'code_verb:apiserver_request_total:increase30d{code="200", verb="GET"}' + value: 3.96e+4 # average of the input series values times 24 (hours) times 30 (days) + - labels: 'code_verb:apiserver_request_total:increase30d{code="500", verb="GET"}' + value: 3.24e+3 diff --git a/tests.yaml b/tests/tests.yaml similarity index 99% rename from tests.yaml rename to tests/tests.yaml index 3f1f1ba15..49a81c730 100644 --- a/tests.yaml +++ b/tests/tests.yaml @@ -1,6 +1,6 @@ rule_files: - - prometheus_alerts.yaml - - prometheus_rules.yaml +- ../prometheus_alerts.yaml +- ../prometheus_rules.yaml evaluation_interval: 1m