scripts: sysmon: break down other processes
BUG=b:255782067
TEST=Ran the unit test.
Change-Id: I08fae4aa58de181374544e51766aa3759ec1f303
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/4242825
Auto-Submit: Congbin Guo <guocb@chromium.org>
Tested-by: Congbin Guo <guocb@chromium.org>
Commit-Queue: Congbin Guo <guocb@chromium.org>
Reviewed-by: Sergey Fetisov <sfetisov@google.com>
diff --git a/scripts/sysmon/proc_metrics.py b/scripts/sysmon/proc_metrics.py
index 25719db..32e12d0 100644
--- a/scripts/sysmon/proc_metrics.py
+++ b/scripts/sysmon/proc_metrics.py
@@ -37,13 +37,20 @@
def __init__(self):
self._metrics = [
+ _ProcessMetric("adb", test_func=partial(_is_process_name, "adb")),
_ProcessMetric("autoserv", test_func=_is_parent_autoserv),
_ProcessMetric(
+ "bbagent", test_func=partial(_is_process_name, "bbagent")
+ ),
+ _ProcessMetric(
"cache-downloader",
test_func=partial(_is_process_name, "downloader"),
),
_ProcessMetric("cipd", test_func=partial(_is_process_name, "cipd")),
_ProcessMetric(
+ "cloudtail", test_func=partial(_is_process_name, "cloudtail")
+ ),
+ _ProcessMetric(
"common-tls", test_func=partial(_is_process_name, "common-tls")
),
_ProcessMetric("curl", test_func=partial(_is_process_name, "curl")),
@@ -66,6 +73,7 @@
),
_ProcessMetric("gsutil", test_func=_is_gsutil),
_ProcessMetric("java", test_func=partial(_is_process_name, "java")),
+ _ProcessMetric("k8s_system", test_func=_is_k8s_system),
_ProcessMetric(
"labservice", test_func=partial(_is_process_name, "labservice")
),
@@ -79,9 +87,16 @@
"podman-pull", test_func=partial(_is_podman, "pull")
),
_ProcessMetric("podman-run", test_func=partial(_is_podman, "run")),
+ _ProcessMetric(
+ "phosphorus", test_func=partial(_is_process_name, "phosphorus")
+ ),
+ _ProcessMetric("recipe", test_func=_is_recipe),
_ProcessMetric("sshd", test_func=partial(_is_process_name, "sshd")),
_ProcessMetric("swarming_bot", test_func=_is_swarming_bot),
_ProcessMetric(
+ "swarming_sub_task", test_func=_is_swarming_sub_task
+ ),
+ _ProcessMetric(
"sysmon",
test_func=partial(_is_python_module, "chromite.scripts.sysmon"),
),
@@ -181,6 +196,21 @@
return proc.name() == name
+def _is_recipe(proc):
+ """Return whether proc is a recipe process.
+
+ An example proc is like
+ '/home/.../bin/python -u -s
+ /home/.../kitchen-checkout/recipe_engine/recipe_engine/main.py ...'.
+ """
+ cmdline = proc.cmdline()
+ return (
+ len(cmdline) >= 4
+ and cmdline[0].endswith("/python")
+ and cmdline[3].endswith("/recipe_engine/main.py")
+ )
+
+
def _is_swarming_bot(proc):
"""Return whether proc is a Swarming bot.
@@ -194,6 +224,20 @@
)
+def _is_swarming_sub_task(proc):
+ """Return whether proc is a Swarming bot sub task.
+
+ An example Swarming sub task:
+ /usr/bin/python3.8 -u /.../swarming_bot.2.zip run_isolated ...
+ """
+ cmdline = proc.cmdline()
+ return (
+ len(cmdline) >= 4
+ and cmdline[0].split("/")[-1].startswith("python")
+ and cmdline[2].split("/")[-1].startswith("swarming_bot.")
+ )
+
+
def _is_gsutil(proc):
"""Return whether proc is gsutil."""
cmdline = proc.cmdline()
@@ -204,6 +248,11 @@
)
+def _is_k8s_system(proc):
+ """Return whether proc is a k8s system process."""
+ return proc.name() in ("kubelet", "kube-proxy")
+
+
def _is_tko_proxy(proc):
"""Return whether proc is a tko proxy.