mirror of
https://github.com/prymitive/karma
synced 2026-05-07 03:26:52 +00:00
Merge pull request #1392 from prymitive/test-env
fix(tests): more complete config tests
This commit is contained in:
2
Makefile
2
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 \
|
||||
./...
|
||||
|
||||
|
||||
180
cmd/karma/testdata/log_full_config_env.txt
vendored
Normal file
180
cmd/karma/testdata/log_full_config_env.txt
vendored
Normal file
@@ -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"
|
||||
@@ -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"
|
||||
1
cmd/karma/testdata/simple_config.txt
vendored
1
cmd/karma/testdata/simple_config.txt
vendored
@@ -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\)"'
|
||||
|
||||
@@ -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"),
|
||||
|
||||
Reference in New Issue
Block a user