diff --git a/app/vmalert/Makefile b/app/vmalert/Makefile index 37787e5c1..9f200f0c2 100644 --- a/app/vmalert/Makefile +++ b/app/vmalert/Makefile @@ -74,7 +74,6 @@ test-vmalert: go test -v -race -cover ./app/vmalert/config go test -v -race -cover ./app/vmalert/remotewrite go test -v -race -cover ./app/vmalert/utils - go test -v -race -cover ./app/vmalert/unittest run-vmalert: vmalert ./bin/vmalert -rule=app/vmalert/config/testdata/rules/rules2-good.rules \ @@ -104,10 +103,6 @@ replay-vmalert: vmalert -replay.timeFrom=2021-05-11T07:21:43Z \ -replay.timeTo=2021-05-29T18:40:43Z -unittest-vmalert: vmalert - ./bin/vmalert -unittestFile=app/vmalert/unittest/testdata/test1.yaml \ - -unittestFile=app/vmalert/unittest/testdata/test2.yaml - vmalert-linux-amd64: APP_NAME=vmalert CGO_ENABLED=1 GOOS=linux GOARCH=amd64 $(MAKE) app-local-goos-goarch diff --git a/app/vmalert/README.md b/app/vmalert/README.md index 613a8db62..4015aaa2c 100644 --- a/app/vmalert/README.md +++ b/app/vmalert/README.md @@ -742,249 +742,6 @@ See full description for these flags in `./vmalert -help`. * `limit` group's param has no effect during replay (might be changed in future); * `keep_firing_for` alerting rule param has no effect during replay (might be changed in future). -## Unit Testing for Rules - -> Unit testing is available from v1.92.0. -> Unit tests do not respect `-clusterMode` for now. - -You can use `vmalert` to run unit tests for alerting and recording rules. -In unit test mode vmalert performs the following actions: -* sets up an isolated VictoriaMetrics instance; -* simulates the periodic ingestion of time series; -* queries the ingested data for recording and alerting rules evaluation; -* tests whether the firing alerts or resulting recording rules match the expected results. - -See how to run vmalert in unit test mode below: -``` -# Run vmalert with one or multiple test files via -unittestFile cmd-line flag -./vmalert -unittestFile=test1.yaml -unittestFile=test2.yaml -``` - -vmalert is compatible with [Prometheus config format for tests](https://prometheus.io/docs/prometheus/latest/configuration/unit_testing_rules/#test-file-format) -except `promql_expr_test` field. Use `metricsql_expr_test` field name instead. The name is different because vmalert -validates and executes [MetricsQL](https://docs.victoriametrics.com/MetricsQL.html) expressions, -which aren't always backward compatible with [PromQL](https://prometheus.io/docs/prometheus/latest/querying/basics/). - -### Test file format - -The configuration format for files specified in `-unittestFile` cmd-line flag is the following: -``` -# Path to the files or http url containing [rule groups](https://docs.victoriametrics.com/vmalert.html#groups) configuration. -# Enterprise version of vmalert supports S3 and GCS paths to rules. -rule_files: - [ - ] - -# The evaluation interval for rules specified in `rule_files` -[ evaluation_interval: | default = 1m ] - -# Groups listed below will be evaluated by order. -# Not All the groups need not be mentioned, if not, they will be evaluated by define order in rule_files. -group_eval_order: - [ - ] - -# The list of unit test files to be checked during evaluation. -tests: - [ - ] -``` - -#### `` - -``` -# Interval between samples for input series -interval: -# Time series to persist into the database according to configured before running tests. -input_series: - [ - ] - -# Name of the test group, optional -[ name: ] - -# Unit tests for alerting rules -alert_rule_test: - [ - ] - -# Unit tests for Metricsql expressions. -metricsql_expr_test: - [ - ] - -# External labels accessible for templating. -external_labels: - [ : ... ] - -``` - -#### `` - -``` -# series in the following format '{