diff --git a/terraform/kafka_runner/run-test.py b/terraform/kafka_runner/run-test.py index 256bb590e3838..203dbdcad387e 100644 --- a/terraform/kafka_runner/run-test.py +++ b/terraform/kafka_runner/run-test.py @@ -264,7 +264,9 @@ def main(): ssh_account=ssh_account, instance_name=args.instance_name, jdk_version=args.jdk_version, - jdk_arch=args.jdk_arch + jdk_arch=args.jdk_arch, + JOB_ID=JOB_ID, + enable_cloudwatch=args.enable_cloudwatch ) else: logging.info(f"using existing ami: {args.existing_ami}") diff --git a/terraform/kafka_runner/util.py b/terraform/kafka_runner/util.py index e9426fbfc7372..74fe97b1998cd 100644 --- a/terraform/kafka_runner/util.py +++ b/terraform/kafka_runner/util.py @@ -170,6 +170,7 @@ def parse_args(): parser.add_argument("--jdk-arch", action="store", type=str, default="x64", help="JDK arch to execute."), parser.add_argument("--nightly", action="store_true", default=False, help="Mark this as a nightly run") + parser.add_argument("--enable-cloudwatch", action="store", type=parse_bool, default=False, help="Enable cloudwatch metrics if true") parser.add_argument("--new-globals", action="store", type=str, default=None, help="Additional global params to be passed in ducktape") parser.add_argument("--arm-image", action="store_true", help="load the ARM based image of specified distro") parser.add_argument("--existing-ami", action="store", type=str, default=None, help="AMI ID to use for the instance, skipping ami creation") diff --git a/vagrant/aws-packer.json b/vagrant/aws-packer.json index 6f02bbb01a20e..8270680d2e846 100644 --- a/vagrant/aws-packer.json +++ b/vagrant/aws-packer.json @@ -45,15 +45,23 @@ "type": "shell", "inline": ["while [ ! -f /var/lib/cloud/instance/boot-finished ]; do echo 'Waiting for cloud-init...'; sleep 1; done"] }, + { + "type": "file", + "source": "../vagrant/cloudwatch-agent-configuration.json", + "destination": "/tmp/cloudwatch-agent-configuration.json" + }, { "environment_vars": [ "JDK_MAJOR={{ user `jdk_version` }}", - "JDK_ARCH={{ user `jdk_arch` }}" + "JDK_ARCH={{ user `jdk_arch` }}", + "SEMAPHORE_JOB_ID={{ user `JOB_ID` }}", + "ENABLE_CLOUDWATCH={{ user `enable_cloudwatch` }}" ], "execute_command": "echo 'packer' | {{ .Vars }} sudo -E -S bash '{{ .Path }}'", "type": "shell", "scripts": [ - "../vagrant/base.sh" + "../vagrant/base.sh", + "../vagrant/cloudwatch-agent-setup.sh" ] } ] diff --git a/vagrant/cloudwatch-agent-setup.sh b/vagrant/cloudwatch-agent-setup.sh index a3fde878d69ca..1ae6f3094d675 100644 --- a/vagrant/cloudwatch-agent-setup.sh +++ b/vagrant/cloudwatch-agent-setup.sh @@ -11,6 +11,13 @@ set -ex +if [ "${ENABLE_CLOUDWATCH,,}" = "false" ]; then + echo "Cloudwatch is disabled, skipping setup" + exit 0 +else + echo "CloudWatch setup enabled, installing amazon-cloudwatch-agent..." +fi + architecture=arm64 arch=$(uname -m)