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
next prev 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