From 56dd06142d1a90d552b2eedbdec690f633c21a67 Mon Sep 17 00:00:00 2001 From: Vlad Zolotarov Date: Mon, 11 Mar 2024 21:12:39 -0400 Subject: [PATCH] scylla-monitoring: auto-detect Scylla dashboard version Auto-detect Scylla version when scylla_monitoring_dashboards_versions is not specified or is empty. Scylla must be installed on the first host from the 'scylla' section in the inventory for auto-detection to succeed. Signed-off-by: Vlad Zolotarov --- ansible-scylla-monitoring/defaults/main.yml | 4 ++-- ansible-scylla-monitoring/tasks/common.yml | 23 +++++++++++++++++++++ ansible-scylla-monitoring/tasks/docker.yml | 8 +++---- 3 files changed, 29 insertions(+), 6 deletions(-) diff --git a/ansible-scylla-monitoring/defaults/main.yml b/ansible-scylla-monitoring/defaults/main.yml index 8fd93976..512ea053 100644 --- a/ansible-scylla-monitoring/defaults/main.yml +++ b/ansible-scylla-monitoring/defaults/main.yml @@ -32,8 +32,8 @@ scylla_monitoring_alertdata_path: "{{ scylla_monitoring_deploy_path }}/alertdata use_nodetool_status_with_genconfig: false # List of monitoring dashboards to enable -scylla_monitoring_dashboards_versions: - - '2021.1' +#scylla_monitoring_dashboards_versions: +# - '2021.1' # Username which will be used for the cql plugin if auth is enabled on scylla-server side # scylla_monitoring_cql_default_user: 'scylla_cql_monitor' diff --git a/ansible-scylla-monitoring/tasks/common.yml b/ansible-scylla-monitoring/tasks/common.yml index 40192471..d491f1d3 100644 --- a/ansible-scylla-monitoring/tasks/common.yml +++ b/ansible-scylla-monitoring/tasks/common.yml @@ -240,3 +240,26 @@ msg: "Can't auto-detect Scylla Manager dashboard version. Either specify it explicitly or install Scylla Manager Server on the Scylla Manager host." when: _sm_version_out.rc != 0 when: _scylla_monitoring_params is not search("-M\s+") + +- name: Set _scylla_monitoring_dashboards_versions to scylla_monitoring_dashboards_versions + set_fact: + _scylla_monitoring_dashboards_versions: "{{ scylla_monitoring_dashboards_versions | default([]) }}" + +- name: Auto detect Scylla version if dashboard versions were not explicitly specified + block: + - name: Get Scylla version from the first Scylla node + shell: | + scylla --version | cut -d'.' -f1,2 + delegate_to: "{{ groups['scylla'][0] }}" + register: _scylla_version_out + + - name: Adding Scylla dashboard option if getting a Scylla version was successful + set_fact: + _scylla_monitoring_dashboards_versions: ["{{ _scylla_version_out.stdout }}"] + when: _scylla_version_out.rc == 0 + + - name: Error out if failed to get Scylla version + fail: + msg: "Can't auto-detect Scylla dashboard version. Either specify it explicitly or install scylla on the first Scylla node." + when: _scylla_version_out.rc != 0 + when: (_scylla_monitoring_dashboards_versions|length == 0) diff --git a/ansible-scylla-monitoring/tasks/docker.yml b/ansible-scylla-monitoring/tasks/docker.yml index 5bbcd0eb..69004cef 100644 --- a/ansible-scylla-monitoring/tasks/docker.yml +++ b/ansible-scylla-monitoring/tasks/docker.yml @@ -39,7 +39,7 @@ ./start-all.sh \ -d {{ scylla_monitoring_data_path }} \ -f {{ scylla_monitoring_alertdata_path }} \ - -v {{ scylla_monitoring_dashboards_versions|join(',') }} \ + -v {{ _scylla_monitoring_dashboards_versions|join(',') }} \ -s {{ scylla_monitoring_config_path }}/scylla_servers.yml \ -N {{ scylla_monitoring_config_path }}/scylla_manager_servers.yml \ -r {{ scylla_monitoring_config_path }}/rule_config.yml \ @@ -67,7 +67,7 @@ ./start-all.sh \ -d {{ scylla_monitoring_data_path }} \ -f {{ scylla_monitoring_alertdata_path }} \ - -v {{ scylla_monitoring_dashboards_versions|join(',') }} \ + -v {{ _scylla_monitoring_dashboards_versions|join(',') }} \ -s {{ scylla_monitoring_config_path }}/scylla_servers.yml \ -N {{ scylla_monitoring_config_path }}/scylla_manager_servers.yml \ -r {{ scylla_monitoring_config_path }}/rule_config.yml \ @@ -95,7 +95,7 @@ ./start-all.sh \ -d {{ scylla_monitoring_data_path }} \ -f {{ scylla_monitoring_alertdata_path }} \ - -v {{ scylla_monitoring_dashboards_versions|join(',') }} \ + -v {{ _scylla_monitoring_dashboards_versions|join(',') }} \ -s {{ scylla_monitoring_config_path }}/scylla_servers.yml \ -N {{ scylla_monitoring_config_path }}/scylla_manager_servers.yml \ -r {{ scylla_monitoring_config_path }}/rule_config.yml \ @@ -124,7 +124,7 @@ ./start-all.sh \ -d {{ scylla_monitoring_data_path }} \ -f {{ scylla_monitoring_alertdata_path }} \ - -v {{ scylla_monitoring_dashboards_versions|join(',') }} \ + -v {{ _scylla_monitoring_dashboards_versions|join(',') }} \ -s {{ scylla_monitoring_config_path }}/scylla_servers.yml \ -N {{ scylla_monitoring_config_path }}/scylla_manager_servers.yml \ -r {{ scylla_monitoring_config_path }}/rule_config.yml \