summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2019-07-08 20:14:49 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2019-07-08 20:14:49 +0000
commit4bf37db76e7dda93e57a9730958c6d467a85c622 (patch)
treee9cdf1b63c1e77c6689994f297dd015b343e4920 /tests
parentReleasing debian version 1.15.0-1. (diff)
downloadnetdata-4bf37db76e7dda93e57a9730958c6d467a85c622.tar.xz
netdata-4bf37db76e7dda93e57a9730958c6d467a85c622.zip
Merging upstream version 1.16.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--tests/backends/prometheus-avg-oldunits.txt58
-rw-r--r--tests/backends/prometheus-avg.txt58
-rw-r--r--tests/backends/prometheus-raw.txt66
-rwxr-xr-xtests/backends/prometheus.bats2
-rw-r--r--tests/health_mgmtapi/README.md5
-rw-r--r--tests/health_mgmtapi/expected_list/ALARM_CPU_IOWAIT-list.json1
-rw-r--r--tests/health_mgmtapi/expected_list/ALARM_CPU_USAGE-list.json1
-rw-r--r--tests/health_mgmtapi/expected_list/CONTEXT_SYSTEM_CPU-list.json1
-rw-r--r--tests/health_mgmtapi/expected_list/DISABLE-list.json1
-rw-r--r--tests/health_mgmtapi/expected_list/DISABLE_ALL-list.json1
-rw-r--r--tests/health_mgmtapi/expected_list/DISABLE_ALL_ERROR-list.json1
-rw-r--r--tests/health_mgmtapi/expected_list/DISABLE_SYSTEM_LOAD-list.json1
-rw-r--r--tests/health_mgmtapi/expected_list/FAMILIES_LOAD-list.json1
-rw-r--r--tests/health_mgmtapi/expected_list/HOSTS-list.json1
-rw-r--r--tests/health_mgmtapi/expected_list/RESET-list.json1
-rw-r--r--tests/health_mgmtapi/expected_list/SILENCE-list.json1
-rw-r--r--tests/health_mgmtapi/expected_list/SILENCE_2-list.json1
-rw-r--r--tests/health_mgmtapi/expected_list/SILENCE_3-list.json1
-rw-r--r--tests/health_mgmtapi/expected_list/SILENCE_ALARM_CPU_USAGE-list.json1
-rw-r--r--tests/health_mgmtapi/expected_list/SILENCE_ALARM_CPU_USAGE_LOAD_TRIGGER-list.json1
-rw-r--r--tests/health_mgmtapi/expected_list/SILENCE_ALL-list.json1
-rwxr-xr-xtests/health_mgmtapi/health-cmdapi-test.sh.in176
-rw-r--r--tests/health_mgmtapi/python-example.conf16
-rwxr-xr-xtests/installer/slack.sh7
-rwxr-xr-xtests/updater_checks.bats1
-rwxr-xr-xtests/updater_checks.sh70
26 files changed, 340 insertions, 135 deletions
diff --git a/tests/backends/prometheus-avg-oldunits.txt b/tests/backends/prometheus-avg-oldunits.txt
index b89c924d..53ee8ffa 100644
--- a/tests/backends/prometheus-avg-oldunits.txt
+++ b/tests/backends/prometheus-avg-oldunits.txt
@@ -1,3 +1,20 @@
+nd_apps_cpu_percent_average
+nd_apps_cpu_system_percent_average
+nd_apps_cpu_user_percent_average
+nd_apps_files_open_files_average
+nd_apps_lreads_kilobytes_persec_average
+nd_apps_lwrites_kilobytes_persec_average
+nd_apps_major_faults_page_faults_persec_average
+nd_apps_mem_MB_average
+nd_apps_minor_faults_page_faults_persec_average
+nd_apps_pipes_open_pipes_average
+nd_apps_preads_kilobytes_persec_average
+nd_apps_processes_processes_average
+nd_apps_pwrites_kilobytes_persec_average
+nd_apps_sockets_open_sockets_average
+nd_apps_swap_MB_average
+nd_apps_threads_threads_average
+nd_apps_vmem_MB_average
nd_cpu_core_throttling_events_persec_average
nd_cpu_cpu_percent_average
nd_cpu_interrupts_interrupts_persec_average
@@ -20,6 +37,7 @@ nd_ip_ecnpkts_packets_persec_average
nd_ip_inerrors_packets_persec_average
nd_ip_mcast_kilobits_persec_average
nd_ip_mcastpkts_packets_persec_average
+nd_ip_tcp_accept_queue_packets_persec_average
nd_ip_tcpconnaborts_connections_persec_average
nd_ip_tcpofo_packets_persec_average
nd_ip_tcpreorders_packets_persec_average
@@ -42,7 +60,6 @@ nd_ipv4_udperrors_events_persec_average
nd_ipv4_udppackets_packets_persec_average
nd_ipv6_ect_packets_persec_average
nd_ipv6_errors_packets_persec_average
-nd_ipv6_icmpechos_messages_persec_average
nd_ipv6_icmperrors_errors_persec_average
nd_ipv6_icmp_messages_persec_average
nd_ipv6_icmpmldv2_reports_persec_average
@@ -64,9 +81,46 @@ nd_mem_pgfaults_page_faults_persec_average
nd_mem_slab_MB_average
nd_mem_transparent_hugepages_MB_average
nd_mem_writeback_MB_average
+nd_netdata_apps_children_fix_percent_average
+nd_netdata_apps_cpu_milliseconds_persec_average
+nd_netdata_apps_fix_percent_average
+nd_netdata_apps_sizes_files_persec_average
+nd_netdata_clients_connected_clients_average
+nd_netdata_compression_ratio_percent_average
+nd_netdata_go_plugin_execution_time_ms_average
+nd_netdata_net_kilobits_persec_average
+nd_netdata_plugin_cgroups_cpu_milliseconds_persec_average
+nd_netdata_plugin_diskspace_dt_milliseconds_run_average
+nd_netdata_plugin_diskspace_milliseconds_persec_average
+nd_netdata_plugin_proc_cpu_milliseconds_persec_average
+nd_netdata_plugin_proc_modules_milliseconds_run_average
+nd_netdata_plugin_tc_cpu_milliseconds_persec_average
+nd_netdata_plugin_tc_time_milliseconds_run_average
+nd_netdata_private_charts_charts_average
+nd_netdata_pythond_runtime_ms_average
+nd_netdata_requests_requests_persec_average
+nd_netdata_response_time_milliseconds_request_average
+nd_netdata_server_cpu_milliseconds_persec_average
+nd_netdata_statsd_bytes_kilobits_persec_average
+nd_netdata_statsd_cpu_milliseconds_persec_average
+nd_netdata_statsd_events_events_persec_average
+nd_netdata_statsd_metrics_metrics_average
+nd_netdata_statsd_packets_packets_persec_average
+nd_netdata_statsd_reads_reads_persec_average
+nd_netdata_statsd_useful_metrics_metrics_average
+nd_netdata_tcp_connected_sockets_average
+nd_netdata_tcp_connects_events_average
+nd_netdata_web_cpu_milliseconds_persec_average
nd_net_drops_drops_persec_average
nd_net_net_kilobits_persec_average
nd_net_packets_packets_persec_average
+nd_services_cpu_percent_average
+nd_services_mem_usage_MB_average
+nd_services_swap_usage_MB_average
+nd_services_throttle_io_ops_read_operations_persec_average
+nd_services_throttle_io_ops_write_operations_persec_average
+nd_services_throttle_io_read_kilobytes_persec_average
+nd_services_throttle_io_write_kilobytes_persec_average
nd_system_active_processes_processes_average
nd_system_cpu_percent_average
nd_system_ctxt_context_switches_persec_average
@@ -85,6 +139,8 @@ nd_system_net_kilobits_persec_average
nd_system_pgpgio_kilobytes_persec_average
nd_system_processes_processes_average
nd_system_ram_MB_average
+nd_system_shared_memory_bytes_bytes_average
+nd_system_shared_memory_segments_segments_average
nd_system_softirqs_softirqs_persec_average
nd_system_softnet_stat_events_persec_average
nd_system_swapio_kilobytes_persec_average
diff --git a/tests/backends/prometheus-avg.txt b/tests/backends/prometheus-avg.txt
index eaed4fb7..1aedff2b 100644
--- a/tests/backends/prometheus-avg.txt
+++ b/tests/backends/prometheus-avg.txt
@@ -1,3 +1,20 @@
+nd_apps_cpu_percentage_average
+nd_apps_cpu_system_percentage_average
+nd_apps_cpu_user_percentage_average
+nd_apps_files_open_files_average
+nd_apps_lreads_KiB_persec_average
+nd_apps_lwrites_KiB_persec_average
+nd_apps_major_faults_page_faults_persec_average
+nd_apps_mem_MiB_average
+nd_apps_minor_faults_page_faults_persec_average
+nd_apps_pipes_open_pipes_average
+nd_apps_preads_KiB_persec_average
+nd_apps_processes_processes_average
+nd_apps_pwrites_KiB_persec_average
+nd_apps_sockets_open_sockets_average
+nd_apps_swap_MiB_average
+nd_apps_threads_threads_average
+nd_apps_vmem_MiB_average
nd_cpu_core_throttling_events_persec_average
nd_cpu_cpu_percentage_average
nd_cpu_interrupts_interrupts_persec_average
@@ -20,6 +37,7 @@ nd_ip_ecnpkts_packets_persec_average
nd_ip_inerrors_packets_persec_average
nd_ip_mcast_kilobits_persec_average
nd_ip_mcastpkts_packets_persec_average
+nd_ip_tcp_accept_queue_packets_persec_average
nd_ip_tcpconnaborts_connections_persec_average
nd_ip_tcpofo_packets_persec_average
nd_ip_tcpreorders_packets_persec_average
@@ -42,7 +60,6 @@ nd_ipv4_udperrors_events_persec_average
nd_ipv4_udppackets_packets_persec_average
nd_ipv6_ect_packets_persec_average
nd_ipv6_errors_packets_persec_average
-nd_ipv6_icmpechos_messages_persec_average
nd_ipv6_icmperrors_errors_persec_average
nd_ipv6_icmp_messages_persec_average
nd_ipv6_icmpmldv2_reports_persec_average
@@ -64,9 +81,46 @@ nd_mem_pgfaults_faults_persec_average
nd_mem_slab_MiB_average
nd_mem_transparent_hugepages_MiB_average
nd_mem_writeback_MiB_average
+nd_netdata_apps_children_fix_percentage_average
+nd_netdata_apps_cpu_milliseconds_persec_average
+nd_netdata_apps_fix_percentage_average
+nd_netdata_apps_sizes_files_persec_average
+nd_netdata_clients_connected_clients_average
+nd_netdata_compression_ratio_percentage_average
+nd_netdata_go_plugin_execution_time_ms_average
+nd_netdata_net_kilobits_persec_average
+nd_netdata_plugin_cgroups_cpu_milliseconds_persec_average
+nd_netdata_plugin_diskspace_dt_milliseconds_run_average
+nd_netdata_plugin_diskspace_milliseconds_persec_average
+nd_netdata_plugin_proc_cpu_milliseconds_persec_average
+nd_netdata_plugin_proc_modules_milliseconds_run_average
+nd_netdata_plugin_tc_cpu_milliseconds_persec_average
+nd_netdata_plugin_tc_time_milliseconds_run_average
+nd_netdata_private_charts_charts_average
+nd_netdata_pythond_runtime_ms_average
+nd_netdata_requests_requests_persec_average
+nd_netdata_response_time_milliseconds_request_average
+nd_netdata_server_cpu_milliseconds_persec_average
+nd_netdata_statsd_bytes_kilobits_persec_average
+nd_netdata_statsd_cpu_milliseconds_persec_average
+nd_netdata_statsd_events_events_persec_average
+nd_netdata_statsd_metrics_metrics_average
+nd_netdata_statsd_packets_packets_persec_average
+nd_netdata_statsd_reads_reads_persec_average
+nd_netdata_statsd_useful_metrics_metrics_average
+nd_netdata_tcp_connected_sockets_average
+nd_netdata_tcp_connects_events_average
+nd_netdata_web_cpu_milliseconds_persec_average
nd_net_drops_drops_persec_average
nd_net_net_kilobits_persec_average
nd_net_packets_packets_persec_average
+nd_services_cpu_percentage_average
+nd_services_mem_usage_MiB_average
+nd_services_swap_usage_MiB_average
+nd_services_throttle_io_ops_read_operations_persec_average
+nd_services_throttle_io_ops_write_operations_persec_average
+nd_services_throttle_io_read_KiB_persec_average
+nd_services_throttle_io_write_KiB_persec_average
nd_system_active_processes_processes_average
nd_system_cpu_percentage_average
nd_system_ctxt_context_switches_persec_average
@@ -85,6 +139,8 @@ nd_system_net_kilobits_persec_average
nd_system_pgpgio_KiB_persec_average
nd_system_processes_processes_average
nd_system_ram_MiB_average
+nd_system_shared_memory_bytes_bytes_average
+nd_system_shared_memory_segments_segments_average
nd_system_softirqs_softirqs_persec_average
nd_system_softnet_stat_events_persec_average
nd_system_swapio_KiB_persec_average
diff --git a/tests/backends/prometheus-raw.txt b/tests/backends/prometheus-raw.txt
index 7caffc87..2ac4c2c7 100644
--- a/tests/backends/prometheus-raw.txt
+++ b/tests/backends/prometheus-raw.txt
@@ -1,3 +1,20 @@
+nd_apps_cpu
+nd_apps_cpu_system
+nd_apps_cpu_user
+nd_apps_files
+nd_apps_lreads
+nd_apps_lwrites
+nd_apps_major_faults
+nd_apps_mem
+nd_apps_minor_faults
+nd_apps_pipes
+nd_apps_preads
+nd_apps_processes
+nd_apps_pwrites
+nd_apps_sockets
+nd_apps_swap
+nd_apps_threads
+nd_apps_vmem
nd_cpu_core_throttling_total
nd_cpu_cpu_total
nd_cpu_interrupts_total
@@ -20,6 +37,7 @@ nd_ip_ecnpkts_total
nd_ip_inerrors_total
nd_ip_mcastpkts_total
nd_ip_mcast_total
+nd_ip_tcp_accept_queue_total
nd_ip_tcpconnaborts_total
nd_ip_tcpofo_total
nd_ip_tcpreorders_total
@@ -42,7 +60,6 @@ nd_ipv4_udperrors_total
nd_ipv4_udppackets_total
nd_ipv6_ect_total
nd_ipv6_errors_total
-nd_ipv6_icmpechos_total
nd_ipv6_icmperrors_total
nd_ipv6_icmpmldv2_total
nd_ipv6_icmpneighbor_total
@@ -64,9 +81,54 @@ nd_mem_pgfaults_total
nd_mem_slab
nd_mem_transparent_hugepages
nd_mem_writeback
+nd_netdata_apps_children_fix
+nd_netdata_apps_cpu_total
+nd_netdata_apps_fix
+nd_netdata_apps_sizes_calls_total
+nd_netdata_apps_sizes_fds
+nd_netdata_apps_sizes_filenames_total
+nd_netdata_apps_sizes_files_total
+nd_netdata_apps_sizes_inode_changes_total
+nd_netdata_apps_sizes_link_changes_total
+nd_netdata_apps_sizes_new_pids_total
+nd_netdata_apps_sizes_pids
+nd_netdata_apps_sizes_targets
+nd_netdata_clients
+nd_netdata_compression_ratio
+nd_netdata_go_plugin_execution_time
+nd_netdata_net_total
+nd_netdata_plugin_cgroups_cpu_total
+nd_netdata_plugin_diskspace_dt
+nd_netdata_plugin_diskspace_total
+nd_netdata_plugin_proc_cpu_total
+nd_netdata_plugin_proc_modules
+nd_netdata_plugin_tc_cpu_total
+nd_netdata_plugin_tc_time
+nd_netdata_private_charts
+nd_netdata_pythond_runtime
+nd_netdata_requests_total
+nd_netdata_response_time
+nd_netdata_server_cpu_total
+nd_netdata_statsd_bytes_total
+nd_netdata_statsd_cpu_total
+nd_netdata_statsd_events_total
+nd_netdata_statsd_metrics
+nd_netdata_statsd_packets_total
+nd_netdata_statsd_reads_total
+nd_netdata_statsd_useful_metrics
+nd_netdata_tcp_connected
+nd_netdata_tcp_connects_total
+nd_netdata_web_cpu_total
nd_net_drops_total
nd_net_net_total
nd_net_packets_total
+nd_services_cpu_total
+nd_services_mem_usage
+nd_services_swap_usage
+nd_services_throttle_io_ops_read_total
+nd_services_throttle_io_ops_write_total
+nd_services_throttle_io_read_total
+nd_services_throttle_io_write_total
nd_system_active_processes
nd_system_cpu_total
nd_system_ctxt_total
@@ -85,6 +147,8 @@ nd_system_net_total
nd_system_pgpgio_total
nd_system_processes
nd_system_ram
+nd_system_shared_memory_bytes
+nd_system_shared_memory_segments
nd_system_softirqs_total
nd_system_softnet_stat_total
nd_system_swap
diff --git a/tests/backends/prometheus.bats b/tests/backends/prometheus.bats
index d6ffa8d7..d52f39d5 100755
--- a/tests/backends/prometheus.bats
+++ b/tests/backends/prometheus.bats
@@ -5,7 +5,7 @@ validate_metrics() {
params="${2}"
curl -sS "http://localhost:19999/api/v1/allmetrics?format=prometheus&prefix=nd&timestamps=no${params}" |
- grep -E 'nd_system_|nd_cpu_|nd_system_|nd_net_|nd_disk_|nd_ip_|nd_ipv4_|nd_ipv6_|nd_mem_' |
+ grep -E 'nd_system_|nd_cpu_|nd_system_|nd_net_|nd_disk_|nd_ip_|nd_ipv4_|nd_ipv6_|nd_mem_|nd_netdata_|nd_apps_|nd_services_' |
sed -ne 's/{.*//p' | sort | uniq > tests/backends/new-${fname}
diff tests/backends/${fname} tests/backends/new-${fname}
rm tests/backends/new-${fname}
diff --git a/tests/health_mgmtapi/README.md b/tests/health_mgmtapi/README.md
index 278c72dc..8473b35e 100644
--- a/tests/health_mgmtapi/README.md
+++ b/tests/health_mgmtapi/README.md
@@ -4,9 +4,8 @@ The directory `tests/health_cmdapi` contains the test script `health-cmdapi-test
The script can be executed with options to prepare the system for the tests, run them and restore the system to its previous state.
-It depends on the management API being accessible and on the responses to the api/v1/alarms?all requests being functional.
-
-Run it with `tests/health_mgmtapi/health-cmdapi-test.sh -h` to see the options.
+It depends on the management API being accessible on localhost:19999 and on the responses to the api/v1/alarms?all requests being functional.
+It also requires read access to the management API key that is usually under `/var/lib/netdata/netdata.api.key` (`@varlibdir_POST@/netdata.api.key`).
[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Ftests%2Fhealth_mgmtapi%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
diff --git a/tests/health_mgmtapi/expected_list/ALARM_CPU_IOWAIT-list.json b/tests/health_mgmtapi/expected_list/ALARM_CPU_IOWAIT-list.json
new file mode 100644
index 00000000..9f05efe7
--- /dev/null
+++ b/tests/health_mgmtapi/expected_list/ALARM_CPU_IOWAIT-list.json
@@ -0,0 +1 @@
+{ "all": false, "type": "SILENCE", "silencers": [ { "alarm": "*10min_cpu_iowait" }, { "alarm": "*10min_cpu_usage *load_trigger" } ] }
diff --git a/tests/health_mgmtapi/expected_list/ALARM_CPU_USAGE-list.json b/tests/health_mgmtapi/expected_list/ALARM_CPU_USAGE-list.json
new file mode 100644
index 00000000..dbf87992
--- /dev/null
+++ b/tests/health_mgmtapi/expected_list/ALARM_CPU_USAGE-list.json
@@ -0,0 +1 @@
+{ "all": false, "type": "SILENCE", "silencers": [ { "alarm": "*10min_cpu_usage *load_trigger", "context": "system.cpu" }, { "alarm": "*10min_cpu_usage *load_trigger", "chart": "system.load" } ] }
diff --git a/tests/health_mgmtapi/expected_list/CONTEXT_SYSTEM_CPU-list.json b/tests/health_mgmtapi/expected_list/CONTEXT_SYSTEM_CPU-list.json
new file mode 100644
index 00000000..a267cfd6
--- /dev/null
+++ b/tests/health_mgmtapi/expected_list/CONTEXT_SYSTEM_CPU-list.json
@@ -0,0 +1 @@
+{ "all": false, "type": "DISABLE", "silencers": [ { "context": "system.cpu" }, { "chart": "system.load" } ] }
diff --git a/tests/health_mgmtapi/expected_list/DISABLE-list.json b/tests/health_mgmtapi/expected_list/DISABLE-list.json
new file mode 100644
index 00000000..c2c77810
--- /dev/null
+++ b/tests/health_mgmtapi/expected_list/DISABLE-list.json
@@ -0,0 +1 @@
+{ "all": false, "type": "DISABLE", "silencers": [ { "alarm": "*10min_cpu_usage *load_trigger" } ] }
diff --git a/tests/health_mgmtapi/expected_list/DISABLE_ALL-list.json b/tests/health_mgmtapi/expected_list/DISABLE_ALL-list.json
new file mode 100644
index 00000000..bbc3f4f0
--- /dev/null
+++ b/tests/health_mgmtapi/expected_list/DISABLE_ALL-list.json
@@ -0,0 +1 @@
+{ "all": true, "type": "DISABLE", "silencers": [] }
diff --git a/tests/health_mgmtapi/expected_list/DISABLE_ALL_ERROR-list.json b/tests/health_mgmtapi/expected_list/DISABLE_ALL_ERROR-list.json
new file mode 100644
index 00000000..e8aee179
--- /dev/null
+++ b/tests/health_mgmtapi/expected_list/DISABLE_ALL_ERROR-list.json
@@ -0,0 +1 @@
+Auth Error
diff --git a/tests/health_mgmtapi/expected_list/DISABLE_SYSTEM_LOAD-list.json b/tests/health_mgmtapi/expected_list/DISABLE_SYSTEM_LOAD-list.json
new file mode 100644
index 00000000..a7fc1cb8
--- /dev/null
+++ b/tests/health_mgmtapi/expected_list/DISABLE_SYSTEM_LOAD-list.json
@@ -0,0 +1 @@
+{ "all": false, "type": "DISABLE", "silencers": [ { "chart": "system.load" } ] }
diff --git a/tests/health_mgmtapi/expected_list/FAMILIES_LOAD-list.json b/tests/health_mgmtapi/expected_list/FAMILIES_LOAD-list.json
new file mode 100644
index 00000000..50119f79
--- /dev/null
+++ b/tests/health_mgmtapi/expected_list/FAMILIES_LOAD-list.json
@@ -0,0 +1 @@
+{ "all": false, "type": "None", "silencers": [ { "families": "load" } ] }
diff --git a/tests/health_mgmtapi/expected_list/HOSTS-list.json b/tests/health_mgmtapi/expected_list/HOSTS-list.json
new file mode 100644
index 00000000..9db21b6c
--- /dev/null
+++ b/tests/health_mgmtapi/expected_list/HOSTS-list.json
@@ -0,0 +1 @@
+{ "all": false, "type": "SILENCE", "silencers": [ { "hosts": "*" } ] }
diff --git a/tests/health_mgmtapi/expected_list/RESET-list.json b/tests/health_mgmtapi/expected_list/RESET-list.json
new file mode 100644
index 00000000..2d3f09d6
--- /dev/null
+++ b/tests/health_mgmtapi/expected_list/RESET-list.json
@@ -0,0 +1 @@
+{ "all": false, "type": "None", "silencers": [] }
diff --git a/tests/health_mgmtapi/expected_list/SILENCE-list.json b/tests/health_mgmtapi/expected_list/SILENCE-list.json
new file mode 100644
index 00000000..d157f2d3
--- /dev/null
+++ b/tests/health_mgmtapi/expected_list/SILENCE-list.json
@@ -0,0 +1 @@
+{ "all": false, "type": "SILENCE", "silencers": [ { "alarm": "*10min_cpu_usage *load_trigger" } ] }
diff --git a/tests/health_mgmtapi/expected_list/SILENCE_2-list.json b/tests/health_mgmtapi/expected_list/SILENCE_2-list.json
new file mode 100644
index 00000000..d5e6fa2d
--- /dev/null
+++ b/tests/health_mgmtapi/expected_list/SILENCE_2-list.json
@@ -0,0 +1 @@
+{ "all": false, "type": "SILENCE", "silencers": [ { "families": "load" } ] }
diff --git a/tests/health_mgmtapi/expected_list/SILENCE_3-list.json b/tests/health_mgmtapi/expected_list/SILENCE_3-list.json
new file mode 100644
index 00000000..69e98cc1
--- /dev/null
+++ b/tests/health_mgmtapi/expected_list/SILENCE_3-list.json
@@ -0,0 +1 @@
+{ "all": false, "type": "SILENCE", "silencers": [] } WARNING: SILENCE or DISABLE command is ineffective without defining any alarm selectors.
diff --git a/tests/health_mgmtapi/expected_list/SILENCE_ALARM_CPU_USAGE-list.json b/tests/health_mgmtapi/expected_list/SILENCE_ALARM_CPU_USAGE-list.json
new file mode 100644
index 00000000..dd789cd3
--- /dev/null
+++ b/tests/health_mgmtapi/expected_list/SILENCE_ALARM_CPU_USAGE-list.json
@@ -0,0 +1 @@
+{ "all": false, "type": "SILENCE", "silencers": [ { "alarm": "*10min_cpu_usage *load_trigger", "chart": "system.load" } ] }
diff --git a/tests/health_mgmtapi/expected_list/SILENCE_ALARM_CPU_USAGE_LOAD_TRIGGER-list.json b/tests/health_mgmtapi/expected_list/SILENCE_ALARM_CPU_USAGE_LOAD_TRIGGER-list.json
new file mode 100644
index 00000000..d157f2d3
--- /dev/null
+++ b/tests/health_mgmtapi/expected_list/SILENCE_ALARM_CPU_USAGE_LOAD_TRIGGER-list.json
@@ -0,0 +1 @@
+{ "all": false, "type": "SILENCE", "silencers": [ { "alarm": "*10min_cpu_usage *load_trigger" } ] }
diff --git a/tests/health_mgmtapi/expected_list/SILENCE_ALL-list.json b/tests/health_mgmtapi/expected_list/SILENCE_ALL-list.json
new file mode 100644
index 00000000..c88ef9fd
--- /dev/null
+++ b/tests/health_mgmtapi/expected_list/SILENCE_ALL-list.json
@@ -0,0 +1 @@
+{ "all": true, "type": "SILENCE", "silencers": [] }
diff --git a/tests/health_mgmtapi/health-cmdapi-test.sh.in b/tests/health_mgmtapi/health-cmdapi-test.sh.in
index 1bbe269d..5abf2b17 100755
--- a/tests/health_mgmtapi/health-cmdapi-test.sh.in
+++ b/tests/health_mgmtapi/health-cmdapi-test.sh.in
@@ -1,56 +1,72 @@
#!/usr/bin/env bash
# shellcheck disable=SC1117,SC2034,SC2059,SC2086,SC2181
-NETDATA_USER_CONFIG_DIR="@configdir_POST@"
-NETDATA_STOCK_CONFIG_DIR="@libconfigdir_POST@"
NETDATA_VARLIB_DIR="@varlibdir_POST@"
-printhelp () {
- echo "Usage: health-cmdapi-test.sh [OPTIONS]
- -s SETUP config files for python example tests
- -c CLEANUP config files from python example tests
- -r RESTART netdata after SETUP and CLEANUP, using systemctl restart netdata.
- -t TEST scenarios execution
- -u <URL> changes the host:port from localhost:19999 to <URL>
- "
-}
-
check () {
- echo -e "${GRAY}Check: '${1}' in 2 sec"
- sleep 2
- resp=$(curl -s "http://$URL/api/v1/alarms?all")
+ sec=1
+ echo -e " ${GRAY}Check: '${1}' in $sec sec"
+ sleep $sec
+ number=$RANDOM
+ resp=$(curl -s "http://$URL/api/v1/alarms?all&$number")
r=$(echo "${resp}" | \
python3 -c "import sys, json; d=json.load(sys.stdin); \
print(\
- d['alarms']['example.random.example_alarm1']['disabled'], \
- d['alarms']['example.random.example_alarm1']['silenced'] , \
- d['alarms']['example.random.example_alarm2']['disabled'], \
- d['alarms']['example.random.example_alarm2']['silenced'], \
+ d['alarms']['system.cpu.10min_cpu_usage']['disabled'], \
+ d['alarms']['system.cpu.10min_cpu_usage']['silenced'] , \
+ d['alarms']['system.cpu.10min_cpu_iowait']['disabled'], \
+ d['alarms']['system.cpu.10min_cpu_iowait']['silenced'], \
d['alarms']['system.load.load_trigger']['disabled'], \
d['alarms']['system.load.load_trigger']['silenced'], \
);" 2>&1)
if [ $? -ne 0 ] ; then
- echo -e "${RED}ERROR: Unexpected response '$resp'"
+ echo -e " ${RED}ERROR: Unexpected response stored in /tmp/resp-$number.json"
+ echo "$resp" > /tmp/resp-$number.json
err=$((err+1))
+ iter=0
elif [ "${r}" != "${2}" ] ; then
- echo -e "${RED}ERROR: 'Got ${r}'. Expected '${2}'"
- err=$((err+1))
+ echo -e " ${GRAY}WARNING: 'Got ${r}'. Expected '${2}'"
+ iter=$((iter+1))
+ if [ $iter -lt 10 ] ; then
+ echo -e " ${GRAY}Repeating test "
+ check "$1" "$2"
+ else
+ echo -e " ${RED}ERROR: 'Got ${r}'. Expected '${2}'"
+ iter=0
+ err=$((err+1))
+ fi
else
- echo -e "${GREEN}Success"
+ echo -e " ${GREEN}Success"
+ iter=0
fi
}
cmd () {
- echo -e "${WHITE}Cmd '${1}', expecting '${2}'"
+ echo -e "${WHITE}Cmd '${1}'"
+ echo -en " ${GRAY}Expecting '${2}' : "
RESPONSE=$(curl -s "http://$URL/api/v1/manage/health?${1}" -H "X-Auth-Token: $TOKEN" 2>&1)
if [ "${RESPONSE}" != "${2}" ] ; then
- echo -e "${RED}ERROR: Response '${RESPONSE}' != '${2}'"
+ echo -e "${RED}ERROR: Response '${RESPONSE}'"
err=$((err+1))
else
echo -e "${GREEN}Success"
fi
}
+check_list() {
+ RESPONSE=$(curl -s "http://$URL/api/v1/manage/health?cmd=LIST" -H "X-Auth-Token: $TOKEN" 2>&1)
+
+ NAME="$1-list.json"
+ echo $RESPONSE > $NAME
+ diff $NAME expected_list/$NAME 1>/dev/null 2>&1
+ if [ $? -eq 0 ]; then
+ echo -e "${GREEN}Success: The list command got the correct answer for $NAME!"
+ else
+ echo -e "${RED}ERROR: the files $NAME and expected_list/$NAME does not match."
+ exit 1
+ fi
+}
+
WHITE='\033[0;37m'
RED='\033[0;31m'
GREEN='\033[0;32m'
@@ -62,63 +78,8 @@ CLEANUP=0
TEST=0
URL="localhost:19999"
-while getopts :srctu: option
-do
- case "$option" in
- s)
- SETUP=1
- ;;
- r)
- RESTART=1
- ;;
- c)
- CLEANUP=1
- ;;
- t)
- TEST=1
- ;;
- u)
- URL=$OPTARG
- ;;
- *)
- printhelp
- exit 1
- ;;
- esac
-done
-
-if [ $SETUP -eq 1 ] ; then
- echo "Preparing netdata configuration for testing"
- # Prep netdata for tests
- if [ -f "${NETDATA_USER_CONFIG_DIR}/python.d.conf" ] ; then
- cp -f "${NETDATA_USER_CONFIG_DIR}/python.d.conf" /tmp/python.d.conf
- else
- cp "${NETDATA_STOCK_CONFIG_DIR}/python.d.conf" "${NETDATA_USER_CONFIG_DIR}/"
- fi
- sed -i -e "s/example: no/example: yes/g" "${NETDATA_USER_CONFIG_DIR}/python.d.conf"
-
- mypath=$(cd ${0%/*} && echo $PWD)
-
- cp -f "${mypath}/python-example.conf" "${NETDATA_USER_CONFIG_DIR}/health.d/"
-
- # netdata.conf
- if [ -f "${NETDATA_USER_CONFIG_DIR}/netdata.conf" ] ; then
- cp -f "${NETDATA_USER_CONFIG_DIR}/netdata.conf" /tmp/netdata.conf
- fi
- printf "[health]\nrun at least every seconds = 1\n" > "${NETDATA_USER_CONFIG_DIR}/netdata.conf"
-
- chmod +r "${NETDATA_USER_CONFIG_DIR}/python.d.conf" "${NETDATA_USER_CONFIG_DIR}/netdata.conf" "${NETDATA_USER_CONFIG_DIR}/health.d/python-example.conf" "${NETDATA_STOCK_CONFIG_DIR}/health.d/load.conf"
- # Restart netdata
- if [ $RESTART -eq 1 ] ; then
- echo "Restarting netdata"
- systemctl restart netdata
- fi
-fi
-
err=0
-# Execute tests
-if [ $TEST -eq 1 ] ; then
HEALTH_CMDAPI_MSG_AUTHERROR="Auth Error"
HEALTH_CMDAPI_MSG_SILENCEALL="All alarm notifications are silenced"
@@ -143,11 +104,13 @@ if [ $TEST -eq 1 ] ; then
# Test default state
cmd "cmd=RESET" "$HEALTH_CMDAPI_MSG_RESET"
check "Default State" "False False False False False False"
+ check_list "RESET"
# Test auth failure
TOKEN="Wrong token"
cmd "cmd=DISABLE ALL" "$HEALTH_CMDAPI_MSG_AUTHERROR"
check "Default State" "False False False False False False"
+ check_list "DISABLE_ALL_ERROR"
# Set correct token
TOKEN="${CORRECT_TOKEN}"
@@ -155,108 +118,107 @@ if [ $TEST -eq 1 ] ; then
# Test disable
cmd "cmd=DISABLE ALL" "$HEALTH_CMDAPI_MSG_DISABLEALL"
check "All disabled" "True False True False True False"
+ check_list "DISABLE_ALL"
# Reset
cmd "cmd=RESET" "$HEALTH_CMDAPI_MSG_RESET"
check "Default State" "False False False False False False"
+ check_list "RESET"
# Test silence
cmd "cmd=SILENCE ALL" "$HEALTH_CMDAPI_MSG_SILENCEALL"
check "All silenced" "False True False True False True"
+ check_list "SILENCE_ALL"
# Reset
cmd "cmd=RESET" "$HEALTH_CMDAPI_MSG_RESET"
check "Default State" "False False False False False False"
+ check_list "RESET"
# Add silencer by name
printf -v resp "$HEALTH_CMDAPI_MSG_SILENCE\n$HEALTH_CMDAPI_MSG_ADDED"
- cmd "cmd=SILENCE&alarm=*example_alarm1 *load_trigger" "${resp}"
+ cmd "cmd=SILENCE&alarm=*10min_cpu_usage *load_trigger" "${resp}"
check "Silence notifications for alarm1 and load_trigger" "False True False False False True"
+ check_list "SILENCE_ALARM_CPU_USAGE_LOAD_TRIGGER"
# Convert to disable health checks
cmd "cmd=DISABLE" "$HEALTH_CMDAPI_MSG_DISABLE"
check "Disable notifications for alarm1 and load_trigger" "True False False False True False"
+ check_list "DISABLE"
# Convert back to silence notifications
cmd "cmd=SILENCE" "$HEALTH_CMDAPI_MSG_SILENCE"
check "Silence notifications for alarm1 and load_trigger" "False True False False False True"
+ check_list "SILENCE"
# Add second silencer by name
- cmd "alarm=*example_alarm2" "$HEALTH_CMDAPI_MSG_ADDED"
+ cmd "alarm=*10min_cpu_iowait" "$HEALTH_CMDAPI_MSG_ADDED"
check "Silence notifications for alarm1,alarm2 and load_trigger" "False True False True False True"
+ check_list "ALARM_CPU_IOWAIT"
# Reset
cmd "cmd=RESET" "$HEALTH_CMDAPI_MSG_RESET"
+ check_list "RESET"
# Add silencer by chart
printf -v resp "$HEALTH_CMDAPI_MSG_DISABLE\n$HEALTH_CMDAPI_MSG_ADDED"
cmd "cmd=DISABLE&chart=system.load" "${resp}"
check "Default State" "False False False False True False"
+ check_list "DISABLE_SYSTEM_LOAD"
# Add silencer by context
- cmd "context=random" "$HEALTH_CMDAPI_MSG_ADDED"
+ cmd "context=system.cpu" "$HEALTH_CMDAPI_MSG_ADDED"
check "Default State" "True False True False True False"
+ check_list "CONTEXT_SYSTEM_CPU"
# Reset
cmd "cmd=RESET" "$HEALTH_CMDAPI_MSG_RESET"
+ check_list "RESET"
# Add second condition to a selector (AND)
printf -v resp "$HEALTH_CMDAPI_MSG_SILENCE\n$HEALTH_CMDAPI_MSG_ADDED"
- cmd "cmd=SILENCE&alarm=*example_alarm1 *load_trigger&chart=system.load" "${resp}"
+ cmd "cmd=SILENCE&alarm=*10min_cpu_usage *load_trigger&chart=system.load" "${resp}"
check "Silence notifications load_trigger" "False False False False False True"
+ check_list "SILENCE_ALARM_CPU_USAGE"
# Add second selector with two conditions
- cmd "alarm=*example_alarm1 *load_trigger&context=random" "$HEALTH_CMDAPI_MSG_ADDED"
+ cmd "alarm=*10min_cpu_usage *load_trigger&context=system.cpu" "$HEALTH_CMDAPI_MSG_ADDED"
check "Silence notifications load_trigger" "False True False False False True"
+ check_list "ALARM_CPU_USAGE"
# Reset
cmd "cmd=RESET" "$HEALTH_CMDAPI_MSG_RESET"
+ check_list "RESET"
# Add silencer without a command to disable or silence alarms
printf -v resp "$HEALTH_CMDAPI_MSG_ADDED\n$HEALTH_CMDAPI_MSG_STYPEWARNING"
cmd "families=load" "${resp}"
check "Family selector with no command" "False False False False False False"
+ check_list "FAMILIES_LOAD"
# Add silence command
cmd "cmd=SILENCE" "$HEALTH_CMDAPI_MSG_SILENCE"
check "Silence family load" "False False False False False True"
+ check_list "SILENCE_2"
# Reset
cmd "cmd=RESET" "$HEALTH_CMDAPI_MSG_RESET"
+ check_list "RESET"
# Add command without silencers
printf -v resp "$HEALTH_CMDAPI_MSG_SILENCE\n$HEALTH_CMDAPI_MSG_NOSELECTORWARNING"
cmd "cmd=SILENCE" "${resp}"
check "Command with no selector" "False False False False False False"
+ check_list "SILENCE_3"
# Add hosts silencer
cmd "hosts=*" "$HEALTH_CMDAPI_MSG_ADDED"
check "Silence all hosts" "False True False True False True"
+ check_list "HOSTS"
# Reset
cmd "cmd=RESET" "$HEALTH_CMDAPI_MSG_RESET"
-
-fi
-
-# Cleanup
-if [ $CLEANUP -eq 1 ] ; then
- echo -e "${WHITE}Restoring netdata configuration"
- for f in "python.d.conf" "netdata.conf" ; do
- if [ -f "/tmp/$f" ] ; then
- mv -f "/tmp/$f" "${NETDATA_USER_CONFIG_DIR}/"
- else
- rm -f "${NETDATA_USER_CONFIG_DIR}/$f"
- fi
- done
-
- rm -f "${NETDATA_USER_CONFIG_DIR}/health.d/python-example.conf"
-
- # Restart netdata
- if [ $RESTART -eq 1 ] ; then
- echo "Restarting netdata"
- systemctl restart netdata
- fi
-fi
+ check_list "RESET"
if [ $err -gt 0 ] ; then
echo "$err error(s) found"
diff --git a/tests/health_mgmtapi/python-example.conf b/tests/health_mgmtapi/python-example.conf
deleted file mode 100644
index 66713208..00000000
--- a/tests/health_mgmtapi/python-example.conf
+++ /dev/null
@@ -1,16 +0,0 @@
-alarm: example_alarm1
- on: example.random
- every: 2s
- warn: $random1 > (($status >= $WARNING) ? (55) : (75))
- crit: $random1 > (($status == $CRITICAL) ? (75) : (95))
- info: random
- to: sysadmin
-
-alarm: example_alarm2
- on: example.random
- every: 2s
- warn: $random2 > (($status >= $WARNING) ? (55) : (75))
- crit: $random2 > (($status == $CRITICAL) ? (75) : (95))
- info: random
- to: sysadmin
-
diff --git a/tests/installer/slack.sh b/tests/installer/slack.sh
index 3c5f94a4..83cb5fa7 100755
--- a/tests/installer/slack.sh
+++ b/tests/installer/slack.sh
@@ -13,6 +13,7 @@
post_message() {
TYPE="$1"
MESSAGE="$2"
+ CUSTOM_CHANNEL="$3"
case "$TYPE" in
"PLAIN_MESSAGE")
@@ -24,7 +25,13 @@ post_message() {
EVENT_LINE="${TRAVIS_JOB_NUMBER}: Event type '${TRAVIS_EVENT_TYPE}' #${TRAVIS_PULL_REQUEST}, on '${TRAVIS_OS_NAME}' "
fi
+ if [ -n "${CUSTOM_CHANNEL}" ]; then
+ echo "Sending travis message to custom channel ${CUSTOM_CHANNEL}"
+ OPTIONAL_CHANNEL_INFO="\"channel\": \"${CUSTOM_CHANNEL}\","
+ fi
+
POST_MESSAGE="{
+ ${OPTIONAL_CHANNEL_INFO}
\"text\": \"${TRAVIS_REPO_SLUG}, ${MESSAGE}\",
\"attachments\": [{
\"text\": \"${TRAVIS_JOB_NUMBER}: Event type '${TRAVIS_EVENT_TYPE}', on '${TRAVIS_OS_NAME}' \",
diff --git a/tests/updater_checks.bats b/tests/updater_checks.bats
index e177fe4e..1a7eeb70 100755
--- a/tests/updater_checks.bats
+++ b/tests/updater_checks.bats
@@ -25,7 +25,6 @@ DIRS="usr/sbin/netdata
var/log/netdata"
setup() {
-
# If we are not in netdata git repo, at the top level directory, fail
TOP_LEVEL=$(basename "$(git rev-parse --show-toplevel)")
CWD=$(git rev-parse --show-cdup || echo "")
diff --git a/tests/updater_checks.sh b/tests/updater_checks.sh
index dce13685..9c8b6fa4 100755
--- a/tests/updater_checks.sh
+++ b/tests/updater_checks.sh
@@ -1,4 +1,4 @@
-#!/usr/bin/env bash
+#!/usr/bin/env sh
#
# Wrapper script that installs the required dependencies
# for the BATS script to run successfully
@@ -8,9 +8,71 @@
# Author : Pavlos Emm. Katsoulakis <paul@netdata.cloud)
#
-echo "Installing extra dependencies.."
-yum install -y epel-release
-yum install -y git bats
+echo "Syncing/updating repository.."
+
+blind_arch_grep_install() {
+ # There is a peculiar docker case with arch, where grep is not available
+ # This method will have to be triggered blindly, to inject grep so that we can process
+ # It starts to become a chicken-egg situation with all the distros..
+ echo "* * Workaround hack * *"
+ echo "Attempting blind install for archlinux case"
+
+ if command -v pacman > /dev/null 2>&1; then
+ echo "Executing grep installation"
+ pacman -Sy
+ pacman --noconfirm --needed -S grep
+ fi
+}
+blind_arch_grep_install || echo "Workaround failed, proceed as usual"
+
+running_os="$(cat /etc/os-release |grep '^ID=' | cut -d'=' -f2 | sed -e 's/"//g')"
+
+case "${running_os}" in
+"centos"|"fedora")
+ echo "Running on CentOS, updating YUM repository.."
+ yum clean all
+ yum update -y
+
+ echo "Installing extra dependencies.."
+ yum install -y epel-release
+ yum install -y bats curl
+ ;;
+"debian"|"ubuntu")
+ echo "Running ${running_os}, updating APT repository"
+ apt-get update -y
+ apt-get install -y bats curl
+ ;;
+"opensuse-leap"|"opensuse-tumbleweed")
+ zypper update -y
+ zypper install -y bats curl
+ ;;
+"arch")
+ pacman -Sy
+ pacman --noconfirm --needed -S bash-bats curl
+ ;;
+"alpine")
+ apk update
+ apk add bash curl bats
+ ;;
+*)
+ echo "Running on ${running_os}, no repository preparation done"
+ ;;
+esac
+
+# Download and run depednency scriptlet, before anything else
+#
+deps_tool="/tmp/deps_tool.$$.sh"
+curl -Ss -o ${deps_tool} https://raw.githubusercontent.com/netdata/netdata-demo-site/master/install-required-packages.sh
+if [ -f "${deps_tool}" ]; then
+ echo "Running dependency handling script.."
+ chmod +x "${deps_tool}"
+ ${deps_tool} --non-interactive netdata
+ rm -f "${deps_tool}"
+ echo "Done!"
+else
+ echo "Failed to fetch dependency script, aborting the test"
+ exit 1
+fi
echo "Running BATS file.."
bats --tap tests/updater_checks.bats