From 3fa59bff87f3571d8388af28021374c6ae7055c4 Mon Sep 17 00:00:00 2001 From: Saikumar Date: Wed, 24 Apr 2024 12:31:58 +0530 Subject: [PATCH 1/3] Updates for Alert Manager Setup --- pmm_qa/pmm-framework.py | 42 +++++++++++++++++++++++++++++++++++------ 1 file changed, 36 insertions(+), 6 deletions(-) diff --git a/pmm_qa/pmm-framework.py b/pmm_qa/pmm-framework.py index 058fc48..b7f5d52 100755 --- a/pmm_qa/pmm-framework.py +++ b/pmm_qa/pmm-framework.py @@ -3,6 +3,7 @@ import os import sys import ansible_runner +import re # Database configurations database_configs = { @@ -50,6 +51,7 @@ }, "configurations": {"CLIENT_VERSION": "3-dev-latest"} }, + "ALERTMANAGER": {} } @@ -314,11 +316,37 @@ def setup_external(db_type, db_version=None, db_config=None, args=None): run_ansible_playbook(playbook_filename, env_vars, args) -def execute_shell_scripts(shell_scripts, env_vars, args): +def setup_alertmanager(db_type, db_version=None, db_config=None, args=None): + # Check if PMM server is running + container_name = get_running_container_name() + if container_name is None and args.pmm_server_ip is None: + print(f"Check if PMM Server is Up and Running..Exiting") + exit() + + # Define environment variables for shell script + env_vars = {} + + # Check if instance is localhost for PMM Server + if args.pmm_server_ip: + # Check if format is IP + ip_pattern = r'^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$' + if re.match(ip_pattern, args.pmm_server_ip): + print(f"Alert Manager setup only works on PMM Server localhost") + exit() + + # Shell script filename + shell_scripts = ['alertmanager.sh'] + shell_scripts_path = '' + + # Call the function to run the Ansible playbook + execute_shell_scripts(shell_scripts, shell_scripts_path, env_vars, args) + + +def execute_shell_scripts(shell_scripts, scripts_path, env_vars, args): # Get script directory script_path = os.path.abspath(sys.argv[0]) script_dir = os.path.dirname(script_path) - shell_scripts_path = script_dir + "/../pmm_psmdb-pbm_setup/" + shell_scripts_path = script_dir + scripts_path # Get the original working directory original_dir = os.getcwd() @@ -420,11 +448,9 @@ def setup_psmdb(db_type, db_version=None, db_config=None, args=None): # Handle port address for external or internal address server_hostname = container_name port = 8443 - if args.pmm_server_ip: port = 443 server_hostname = args.pmm_server_ip - server_address = f'{server_hostname}:{port}' # Define environment variables for playbook @@ -441,16 +467,18 @@ def setup_psmdb(db_type, db_version=None, db_config=None, args=None): } shell_scripts = [] + scripts_path = "/../pmm_psmdb-pbm_setup/" + if get_value('SETUP_TYPE', db_type, args, db_config).lower() == "pss" or "psa": # Shell script names shell_scripts = ['start-rs-only.sh'] elif get_value('SETUP_TYPE', db_type, args, db_config).lower() == "shards": - shell_scripts = [f'start-sharded-no-server.sh'] + shell_scripts = ['start-sharded-no-server.sh'] mongo_sharding_setup(shell_scripts[0], args) # Execute shell scripts if not shell_scripts == []: - execute_shell_scripts(shell_scripts, env_vars, args) + execute_shell_scripts(shell_scripts, scripts_path, env_vars, args) def setup_pxc_proxysql(db_type, db_version=None, db_config=None, args=None): @@ -515,6 +543,8 @@ def setup_database(db_type, db_version=None, db_config=None, args=None): setup_haproxy(db_type, db_version, db_config, args) elif db_type == 'EXTERNAL': setup_external(db_type, db_version, db_config, args) + elif db_type == 'ALERTMANAGER': + setup_alertmanager(db_type, db_version, db_config, args) else: print(f"Database type {db_type} is not recognised, Exiting...") exit(1) From 2e5aaf4208d2b20a81e4780e87422374244c0f93 Mon Sep 17 00:00:00 2001 From: Saikumar Date: Wed, 24 Apr 2024 12:49:58 +0530 Subject: [PATCH 2/3] Adding Alert Manager Setup File --- pmm_qa/alertmanager.sh | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 pmm_qa/alertmanager.sh diff --git a/pmm_qa/alertmanager.sh b/pmm_qa/alertmanager.sh new file mode 100644 index 0000000..0c0113e --- /dev/null +++ b/pmm_qa/alertmanager.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +while [ $# -gt 0 ]; do + + if [[ $1 == *"--"* ]]; then + param="${1/--/}" + declare $param="$2" + fi + + shift +done + +docker stop alert-manager && docker rm -fv alert-manager +sleep 10 +docker run -d -p 9093:9093 --name alert-manager prom/alertmanager:latest +sleep 20 From 72d5b5fdb4553a4b6b28644848cf20b70dec17ef Mon Sep 17 00:00:00 2001 From: Saikumar Date: Thu, 25 Apr 2024 13:29:59 +0530 Subject: [PATCH 3/3] Updates --- pmm_qa/alertmanager.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pmm_qa/alertmanager.sh b/pmm_qa/alertmanager.sh index 0c0113e..1198bf3 100644 --- a/pmm_qa/alertmanager.sh +++ b/pmm_qa/alertmanager.sh @@ -10,7 +10,8 @@ while [ $# -gt 0 ]; do shift done -docker stop alert-manager && docker rm -fv alert-manager +docker stop alertmanager && docker rm -fv alertmanager sleep 10 -docker run -d -p 9093:9093 --name alert-manager prom/alertmanager:latest +docker run -d -p 9093:9093 --name alertmanager prom/alertmanager:latest sleep 20 +docker network connect pmm-qa alertmanager