def _start_node(self, node_configuration, node_count_on_host, java_major_version): host_name = node_configuration.ip node_name = node_configuration.node_name car = node_configuration.car binary_path = node_configuration.binary_path data_paths = node_configuration.data_paths node_telemetry_dir = "%s/telemetry" % node_configuration.node_root_path self.logger.info("Starting node [%s] based on car [%s].", node_name, car) enabled_devices = self.cfg.opts("mechanic", "telemetry.devices") telemetry_params = self.cfg.opts("mechanic", "telemetry.params") node_telemetry = [ telemetry.FlightRecorder(telemetry_params, node_telemetry_dir, java_major_version), telemetry.JitCompiler(node_telemetry_dir), telemetry.Gc(node_telemetry_dir, java_major_version), telemetry.PerfStat(node_telemetry_dir), telemetry.DiskIo(self.metrics_store, node_count_on_host), telemetry.CpuUsage(self.metrics_store), telemetry.NodeEnvironmentInfo(self.metrics_store), telemetry.IndexSize(data_paths, self.metrics_store), telemetry.MergeParts(self.metrics_store, node_configuration.log_path), telemetry.StartupTime(self.metrics_store), ] t = telemetry.Telemetry(enabled_devices, devices=node_telemetry) env = self._prepare_env(car, node_name, t) t.on_pre_node_start(node_name) node_process = self._start_process(env, node_name, binary_path) node = cluster.Node(node_process, host_name, node_name, t) self.logger.info("Node [%s] has successfully started. Attaching telemetry devices.", node_name) t.attach_to_node(node) self.logger.info("Telemetry devices are now attached to node [%s].", node_name) return node
def _start_node(self, node, car, es, binary_path): node_name = self._node_name(node) host_name = socket.gethostname() enabled_devices = self.cfg.opts("mechanic", "telemetry.devices") node_telemetry = [ telemetry.FlightRecorder(self.node_telemetry_dir), telemetry.JitCompiler(self.node_telemetry_dir), telemetry.Gc(self.node_telemetry_dir), telemetry.PerfStat(self.node_telemetry_dir), telemetry.DiskIo(self.metrics_store), telemetry.CpuUsage(self.metrics_store), telemetry.EnvironmentInfo(es, self.metrics_store), ] t = telemetry.Telemetry(enabled_devices, devices=node_telemetry) env = self._prepare_env(car, node_name, t) cmd = self.prepare_cmd(car, node_name) process = self._start_process(cmd, env, node_name, binary_path) node = cluster.Node(process, host_name, node_name, t) logger.info("Cluster node [%s] has successfully started. Attaching telemetry devices to node." % node_name) t.attach_to_node(node) logger.info("Telemetry devices are now attached to node [%s]." % node_name) return node
def _start_node(self, node_configuration, node_count_on_host): host_name = node_configuration.ip node_name = node_configuration.node_name car = node_configuration.car binary_path = node_configuration.binary_path data_paths = node_configuration.data_paths node_telemetry_dir = os.path.join(node_configuration.node_root_path, "telemetry") java_major_version, java_home = java_resolver.java_home(car, self.cfg) self.logger.info("Starting node [%s] based on car [%s].", node_name, car) enabled_devices = self.cfg.opts("mechanic", "telemetry.devices") telemetry_params = self.cfg.opts("mechanic", "telemetry.params") node_telemetry = [ telemetry.FlightRecorder(telemetry_params, node_telemetry_dir, java_major_version), telemetry.JitCompiler(node_telemetry_dir), telemetry.Gc(node_telemetry_dir, java_major_version), telemetry.DiskIo(self.metrics_store, node_count_on_host, node_telemetry_dir, node_name), telemetry.NodeEnvironmentInfo(self.metrics_store), telemetry.IndexSize(data_paths, self.metrics_store), telemetry.StartupTime(self.metrics_store), ] t = telemetry.Telemetry(enabled_devices, devices=node_telemetry) env = self._prepare_env(car, node_name, java_home, t) t.on_pre_node_start(node_name) node_pid = self._start_process(binary_path, env) node = cluster.Node(node_pid, host_name, node_name, t) self.logger.info("Attaching telemetry devices to node [%s].", node_name) t.attach_to_node(node) return node
def local_provisioner(cfg, car, plugins, cluster_settings, all_node_ips, target_root, node_id): distribution_version = cfg.opts("mechanic", "distribution.version", mandatory=False) ip = cfg.opts("provisioning", "node.ip") http_port = cfg.opts("provisioning", "node.http.port") node_name_prefix = cfg.opts("provisioning", "node.name.prefix") preserve = cfg.opts("mechanic", "preserve.install") node_name = "%s-%d" % (node_name_prefix, node_id) node_root_dir = "%s/%s" % (target_root, node_name) _, java_home = java_resolver.java_home(car, cfg) node_telemetry_dir = os.path.join(node_root_dir, "telemetry") java_major_version, java_home = java_resolver.java_home(car, cfg) enabled_devices = cfg.opts("mechanic", "telemetry.devices") telemetry_params = cfg.opts("mechanic", "telemetry.params") node_telemetry = [ telemetry.FlightRecorder(telemetry_params, node_telemetry_dir, java_major_version), telemetry.JitCompiler(node_telemetry_dir), telemetry.Gc(node_telemetry_dir, java_major_version) ] t = telemetry.Telemetry(enabled_devices, devices=node_telemetry) es_installer = ElasticsearchInstaller(car, java_home, node_name, node_root_dir, all_node_ips, ip, http_port) plugin_installers = [ PluginInstaller(plugin, java_home) for plugin in plugins ] return BareProvisioner(cluster_settings, es_installer, plugin_installers, preserve, t, distribution_version=distribution_version)
def _start_node(self, node, car, es): node_name = self._node_name(node) host_name = socket.gethostname() node_telemetry = [ telemetry.FlightRecorder(self.cfg, self.metrics_store), telemetry.JitCompiler(self.cfg, self.metrics_store), telemetry.Gc(self.cfg, self.metrics_store), telemetry.PerfStat(self.cfg, self.metrics_store), telemetry.DiskIo(self.cfg, self.metrics_store), telemetry.CpuUsage(self.cfg, self.metrics_store), telemetry.EnvironmentInfo(self.cfg, es, self.metrics_store), ] t = telemetry.Telemetry(self.cfg, devices=node_telemetry) env = self._prepare_env(car, node_name, t) cmd = self.prepare_cmd(car, node_name) process = self._start_process(cmd, env, node_name) node = cluster.Node(process, host_name, node_name, t) t.attach_to_node(node) return node