fix benchmarks, broken by PR #3737

Benchmarks only run on `main` branch, so, the pre-commit tests didn't
catch these.
This commit is contained in:
Christian Schwarz
2023-03-03 17:53:43 +01:00
committed by Christian Schwarz
parent 66a5159511
commit 9cada8b59d
2 changed files with 14 additions and 9 deletions

View File

@@ -354,20 +354,25 @@ class NeonBenchmarker:
"""
Fetch the "cumulative # of bytes written" metric from the pageserver
"""
metric_name = r'libmetrics_disk_io_bytes_total{io_operation="write"}'
return self.get_int_counter_value(pageserver, metric_name)
return self.get_int_counter_value(
pageserver, "libmetrics_disk_io_bytes_total", {"io_operation": "write"}
)
def get_peak_mem(self, pageserver: NeonPageserver) -> int:
"""
Fetch the "maxrss" metric from the pageserver
"""
metric_name = r"libmetrics_maxrss_kb"
return self.get_int_counter_value(pageserver, metric_name)
return self.get_int_counter_value(pageserver, "libmetrics_maxrss_kb")
def get_int_counter_value(self, pageserver: NeonPageserver, metric_name: str) -> int:
def get_int_counter_value(
self,
pageserver: NeonPageserver,
metric_name: str,
label_filters: Optional[Dict[str, str]] = None,
) -> int:
"""Fetch the value of given int counter from pageserver metrics."""
all_metrics = pageserver.http_client().get_metrics()
sample = all_metrics.query_one(metric_name)
sample = all_metrics.query_one(metric_name, label_filters)
return int(round(sample.value))
def get_timeline_size(

View File

@@ -144,12 +144,12 @@ class NeonCompare(PgCompare):
"size", timeline_size / (1024 * 1024), "MB", report=MetricReport.LOWER_IS_BETTER
)
params = f'{{tenant_id="{self.tenant}",timeline_id="{self.timeline}"}}'
metric_filters = {"tenant_id": str(self.tenant), "timeline_id": str(self.timeline)}
total_files = self.zenbenchmark.get_int_counter_value(
self.env.pageserver, "pageserver_created_persistent_files_total" + params
self.env.pageserver, "pageserver_created_persistent_files_total", metric_filters
)
total_bytes = self.zenbenchmark.get_int_counter_value(
self.env.pageserver, "pageserver_written_persistent_bytes_total" + params
self.env.pageserver, "pageserver_written_persistent_bytes_total", metric_filters
)
self.zenbenchmark.record(
"data_uploaded", total_bytes / (1024 * 1024), "MB", report=MetricReport.LOWER_IS_BETTER