public inbox for kdevops@lists.linux.dev
 help / color / mirror / Atom feed
From: Luis Chamberlain <mcgrof@kernel.org>
To: Chuck Lever <cel@kernel.org>, Daniel Gomez <da.gomez@kruces.com>,
	kdevops@lists.linux.dev
Cc: Luis Chamberlain <mcgrof@kernel.org>
Subject: [PATCH 3/5] sysbench: add monitoring framework integration
Date: Thu,  4 Sep 2025 02:13:19 -0700	[thread overview]
Message-ID: <20250904091322.2499058-4-mcgrof@kernel.org> (raw)
In-Reply-To: <20250904091322.2499058-1-mcgrof@kernel.org>

Add support for the monitoring framework to sysbench workflow, matching
the implementation in other workflows. This allows sysbench to leverage
all monitoring capabilities including the new eBPF fragmentation monitoring.

Changes:
- Import monitor_run tasks before test execution
- Import monitor_collect tasks after test completion
- Add monitor-results make target for interim data collection
- Add sysbench to monitoring results path detection
- Install python3-bpfcc/python3-bcc dependency across all distributions

With these changes, users can simply enable monitoring options in
menuconfig and sysbench will automatically start/stop monitoring
during test execution.

Generated-by: Claude AI
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
---
 playbooks/roles/monitoring/tasks/monitor_collect.yml |  2 ++
 .../sysbench/tasks/install-deps/debian/main.yml      |  2 ++
 .../sysbench/tasks/install-deps/redhat/main.yml      |  1 +
 .../roles/sysbench/tasks/install-deps/suse/main.yml  |  1 +
 playbooks/roles/sysbench/tasks/main.yaml             | 12 ++++++++++++
 workflows/sysbench/Makefile                          |  8 +++++++-
 6 files changed, 25 insertions(+), 1 deletion(-)

diff --git a/playbooks/roles/monitoring/tasks/monitor_collect.yml b/playbooks/roles/monitoring/tasks/monitor_collect.yml
index 967526b40428..9662f827301f 100644
--- a/playbooks/roles/monitoring/tasks/monitor_collect.yml
+++ b/playbooks/roles/monitoring/tasks/monitor_collect.yml
@@ -117,6 +117,8 @@
         {{ topdir_path }}/workflows/fstests/results/monitoring
       {%- elif kdevops_workflow_enable_mmtests|default(false)|bool -%}
         {{ topdir_path }}/workflows/mmtests/results/monitoring
+      {%- elif kdevops_workflow_enable_sysbench|default(false)|bool -%}
+        {{ topdir_path }}/workflows/sysbench/results/monitoring
       {%- else -%}
         {{ topdir_path }}/results/monitoring
       {%- endif -%}
diff --git a/playbooks/roles/sysbench/tasks/install-deps/debian/main.yml b/playbooks/roles/sysbench/tasks/install-deps/debian/main.yml
index bd091389edf8..0a7943640797 100644
--- a/playbooks/roles/sysbench/tasks/install-deps/debian/main.yml
+++ b/playbooks/roles/sysbench/tasks/install-deps/debian/main.yml
@@ -25,6 +25,7 @@
       - docker.io
       - locales
       - rsync
+      - python3-bpfcc
     state: present
     update_cache: true
   tags: ["deps"]
@@ -72,6 +73,7 @@
     name:
       - locales
       - rsync
+      - python3-bpfcc
     state: present
     update_cache: true
   when: "sysbench_type_postgresql_native|bool"
diff --git a/playbooks/roles/sysbench/tasks/install-deps/redhat/main.yml b/playbooks/roles/sysbench/tasks/install-deps/redhat/main.yml
index 9b780db2dd13..04e67434fb5b 100644
--- a/playbooks/roles/sysbench/tasks/install-deps/redhat/main.yml
+++ b/playbooks/roles/sysbench/tasks/install-deps/redhat/main.yml
@@ -22,3 +22,4 @@
   vars:
     packages:
       - docker
+      - python3-bcc
diff --git a/playbooks/roles/sysbench/tasks/install-deps/suse/main.yml b/playbooks/roles/sysbench/tasks/install-deps/suse/main.yml
index f9e78f3881ad..0dfb2f651670 100644
--- a/playbooks/roles/sysbench/tasks/install-deps/suse/main.yml
+++ b/playbooks/roles/sysbench/tasks/install-deps/suse/main.yml
@@ -62,6 +62,7 @@
   ansible.builtin.package:
     name:
       - docker
