[Stats] Metrics Export User Interface Part 1 (#9913)

* Metrics export port expose done.

* Support exposing metrics port + metrics agent service discovery through ray.nodes()

* Formatting.

* Added a doc.

* Linting.

* Change the location of metrics agent port.

* Addressed code review.

* Addressed code review.
This commit is contained in:
SangBin Cho
2020-08-06 16:16:29 -07:00
committed by GitHub
parent eace94d2dc
commit ec2f1a225e
26 changed files with 322 additions and 51 deletions
+15 -1
View File
@@ -103,12 +103,17 @@ class Node:
head), "LRU Evict can only be passed into the head node."
self._raylet_ip_address = raylet_ip_address
self.metrics_agent_port = self._get_unused_port()[0]
self._metrics_export_port = ray_params.metrics_export_port
if self._metrics_export_port is None:
self._metrics_export_port = self._get_unused_port()[0]
ray_params.update_if_absent(
include_log_monitor=True,
resources={},
temp_dir=ray.utils.get_ray_temp_dir(),
metrics_agent_port=self._get_unused_port()[0],
metrics_agent_port=self.metrics_agent_port,
metrics_export_port=self._metrics_export_port,
worker_path=os.path.join(
os.path.dirname(os.path.abspath(__file__)),
"workers/default_worker.py"))
@@ -318,6 +323,11 @@ class Node:
"""Get the node manager's port."""
return self._ray_params.node_manager_port
@property
def metrics_export_port(self):
"""Get the port that exposes metrics"""
return self._metrics_export_port
@property
def socket(self):
"""Get the socket reserving the node manager's port"""
@@ -337,6 +347,7 @@ class Node:
"raylet_socket_name": self._raylet_socket_name,
"webui_url": self._webui_url,
"session_dir": self._session_dir,
"metrics_export_port": self._metrics_export_port
}
def create_redis_client(self):
@@ -561,9 +572,11 @@ class Node:
"""Start the reporter."""
stdout_file, stderr_file = self.get_log_file_handles(
"reporter", unique=True)
process_info = ray.services.start_reporter(
self.redis_address,
self._ray_params.metrics_agent_port,
self._metrics_export_port,
stdout_file=stdout_file,
stderr_file=stderr_file,
redis_password=self._ray_params.redis_password,
@@ -667,6 +680,7 @@ class Node:
self._ray_params.object_manager_port,
self._ray_params.redis_password,
self._ray_params.metrics_agent_port,
self._metrics_export_port,
use_valgrind=use_valgrind,
use_profiler=use_profiler,
stdout_file=stdout_file,