forked from TrueCloudLab/frostfs-testlib
[#220] add container metrics
This commit is contained in:
parent
9c9fb7878a
commit
b4b530e643
2 changed files with 25 additions and 0 deletions
|
@ -14,6 +14,7 @@ from frostfs_testlib.storage.dataclasses.frostfs_services import HTTPGate, Inner
|
||||||
from frostfs_testlib.storage.dataclasses.node_base import NodeBase, ServiceClass
|
from frostfs_testlib.storage.dataclasses.node_base import NodeBase, ServiceClass
|
||||||
from frostfs_testlib.storage.dataclasses.storage_object_info import Interfaces
|
from frostfs_testlib.storage.dataclasses.storage_object_info import Interfaces
|
||||||
from frostfs_testlib.storage.service_registry import ServiceRegistry
|
from frostfs_testlib.storage.service_registry import ServiceRegistry
|
||||||
|
from frostfs_testlib.storage.dataclasses.metrics import Metrics
|
||||||
|
|
||||||
|
|
||||||
class ClusterNode:
|
class ClusterNode:
|
||||||
|
@ -24,11 +25,13 @@ class ClusterNode:
|
||||||
class_registry: ServiceRegistry
|
class_registry: ServiceRegistry
|
||||||
id: int
|
id: int
|
||||||
host: Host
|
host: Host
|
||||||
|
metrics: Metrics
|
||||||
|
|
||||||
def __init__(self, host: Host, id: int) -> None:
|
def __init__(self, host: Host, id: int) -> None:
|
||||||
self.host = host
|
self.host = host
|
||||||
self.id = id
|
self.id = id
|
||||||
self.class_registry = get_service_registry()
|
self.class_registry = get_service_registry()
|
||||||
|
self.metrics = Metrics(host=self.host, metrics_endpoint=self.storage_node.get_metrics_endpoint())
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def host_ip(self):
|
def host_ip(self):
|
||||||
|
|
22
src/frostfs_testlib/storage/dataclasses/metrics.py
Normal file
22
src/frostfs_testlib/storage/dataclasses/metrics.py
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
from frostfs_testlib.hosting import Host
|
||||||
|
from frostfs_testlib.shell.interfaces import CommandResult
|
||||||
|
|
||||||
|
|
||||||
|
class Metrics:
|
||||||
|
def __init__(self, host: Host, metrics_endpoint: str) -> None:
|
||||||
|
self.storage = StorageMetrics(host, metrics_endpoint)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class StorageMetrics:
|
||||||
|
"""
|
||||||
|
Class represents storage metrics in a cluster
|
||||||
|
"""
|
||||||
|
def __init__(self, host: Host, metrics_endpoint: str) -> None:
|
||||||
|
self.host = host
|
||||||
|
self.metrics_endpoint = metrics_endpoint
|
||||||
|
|
||||||
|
def get_metric_container(self, metric: str, cid: str) -> CommandResult:
|
||||||
|
shell = self.host.get_shell()
|
||||||
|
result = shell.exec(f"curl -s {self.metrics_endpoint} | grep {metric} |grep {cid}")
|
||||||
|
return result
|
Loading…
Reference in a new issue