+      - python3-bcc
     state: present
   when:
     - repos_present|bool
diff --git a/playbooks/roles/sysbench/tasks/main.yaml b/playbooks/roles/sysbench/tasks/main.yaml
index 77c57d6a9dee..bd550428d8c7 100644
--- a/playbooks/roles/sysbench/tasks/main.yaml
+++ b/playbooks/roles/sysbench/tasks/main.yaml
@@ -30,6 +30,12 @@
     name: create_data_partition
   tags: ["mkfs"]
 
+# Start monitoring services before running tests
+- ansible.builtin.import_tasks: ../../monitoring/tasks/monitor_run.yml
+  when:
+    - enable_monitoring|default(false)|bool
+  tags: ["run_sysbench", "monitoring", "monitor_run"]
+
 - name: MySQL Docker
   ansible.builtin.import_tasks: mysql-docker/main.yaml
   when: sysbench_type_mysql_docker | bool
@@ -37,3 +43,9 @@
 - name: PostgreSQL Native
   ansible.builtin.import_tasks: postgresql-native/main.yaml
   when: sysbench_type_postgresql_native | bool
+
+# Collect monitoring data after tests complete
+- ansible.builtin.import_tasks: ../../monitoring/tasks/monitor_collect.yml
+  when:
+    - enable_monitoring|default(false)|bool
+  tags: ["run_sysbench", "monitoring", "monitor_collect"]
diff --git a/workflows/sysbench/Makefile b/workflows/sysbench/Makefile
index 66e594d34841..45347d79ed1f 100644
--- a/workflows/sysbench/Makefile
+++ b/workflows/sysbench/Makefile
@@ -1,4 +1,4 @@
-PHONY += sysbench sysbench-test sysbench-telemetry sysbench-help-menu
+PHONY += sysbench sysbench-test sysbench-telemetry sysbench-help-menu monitor-results
 
 
 TAGS_SYSBENCH_RUN := db_start
@@ -47,6 +47,11 @@ sysbench-results:
 		playbooks/sysbench.yml \
 		--tags $(subst $(space),$(comma),$(TAGS_SYSBENCH_RESULTS))
 
+monitor-results: $(KDEVOPS_EXTRA_VARS)
+	$(Q)ansible-playbook $(ANSIBLE_VERBOSE) \
+		playbooks/monitor-results.yml \
+		--extra-vars=@./extra_vars.yaml
+
 sysbench-clean:
 	$(Q)ansible-playbook $(ANSIBLE_VERBOSE) \
 		playbooks/sysbench.yml \
@@ -65,6 +70,7 @@ sysbench-help-menu:
 	@echo "sysbench-test                     - Run sysbench tests and collect results (with telemetry)"
 	@echo "sysbench-telemetry                - Gather sysbench telemetry data on each node"
 	@echo "sysbench-results                  - Collect all sysbench results onto local host"
+	@echo "monitor-results                   - Collect interim monitoring data without stopping monitoring"
 	@echo "sysbench-clean                    - Remove any previous results on node and host"
 	@echo ""
 
-- 
2.45.2


  parent reply	other threads:[~2025-09-04  9:13 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-04  9:13 [PATCH 0/5] add memory fragmentation automation testing Luis Chamberlain
2025-09-04  9:13 ` [PATCH 1/5] monitoring: add memory fragmentation eBPF monitoring support Luis Chamberlain
2025-09-04  9:13 ` [PATCH 2/5] mmtests: add monitoring framework integration Luis Chamberlain
2025-09-04  9:13 ` Luis Chamberlain [this message]
2025-09-04  9:13 ` [PATCH 4/5] ai milvus: add monitoring support Luis Chamberlain
2025-09-04  9:13 ` [PATCH 5/5] minio: " Luis Chamberlain
2025-09-19  3:49 ` [PATCH 0/5] add memory fragmentation automation testing Luis Chamberlain

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250904091322.2499058-4-mcgrof@kernel.org \
    --to=mcgrof@kernel.org \
    --cc=cel@kernel.org \
    --cc=da.gomez@kruces.com \
    --cc=kdevops@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox