Skip to content

Commit dec2a7c

Browse files
committed
include cluster spec names in prometheus snapshots metadata
Change-Id: If6121153f820b1480bd7e2f074a1b9080b128f8a Reviewed-on: https://review.couchbase.org/c/perfrunner/+/245390 Reviewed-by: Salim Salim <salim.salim@couchbase.com> Reviewed-by: Daniel Nagy <daniel.nagy@couchbase.com> Tested-by: Build Bot <build@couchbase.com>
1 parent 3507c8a commit dec2a7c

4 files changed

Lines changed: 22 additions & 3 deletions

File tree

perfrunner/helpers/cluster.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,10 @@ def rename(self):
262262
for server in self.cluster_spec.servers:
263263
self.rest.rename(server)
264264

265+
for cluster_spec_name, servers in self.cluster_spec.clusters:
266+
renamed_cluster = self.cluster_spec.cbmonitor_snapshot_cluster_name(cluster_spec_name)
267+
self.rest.set_cluster_name(servers[0], renamed_cluster)
268+
265269
def set_auth(self):
266270
for server in self.cluster_spec.servers:
267271
self.rest.set_auth(server)

perfrunner/helpers/rest.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,13 @@ def set_auth(self, host: str):
182182
data = {"username": self.rest_username, "password": self.rest_password, "port": "SAME"}
183183
self.post(url=api, data=data)
184184

185+
def set_cluster_name(self, host: str, cluster_name: str):
186+
logger.info(f"Configuring cluster object name on {host}: {cluster_name}")
187+
188+
api = self._get_api_url(host=host, path="pools/default")
189+
data = {"clusterName": cluster_name}
190+
self.post(url=api, data=data)
191+
185192
def rename(self, host: str, new_host: str = None):
186193
new_host = new_host or host
187194
logger.info(f"Changing server name: {host} -> {new_host}")

perfrunner/settings.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -761,6 +761,13 @@ def parameters(self) -> dict:
761761
with ClusterMetadataFile(self.csp) as metadata_file:
762762
return metadata_file.get_parameters(cluster_name, overrides)
763763

764+
def cbmonitor_snapshot_cluster_name(self, cluster_spec_name: str) -> str:
765+
"""Build a stable cluster name for cbmonitor snapshot metadata.
766+
767+
Uses the parsed spec filename stem and the cluster section key.
768+
"""
769+
return f"{self.name}_{cluster_spec_name}"
770+
764771
@property
765772
def capella_cluster_ids(self) -> list[str]:
766773
return [

perfrunner/tests/__init__.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -114,9 +114,10 @@ def init_metrics_and_collector_agent(self):
114114
logger.info("Using Prometheus to collect metrics")
115115
self.collector_agent = PrometheusAgent(self.cluster_spec, self.stats_settings, self.rest)
116116
self.cbmonitor_snapshots.append(self.collector_agent.snapshot_id)
117-
self.cbmonitor_clusters.append(
118-
self.cluster_spec.name
119-
) # We dont use this when using Prometheus, just here for compatibility with the old store
117+
for cluster_name, _ in self.cluster_spec.clusters:
118+
self.cbmonitor_clusters.append(
119+
self.cluster_spec.cbmonitor_snapshot_cluster_name(cluster_name)
120+
)
120121

121122
self.metrics = PrometheusMetricsHelper(self)
122123

0 commit comments

Comments
 (0)