Skip to content

Commit 42b6779

Browse files
feat: add statistics workload (#24798)
Added statistics workload to nemesis CI Refs: #24043
1 parent b6cc900 commit 42b6779

File tree

4 files changed

+52
-0
lines changed

4 files changed

+52
-0
lines changed
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import time
2+
import pytest
3+
from .workload_executor import WorkloadTestBase
4+
from ydb.tests.olap.lib.ydb_cluster import YdbCluster
5+
from ydb.tests.olap.lib.utils import get_external_param
6+
7+
import logging
8+
LOGGER = logging.getLogger(__name__)
9+
10+
11+
class WorkloadStatisticsBase(WorkloadTestBase):
12+
workload_binary_name = 'statistics_workload'
13+
workload_env_var = 'STATISTICS_WORKLOAD_BINARY'
14+
15+
@pytest.mark.parametrize(
16+
'nemesis_enabled', [True, False],
17+
ids=['nemesis_true', 'nemesis_false']
18+
)
19+
def test_workload_statistics(self, nemesis_enabled: bool):
20+
command_args_template = (
21+
"--host {node_host} "
22+
"--port 2135 "
23+
f"--database /{YdbCluster.ydb_database} "
24+
"--prefix statistics_workload_{node_host}_iter_{iteration_num}_{uuid} "
25+
)
26+
27+
additional_stats = {
28+
"workload_type": "statistics",
29+
"statistics_template": "workload_statistics_{node_host}_iter_{iteration_num}_{uuid}",
30+
"nemesis": nemesis_enabled,
31+
"test_timestamp": int(time.time()),
32+
}
33+
34+
self.execute_workload_test(
35+
workload_name=f"StatisticsWorkload_nemesis_{nemesis_enabled}",
36+
command_args=command_args_template,
37+
duration_value=self.timeout,
38+
additional_stats=additional_stats,
39+
use_chunks=True,
40+
duration_param="--duration",
41+
nemesis=nemesis_enabled,
42+
nodes_percentage=100
43+
)
44+
45+
46+
class TestWorkloadStatistics(WorkloadStatisticsBase):
47+
timeout = int(get_external_param('workload_duration', 120))

ydb/tests/olap/load/lib/ya.make

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ PY3_LIBRARY()
2424
workload_reconfig_state_storage.py
2525
workload_show_create.py
2626
workload_cdc.py
27+
workload_statistics.py
2728
upload.py
2829

2930
)
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
from ydb.tests.olap.load.lib.workload_statistics import * # noqa

ydb/tests/olap/load/ya.make

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ PY3TEST()
2020
ENV(RECONFIG_STATE_STORAGE_WORKLOAD_BINARY="ydb/tests/stress/reconfig_state_storage_workload/reconfig_state_storage_workload")
2121
ENV(SHOW_CREATE_WORKLOAD_BINARY="ydb/tests/stress/show_create/view/show_create_view")
2222
ENV(CDC_WORKLOAD_BINARY="ydb/tests/stress/cdc/cdc")
23+
ENV(STATISTICS_WORKLOAD_BINARY="ydb/tests/stress/statistics_workload/statistics_workload")
2324
ENV(NEMESIS_BINARY="ydb/tests/tools/nemesis/driver/nemesis")
2425

2526
TEST_SRCS (
@@ -45,6 +46,7 @@ PY3TEST()
4546
test_workload_reconfig_state_storage.py
4647
test_workload_show_create.py
4748
test_workload_cdc.py
49+
test_workload_statistics.py
4850
)
4951

5052
PEERDIR (
@@ -69,6 +71,7 @@ PY3TEST()
6971
ydb/tests/stress/reconfig_state_storage_workload
7072
ydb/tests/stress/show_create/view
7173
ydb/tests/stress/cdc
74+
ydb/tests/stress/statistics_workload
7275
ydb/tests/tools/nemesis/driver
7376
)
7477
ENDIF()

0 commit comments

Comments
 (0)