diff --git a/esrally/telemetry.py b/esrally/telemetry.py index 44ec2e387..24f551478 100644 --- a/esrally/telemetry.py +++ b/esrally/telemetry.py @@ -2331,3 +2331,7 @@ def handle_telemetry_usage(self, response): term_vectors = field_info.get("term_vectors_in_bytes", 0) if term_vectors > 0: self.metrics_store.put_value_cluster_level("disk_usage_term_vectors", term_vectors, meta_data=meta, unit="byte") + + knn_vectors = field_info.get("knn_vectors_in_bytes", 0) + if knn_vectors > 0: + self.metrics_store.put_value_cluster_level("disk_usage_knn_vectors", knn_vectors, meta_data=meta, unit="byte") diff --git a/tests/telemetry_test.py b/tests/telemetry_test.py index e43f8b799..fbc4bcffc 100644 --- a/tests/telemetry_test.py +++ b/tests/telemetry_test.py @@ -4680,5 +4680,28 @@ def test_keyword(self, metrics_store_cluster_level): self._mock_store("disk_usage_points", 18, "station.country_code"), ] + @mock.patch("esrally.metrics.EsMetricsStore.put_value_cluster_level") + def test_indexed_vector(self, metrics_store_cluster_level): + cfg = create_config() + metrics_store = metrics.EsMetricsStore(cfg) + es = Client( + transport_client=TransportClient( + response={ + "_shards": {"failed": 0}, + "foo": { + "fields": {"title_vector": {"total_in_bytes": 64179820, "doc_values_in_bytes": 0, "knn_vectors_in_bytes": 64179820}} + }, + } + ) + ) + device = telemetry.DiskUsageStats({}, es, metrics_store, index_names=["foo"], data_stream_names=[]) + t = telemetry.Telemetry(enabled_devices=[device.command], devices=[device]) + t.on_benchmark_start() + t.on_benchmark_stop() + assert metrics_store_cluster_level.mock_calls == [ + self._mock_store("disk_usage_total", 64179820, "title_vector"), + self._mock_store("disk_usage_knn_vectors", 64179820, "title_vector"), + ] + def _mock_store(self, name, size, field): return mock.call(name, size, meta_data={"index": "foo", "field": field}, unit="byte")