forked from TrueCloudLab/frostfs-testcases
40 lines
2 KiB
Python
40 lines
2 KiB
Python
import allure
|
|
from frostfs_testlib.testing import parallel
|
|
import pytest
|
|
from frostfs_testlib import reporter
|
|
from frostfs_testlib.steps.metrics import get_metrics_value
|
|
from frostfs_testlib.storage.cluster import ClusterNode
|
|
from frostfs_testlib.testing.cluster_test_base import ClusterTestBase
|
|
|
|
|
|
@pytest.mark.order(-11)
|
|
@pytest.mark.nightly
|
|
@pytest.mark.metrics
|
|
class TestEpochMetrics(ClusterTestBase):
|
|
@reporter.step("Get metrics value from node: {node}")
|
|
def get_metrics_search_by_greps_parallel(self, node: ClusterNode, **greps):
|
|
try:
|
|
return get_metrics_value(node, parse_from_command=True, **greps)
|
|
except Exception as e:
|
|
return None
|
|
|
|
@allure.title("Check changes in metric frostfs_node_ir_epoch value")
|
|
def test_check_increase_epoch_metric(self):
|
|
metric_name = "frostfs_node_ir_epoch"
|
|
with reporter.step("Get current value of metric: {metric_name} from each nodes"):
|
|
futures = parallel(self.get_metrics_search_by_greps_parallel, self.cluster.cluster_nodes, command=metric_name)
|
|
metrics_results = [future.result() for future in futures if future.result() is not None]
|
|
|
|
with reporter.step("Check that the metric values are the same in all nodes"):
|
|
assert len(set(metrics_results)) == 1, f"Metric {metric_name} values aren't same in all nodes"
|
|
assert len(metrics_results) == len(self.cluster.cluster_nodes), "Metrics are not available in some nodes"
|
|
|
|
with reporter.step("Tick epoch"):
|
|
self.tick_epoch(wait_block=2)
|
|
|
|
with reporter.step('Check that metric value increase'):
|
|
futures = parallel(self.get_metrics_search_by_greps_parallel, self.cluster.cluster_nodes, command=metric_name)
|
|
new_metrics_results = [future.result() for future in futures if future.result() is not None]
|
|
|
|
assert len(set(new_metrics_results)) == 1, f"Metric {metric_name} values aren't same in all nodes"
|
|
assert new_metrics_results[0] > metrics_results[0], "Metric value doesn't increased"
|