in modules/python/clusterloader2/cri/cri.py [0:0]
def verify_measurement():
client = KubernetesClient(os.path.expanduser("~/.kube/config"))
nodes = client.get_nodes(label_selector="cri-resource-consume=true")
user_pool = [node.metadata.name for node in nodes]
logger.info(f"User pool: {user_pool}")
# Create an API client
api_client = k8s_client.ApiClient()
for node_name in user_pool:
url = f"/api/v1/nodes/{node_name}/proxy/metrics"
try:
response = api_client.call_api(
resource_path=url,
method="GET",
auth_settings=['BearerToken'],
response_type="str",
_preload_content=True
)
metrics = response[0] # The first item contains the response data
filtered_metrics = "\n".join(
line for line in metrics.splitlines() if line.startswith("kubelet_pod_start") or line.startswith("kubelet_runtime_operations")
)
logger.info("##[section]Metrics for node:", node_name) # pylint: disable=logging-too-many-args
logger.info(filtered_metrics) # pylint: disable=logging-too-many-args
except k8s_client.ApiException as e:
logger.error(f"Error fetching metrics: {e}")