From 4ac60a7c2b3d7a68e6e4032a94474eb4f1c51bd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Mierzwa?= Date: Fri, 31 Jan 2020 16:53:40 +0000 Subject: [PATCH 1/2] fix(tests): more complete config tests --- cmd/karma/testdata/log_full_config_env.txt | 180 ++++++++++++++++++ ...ll_config.txt => log_full_config_file.txt} | 64 +++++-- cmd/karma/testdata/simple_config.txt | 1 - internal/config/config.go | 1 - 4 files changed, 231 insertions(+), 15 deletions(-) create mode 100644 cmd/karma/testdata/log_full_config_env.txt rename cmd/karma/testdata/{log_full_config.txt => log_full_config_file.txt} (92%) diff --git a/cmd/karma/testdata/log_full_config_env.txt b/cmd/karma/testdata/log_full_config_env.txt new file mode 100644 index 000000000..c973bd3c2 --- /dev/null +++ b/cmd/karma/testdata/log_full_config_env.txt @@ -0,0 +1,180 @@ +# Print out and compare logged config set via env variables +env ALERTMANAGER_INTERVAL=10s +env ALERTMANAGER_NAME=ro +env ALERTMANAGER_URI=http://localhost:9093 +env ALERTMANAGER_EXTERNAL_URI=http://localhost:9093 +env ALERTMANAGER_READONLY=true +env ALERTMANAGER_TIMEOUT=10s + +env ALERTACKNOWLEDGEMENT_ENABLED=true +env ALERTACKNOWLEDGEMENT_DURATION=5m +env ALERTACKNOWLEDGEMENT_AUTHOR=karma +env ALERTACKNOWLEDGEMENT_COMMENTPREFIX=ACK + +env ANNOTATIONS_DEFAULT_HIDDEN=true +env ANNOTATIONS_HIDDEN='help summary' +env ANNOTATIONS_VISIBLE='visible' +env ANNOTATIONS_KEEP='keep' +env ANNOTATIONS_STRIP='strip1 strip2 strip3' + +env CUSTOM_CSS='/custom.css' +env CUSTOM_JS='/custom.js' + +env DEBUG=true + +env FILTERS_DEFAULT='@receiver=by-cluster-service @state=active' + +env GRID_SORTING_ORDER=label +env GRID_SORTING_REVERSE=false +env GRID_SORTING_LABEL=severity + +env KARMA_NAME=karma-demo + +env LABELS_COLOR_STATIC=job +env LABELS_COLOR_UNIQUE='@receiver instance cluster' +env LABELS_KEEP='keep1 keep2' +env LABELS_STRIP='strip1 strip2' + +env LISTEN_ADDRESS=localhost +env LISTEN_PORT=1234 +env LISTEN_PREFIX='/prefix/' + +env LOG_CONFIG=true +env LOG_LEVEL=info +env LOG_FORMAT=text +env LOG_TIMESTAMP=false + +env RECEIVERS_KEEP='keep1 keep2' +env RECEIVERS_STRIP='strip1 strip2' + +env SENTRY_DSN=abcdef1234567890 +env SENTRY_PUBLIC=1234567890abcdef + +env SILENCEFORM_AUTHOR_POPULATE_FROM_HEADER_HEADER=CF-RAY +env SILENCEFORM_AUTHOR_POPULATE_FROM_HEADER_VALUE_RE='^(.+)$' +env SILENCEFORM_STRIP_LABELS='job severity region' + +env UI_REFRESH=10s +env UI_HIDEFILTERSWHENIDLE=false +env UI_COLORTITLEBAR=true +env UI_THEME=dark +env UI_MINIMALGROUPWIDTH=300 +env UI_ALERTSPERGROUP=2 +env UI_COLLAPSEGROUPS=expanded + +karma.bin-should-work --check-config +! stdout . +cmp stderr expected.stderr + +-- expected.stderr -- +level=info msg="Version: dev" +level=info msg="Parsed configuration:" +level=info msg="alertmanager:" +level=info msg=" interval: 10s" +level=info msg=" servers:" +level=info msg=" - name: ro" +level=info msg=" uri: http://localhost:9093" +level=info msg=" external_uri: http://localhost:9093" +level=info msg=" timeout: 10s" +level=info msg=" proxy: false" +level=info msg=" readonly: true" +level=info msg=" tls:" +level=info msg=" ca: \"\"" +level=info msg=" cert: \"\"" +level=info msg=" key: \"\"" +level=info msg=" insecureSkipVerify: false" +level=info msg=" headers: {}" +level=info msg="alertAcknowledgement:" +level=info msg=" enabled: true" +level=info msg=" duration: 5m0s" +level=info msg=" author: karma" +level=info msg=" commentPrefix: ACK" +level=info msg="annotations:" +level=info msg=" default:" +level=info msg=" hidden: true" +level=info msg=" hidden:" +level=info msg=" - help" +level=info msg=" - summary" +level=info msg=" visible:" +level=info msg=" - visible" +level=info msg=" keep:" +level=info msg=" - keep" +level=info msg=" strip:" +level=info msg=" - strip1" +level=info msg=" - strip2" +level=info msg=" - strip3" +level=info msg="custom:" +level=info msg=" css: /custom.css" +level=info msg=" js: /custom.js" +level=info msg="debug: true" +level=info msg="filters:" +level=info msg=" default:" +level=info msg=" - '@receiver=by-cluster-service'" +level=info msg=" - '@state=active'" +level=info msg="grid:" +level=info msg=" sorting:" +level=info msg=" order: label" +level=info msg=" reverse: false" +level=info msg=" label: severity" +level=info msg=" customValues:" +level=info msg=" labels: {}" +level=info msg="karma:" +level=info msg=" name: karma-demo" +level=info msg="labels:" +level=info msg=" keep:" +level=info msg=" - keep1" +level=info msg=" - keep2" +level=info msg=" strip:" +level=info msg=" - strip1" +level=info msg=" - strip2" +level=info msg=" color:" +level=info msg=" custom: {}" +level=info msg=" static:" +level=info msg=" - job" +level=info msg=" unique:" +level=info msg=" - '@receiver'" +level=info msg=" - instance" +level=info msg=" - cluster" +level=info msg="listen:" +level=info msg=" address: localhost" +level=info msg=" port: 1234" +level=info msg=" prefix: /prefix/" +level=info msg="log:" +level=info msg=" config: true" +level=info msg=" level: info" +level=info msg=" format: text" +level=info msg=" timestamp: false" +level=info msg="receivers:" +level=info msg=" keep:" +level=info msg=" - keep1" +level=info msg=" - keep2" +level=info msg=" strip:" +level=info msg=" - strip1" +level=info msg=" - strip2" +level=info msg="sentry:" +level=info msg=" private: abcdef1234567890" +level=info msg=" public: 1234567890abcdef" +level=info msg="silences:" +level=info msg=" comments:" +level=info msg=" linkDetect:" +level=info msg=" rules: []" +level=info msg="silenceForm:" +level=info msg=" author:" +level=info msg=" populate_from_header:" +level=info msg=" header: CF-RAY" +level=info msg=" value_re: ^(.+)$" +level=info msg=" strip:" +level=info msg=" labels:" +level=info msg=" - job" +level=info msg=" - severity" +level=info msg=" - region" +level=info msg="ui:" +level=info msg=" refresh: 10s" +level=info msg=" hideFiltersWhenIdle: false" +level=info msg=" colorTitlebar: true" +level=info msg=" theme: dark" +level=info msg=" minimalGroupWidth: 300" +level=info msg=" alertsPerGroup: 2" +level=info msg=" collapseGroups: expanded" +level=info msg="[ro] Configured Alertmanager source at http://localhost:9093 (proxied: false, readonly: true)" +level=info msg="Configuration is valid" diff --git a/cmd/karma/testdata/log_full_config.txt b/cmd/karma/testdata/log_full_config_file.txt similarity index 92% rename from cmd/karma/testdata/log_full_config.txt rename to cmd/karma/testdata/log_full_config_file.txt index 18cc141d2..4acc1030b 100644 --- a/cmd/karma/testdata/log_full_config.txt +++ b/cmd/karma/testdata/log_full_config_file.txt @@ -1,4 +1,4 @@ -# Print out and compare full logged config +# Print out and compare logged config set via config file karma.bin-should-work --config.file=karma.yaml --check-config ! stdout . cmp stderr expected.stderr @@ -31,12 +31,23 @@ alertmanager: key: key.pem alertAcknowledgement: enabled: true - duration: 15m0s - author: karma-ack + duration: 7m0s + author: karma commentPrefix: ACK! annotations: + default: + hidden: true hidden: - help + - summary + visible: + - visible + keep: + - keep + strip: + - strip1 + - strip2 + - strip3 custom: js: /custom.js css: /custom.css @@ -61,6 +72,12 @@ grid: karma: name: karma-demo labels: + keep: + - keep1 + - keep2 + strip: + - strip1 + - strip2 color: static: - job @@ -84,6 +101,13 @@ log: level: info format: text timestamp: false +receivers: + keep: + - keep1 + - keep2 + strip: + - strip1 + - strip2 sentry: private: abcdef1234567890 public: 1234567890abcdef @@ -258,17 +282,23 @@ level=info msg=" insecureSkipVerify: false" level=info msg=" headers: {}" level=info msg="alertAcknowledgement:" level=info msg=" enabled: true" -level=info msg=" duration: 15m0s" -level=info msg=" author: karma-ack" +level=info msg=" duration: 7m0s" +level=info msg=" author: karma" level=info msg=" commentPrefix: ACK!" level=info msg="annotations:" level=info msg=" default:" -level=info msg=" hidden: false" +level=info msg=" hidden: true" level=info msg=" hidden:" level=info msg=" - help" -level=info msg=" visible: []" -level=info msg=" keep: []" -level=info msg=" strip: []" +level=info msg=" - summary" +level=info msg=" visible:" +level=info msg=" - visible" +level=info msg=" keep:" +level=info msg=" - keep" +level=info msg=" strip:" +level=info msg=" - strip1" +level=info msg=" - strip2" +level=info msg=" - strip3" level=info msg="custom:" level=info msg=" css: /custom.css" level=info msg=" js: /custom.js" @@ -294,8 +324,12 @@ level=info msg=" warning: \"2\"" level=info msg="karma:" level=info msg=" name: karma-demo" level=info msg="labels:" -level=info msg=" keep: []" -level=info msg=" strip: []" +level=info msg=" keep:" +level=info msg=" - keep1" +level=info msg=" - keep2" +level=info msg=" strip:" +level=info msg=" - strip1" +level=info msg=" - strip2" level=info msg=" color:" level=info msg=" custom:" level=info msg=" region:" @@ -328,8 +362,12 @@ level=info msg=" level: info" level=info msg=" format: text" level=info msg=" timestamp: false" level=info msg="receivers:" -level=info msg=" keep: []" -level=info msg=" strip: []" +level=info msg=" keep:" +level=info msg=" - keep1" +level=info msg=" - keep2" +level=info msg=" strip:" +level=info msg=" - strip1" +level=info msg=" - strip2" level=info msg="sentry:" level=info msg=" private: abcdef1234567890" level=info msg=" public: 1234567890abcdef" diff --git a/cmd/karma/testdata/simple_config.txt b/cmd/karma/testdata/simple_config.txt index 9f05889c0..61ff96330 100644 --- a/cmd/karma/testdata/simple_config.txt +++ b/cmd/karma/testdata/simple_config.txt @@ -1,5 +1,4 @@ # Works in simple mode when single --alertmanager.uri flag is passed karma.bin-should-work --log.format=text --log.config=false --alertmanager.uri=http://localhost ! stdout . -stderr 'msg="Using simple config with a single Alertmanager server"' stderr 'msg="\[default\] Configured Alertmanager source at http://localhost \(proxied: false\, readonly: false\)"' diff --git a/internal/config/config.go b/internal/config/config.go index d534bfbe1..ed6ab5fa1 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -284,7 +284,6 @@ func (config *configSchema) Read() string { // accept single Alertmanager server from flag/env if nothing is set yet if len(config.Alertmanager.Servers) == 0 && v.GetString("alertmanager.uri") != "" { - log.Info("Using simple config with a single Alertmanager server") config.Alertmanager.Servers = []AlertmanagerConfig{ { Name: v.GetString("alertmanager.name"), From 09c0f7d5ab2aed1b485a3ff724bd2e2b93ad4f8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Mierzwa?= Date: Fri, 31 Jan 2020 16:59:20 +0000 Subject: [PATCH 2/2] fix(tests): run go test in silent mode --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 36ff04c9b..c7c3a4908 100644 --- a/Makefile +++ b/Makefile @@ -167,7 +167,7 @@ benchmark-go: .PHONY: test-go test-go: - GO111MODULE=on go test -v \ + GO111MODULE=on go test \ -cover -coverprofile=coverage.txt -covermode=atomic \ ./...