From 92306e2ade029b6805d61fb2b88759f7b6e4d3ea Mon Sep 17 00:00:00 2001 From: Michal Maslanka Date: Thu, 26 May 2022 09:20:09 +0200 Subject: [PATCH 1/4] tests/producer_swarm: use new client-swarm version Signed-off-by: Michal Maslanka --- tests/docker/Dockerfile | 2 +- tests/rptest/services/producer_swarm.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/docker/Dockerfile b/tests/docker/Dockerfile index 0401d3e266cb..b18e04926537 100644 --- a/tests/docker/Dockerfile +++ b/tests/docker/Dockerfile @@ -153,7 +153,7 @@ RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y && \ export PATH="/root/.cargo/bin:${PATH}" && \ git clone https://github.com/redpanda-data/client-swarm.git && \ cd client-swarm && \ - git reset --hard 9427df19 && \ + git reset --hard 28790f8 && \ cargo build --release && \ cp target/release/client-swarm /usr/local/bin && \ cd .. && rm -rf client-swarm && rm -rf /root/.cargo diff --git a/tests/rptest/services/producer_swarm.py b/tests/rptest/services/producer_swarm.py index 6b563acbdb0f..c1b1f5b5a376 100644 --- a/tests/rptest/services/producer_swarm.py +++ b/tests/rptest/services/producer_swarm.py @@ -24,7 +24,7 @@ def __init__(self, context, redpanda, topic: str, producers: int, self._stopping = threading.Event() def _worker(self, idx, node): - cmd = f"RUST_LOG=INFO client-swarm producers {self._redpanda.brokers()} {self._topic} {self._producers} {self._records_per_producer}" + cmd = f"RUST_LOG=INFO client-swarm --brokers {self._redpanda.brokers()} producers --topic {self._topic} --count {self._producers} --messages {self._records_per_producer}" try: for line in node.account.ssh_capture(cmd): From ac9804800bb6ab04594a430694e9abbb85738ce3 Mon Sep 17 00:00:00 2001 From: Michal Maslanka Date: Thu, 26 May 2022 09:20:38 +0200 Subject: [PATCH 2/4] tests/producer_swarm: fix stopping producer swarm process Signed-off-by: Michal Maslanka --- tests/rptest/services/producer_swarm.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/rptest/services/producer_swarm.py b/tests/rptest/services/producer_swarm.py index c1b1f5b5a376..8eae7c01b3da 100644 --- a/tests/rptest/services/producer_swarm.py +++ b/tests/rptest/services/producer_swarm.py @@ -41,4 +41,4 @@ def stop_all(self): self.stop() def stop_node(self, node): - node.account.kill_process("conn_test", clean_shutdown=False) + node.account.kill_process("client-swarm", clean_shutdown=False) From 1754b3432ac8dd29b8384d4e208a6a94edf05fd1 Mon Sep 17 00:00:00 2001 From: Michal Maslanka Date: Tue, 24 May 2022 18:51:18 +0200 Subject: [PATCH 3/4] tests/swarm: added parameter to control log level Signed-off-by: Michal Maslanka --- tests/rptest/services/producer_swarm.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/tests/rptest/services/producer_swarm.py b/tests/rptest/services/producer_swarm.py index 8eae7c01b3da..55616ede5a91 100644 --- a/tests/rptest/services/producer_swarm.py +++ b/tests/rptest/services/producer_swarm.py @@ -14,17 +14,23 @@ class ProducerSwarm(BackgroundThreadService): - def __init__(self, context, redpanda, topic: str, producers: int, - records_per_producer: int): + def __init__(self, + context, + redpanda, + topic: str, + producers: int, + records_per_producer: int, + log_level="INFO"): super(ProducerSwarm, self).__init__(context, num_nodes=1) self._redpanda = redpanda self._topic = topic self._producers = producers self._records_per_producer = records_per_producer self._stopping = threading.Event() + self._log_level = log_level def _worker(self, idx, node): - cmd = f"RUST_LOG=INFO client-swarm --brokers {self._redpanda.brokers()} producers --topic {self._topic} --count {self._producers} --messages {self._records_per_producer}" + cmd = f"RUST_LOG={self._log_level} client-swarm --brokers {self._redpanda.brokers()} producers --topic {self._topic} --count {self._producers} --messages {self._records_per_producer}" try: for line in node.account.ssh_capture(cmd): From e0d598d8c8d21aaca3dfa57a3d9338277245833b Mon Sep 17 00:00:00 2001 From: Michal Maslanka Date: Thu, 26 May 2022 13:53:05 +0200 Subject: [PATCH 4/4] tests/producer_swarm: added support for custom producer properties Signed-off-by: Michal Maslanka --- tests/rptest/services/producer_swarm.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tests/rptest/services/producer_swarm.py b/tests/rptest/services/producer_swarm.py index 55616ede5a91..bd880a9eee89 100644 --- a/tests/rptest/services/producer_swarm.py +++ b/tests/rptest/services/producer_swarm.py @@ -20,7 +20,8 @@ def __init__(self, topic: str, producers: int, records_per_producer: int, - log_level="INFO"): + log_level="INFO", + properties={}): super(ProducerSwarm, self).__init__(context, num_nodes=1) self._redpanda = redpanda self._topic = topic @@ -28,10 +29,12 @@ def __init__(self, self._records_per_producer = records_per_producer self._stopping = threading.Event() self._log_level = log_level + self._properties = properties def _worker(self, idx, node): cmd = f"RUST_LOG={self._log_level} client-swarm --brokers {self._redpanda.brokers()} producers --topic {self._topic} --count {self._producers} --messages {self._records_per_producer}" - + for k, v in self._properties.items(): + cmd += f" --properties {k}={v}" try: for line in node.account.ssh_capture(cmd): self.logger.debug(line.rstrip())