From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7D4932E62D1 for ; Thu, 4 Sep 2025 09:13:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.137.202.133 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756977205; cv=none; b=PAVfGb9yQ1yWoaQD2M1qEGn88I0EJrqnMLQC2F5ZCUNzgg2kuKbVM3BmU6QmwpNqkc8iBK85aSAreAtzXlI03qZj79VnJY7/DMJRvIA8L4Y9ZIO4VtiYV1Nf+QwaTcM85vq1B4deTiqbTuCvXGVCD5hFACJD6KnhKpbZYVstfUE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756977205; c=relaxed/simple; bh=y8ByK86ajUKFJmVPpcZQMLbVpThPcn9SYpzQQy07m2Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=erFYEPCFsnMswTowhrYvVXIRVLweQS7fZBb99nU8FcfRWtNVfrGJQuDIBQPDsqMuA/FOzbuZWKZktP1ETaalpiEZGlXhKofwQ1eRtmUwyvQBVpm155mtFMv9H+1G+8EcjCxR352wRqYXpocpS6J4RqbMDGrVh1yPMScDTFj1RKw= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=kernel.org; spf=none smtp.mailfrom=infradead.org; dkim=pass (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b=wS++6Pg6; arc=none smtp.client-ip=198.137.202.133 Authentication-Results: smtp.subspace.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=kernel.org Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=infradead.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b="wS++6Pg6" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Sender:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description; bh=AwW1fXtwXzGZZDl9917D6NVHeUBzRXmhdOU/b6AhjSw=; b=wS++6Pg6b7Io454zrHlTXFRJNg 8gKMWbcTTtCZ9Wz4z3Mjq62G0MqKi0ml/VrDsgHZl4aibPqhwQpmXi7DLK6BD4HYsy2AQlS5qZoRS LmmNazOnBf+E6MAEokuEII8tM74iolqvcH0UPG6CsCHYjehHNp9Vb8m1w4sglAH0yHmS7Y1dy4LCw mEAEtjlNze1iqvVss7vPL06m6Iqizcxa0iUXkAnOEH+mVWOhrArwr8bV8hVXN7KxwpWs713CNykZF IScyElMR3x9BhYn9WX4PqU2H5J/nStM/LS9iRtKFYKdFcpDaE/IGprnMFr2WdQmHdx6J1RjCkTBLn Oe6qiJ9Q==; Received: from mcgrof by bombadil.infradead.org with local (Exim 4.98.2 #2 (Red Hat Linux)) id 1uu61z-0000000AU90-0EZq; Thu, 04 Sep 2025 09:13:23 +0000 From: Luis Chamberlain To: Chuck Lever , Daniel Gomez , kdevops@lists.linux.dev Cc: Luis Chamberlain Subject: [PATCH 5/5] minio: add monitoring support Date: Thu, 4 Sep 2025 02:13:21 -0700 Message-ID: <20250904091322.2499058-6-mcgrof@kernel.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250904091322.2499058-1-mcgrof@kernel.org> References: <20250904091322.2499058-1-mcgrof@kernel.org> Precedence: bulk X-Mailing-List: kdevops@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: Luis Chamberlain Add monitoring framework integration to the MinIO Warp workflow to track performance during S3 benchmarking tests. Generated-by: Claude AI Signed-off-by: Luis Chamberlain --- playbooks/minio.yml | 15 ++++++++++++ playbooks/roles/minio_install/tasks/main.yml | 24 ++++++++++++++++++- .../monitoring/tasks/monitor_collect.yml | 4 ++++ workflows/minio/Makefile | 9 ++++++- 4 files changed, 50 insertions(+), 2 deletions(-) diff --git a/playbooks/minio.yml b/playbooks/minio.yml index bf80bbf4eaa0..a3b2be26ed91 100644 --- a/playbooks/minio.yml +++ b/playbooks/minio.yml @@ -25,9 +25,24 @@ become: true become_user: root tags: ['minio_warp'] + + pre_tasks: + # Start monitoring services before running benchmarks + - ansible.builtin.import_tasks: roles/monitoring/tasks/monitor_run.yml + when: + - enable_monitoring|default(false)|bool + tags: ["monitoring", "monitor_run"] + roles: - role: minio_warp_run + post_tasks: + # Collect monitoring data after benchmarks complete + - ansible.builtin.import_tasks: roles/monitoring/tasks/monitor_collect.yml + when: + - enable_monitoring|default(false)|bool + tags: ["monitoring", "monitor_collect"] + - name: Uninstall MinIO hosts: minio become: true diff --git a/playbooks/roles/minio_install/tasks/main.yml b/playbooks/roles/minio_install/tasks/main.yml index 9ea3d758adcb..e8ec3067b8b3 100644 --- a/playbooks/roles/minio_install/tasks/main.yml +++ b/playbooks/roles/minio_install/tasks/main.yml @@ -6,13 +6,35 @@ - "../extra_vars.yaml" tags: vars -- name: Install Docker +- name: Install Docker and monitoring dependencies package: name: - docker.io - python3-docker + - python3-bpfcc state: present become: yes + when: ansible_os_family == "Debian" + +- name: Install Docker and monitoring dependencies (RedHat) + package: + name: + - docker + - python3-docker + - python3-bcc + state: present + become: yes + when: ansible_os_family == "RedHat" + +- name: Install Docker and monitoring dependencies (SUSE) + package: + name: + - docker + - python3-docker + - python3-bcc + state: present + become: yes + when: ansible_os_family == "SUSE" - name: Ensure Docker service is running systemd: diff --git a/playbooks/roles/monitoring/tasks/monitor_collect.yml b/playbooks/roles/monitoring/tasks/monitor_collect.yml index 83193ed459b6..e59e4ce7a386 100644 --- a/playbooks/roles/monitoring/tasks/monitor_collect.yml +++ b/playbooks/roles/monitoring/tasks/monitor_collect.yml @@ -121,6 +121,10 @@ {{ topdir_path }}/workflows/sysbench/results/monitoring {%- elif kdevops_workflow_enable_ai|default(false)|bool -%} {{ topdir_path }}/workflows/ai/results/monitoring + {%- elif kdevops_workflow_enable_minio|default(false)|bool -%} + {{ topdir_path }}/workflows/minio/results/monitoring + {%- elif kdevops_workflow_enable_build_linux|default(false)|bool -%} + {{ topdir_path }}/workflows/build-linux/results/monitoring {%- else -%} {{ topdir_path }}/results/monitoring {%- endif -%} diff --git a/workflows/minio/Makefile b/workflows/minio/Makefile index c543ed3b26ea..ef2ecb973429 100644 --- a/workflows/minio/Makefile +++ b/workflows/minio/Makefile @@ -4,6 +4,7 @@ MINIO_DATA_TARGET_UNINSTALL := minio-uninstall MINIO_DATA_TARGET_DESTROY := minio-destroy MINIO_DATA_TARGET_RUN := minio-warp MINIO_DATA_TARGET_RESULTS := minio-results +MINIO_DATA_TARGET_MONITOR := monitor-results MINIO_PLAYBOOK := playbooks/minio.yml @@ -49,6 +50,11 @@ $(MINIO_DATA_TARGET_RESULTS): echo "No results directory found. Run 'make minio-warp' first."; \ fi +$(MINIO_DATA_TARGET_MONITOR): $(KDEVOPS_EXTRA_VARS) + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ + playbooks/monitor-results.yml \ + --extra-vars=@./extra_vars.yaml + minio-help: @echo "MinIO Warp S3 benchmarking targets:" @echo "" @@ -58,6 +64,7 @@ minio-help: @echo "minio-destroy - Remove MinIO containers and clean up data" @echo "minio-warp - Run MinIO Warp benchmarks" @echo "minio-results - Collect and analyze benchmark results" + @echo "monitor-results - Collect monitoring data" @echo "" @echo "Example usage:" @echo " make defconfig-minio-warp # Configure for Warp benchmarking" @@ -73,4 +80,4 @@ minio-help: .PHONY: $(MINIO_DATA_TARGET) $(MINIO_DATA_TARGET_INSTALL) $(MINIO_DATA_TARGET_UNINSTALL) .PHONY: $(MINIO_DATA_TARGET_DESTROY) $(MINIO_DATA_TARGET_RUN) $(MINIO_DATA_TARGET_RESULTS) -.PHONY: minio-help +.PHONY: $(MINIO_DATA_TARGET_MONITOR) minio-help -- 2.45.2