in esrally/telemetry.py [0:0]
def __init__(self, telemetry_params, cluster_name, client, metrics_store):
self.logger = logging.getLogger(__name__)
self.logger.info("node stats recorder")
self.sample_interval = telemetry_params.get("node-stats-sample-interval", 1)
if self.sample_interval <= 0:
raise exceptions.SystemSetupError(
f"The telemetry parameter 'node-stats-sample-interval' must be greater than zero but was {self.sample_interval}."
)
self.include_indices = telemetry_params.get("node-stats-include-indices", False)
self.include_indices_metrics = telemetry_params.get("node-stats-include-indices-metrics", False)
if self.include_indices_metrics:
if isinstance(self.include_indices_metrics, str):
self.include_indices_metrics_list = opts.csv_to_list(self.include_indices_metrics)
elif isinstance(self.include_indices_metrics, list):
self.include_indices_metrics_list = self.include_indices_metrics
else:
# we don't validate the allowable metrics as they may change across ES versions
raise exceptions.SystemSetupError(
"The telemetry parameter 'node-stats-include-indices-metrics' must be a comma-separated string"
" or a list but was {}".format(type(self.include_indices_metrics))
)
self.logger.debug("Including indices metrics: %s", self.include_indices_metrics_list)
else:
self.include_indices_metrics_list = [
"docs",
"store",
"indexing",
"search",
"merges",
"refresh",
"flush",
"query_cache",
"fielddata",
"segments",
"translog",
"request_cache",
]
self.include_thread_pools = telemetry_params.get("node-stats-include-thread-pools", True)
self.include_buffer_pools = telemetry_params.get("node-stats-include-buffer-pools", True)
self.include_breakers = telemetry_params.get("node-stats-include-breakers", True)
self.include_network = telemetry_params.get("node-stats-include-network", True)
self.include_process = telemetry_params.get("node-stats-include-process", True)
self.include_mem_stats = telemetry_params.get("node-stats-include-mem", True)
self.include_cgroup_stats = telemetry_params.get("node-stats-include-cgroup", True)
self.include_gc_stats = telemetry_params.get("node-stats-include-gc", True)
self.include_indexing_pressure = telemetry_params.get("node-stats-include-indexing-pressure", True)
self.include_fs_stats = telemetry_params.get("node-stats-include-fs", True)
self.client = client
self.metrics_store = metrics_store
self.cluster_name = cluster_name