Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions agent/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ INSTALLOPTS = --directory
# all the scripts that's fit to install
util-scripts = \
cdm-get-iterations \
get-internal-tool \
pbench-add-metalog-option \
pbench-avg-stddev \
pbench-copy-results \
Expand Down
1 change: 1 addition & 0 deletions agent/tool-scripts/meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
"numastat": null,
"oc": null,
"openvswitch": null,
"pcp-transient": null,
"perf": null,
"pidstat": null,
"pprof": null,
Expand Down
22 changes: 22 additions & 0 deletions agent/tool-scripts/pcp-transient
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#!/usr/bin/python3
# -*- mode: python -*-

import os
import sys

PROG = os.path.basename(sys.argv[0])

if len(sys.argv) != 2 or sys.argv[1] != "--help":
print(
f"{PROG}: This script is deprecated, please run it with --help for info on registering the tool.",
file=sys.stderr,
)
print(
f"{PROG}: Run {os.path.abspath(__file__)} --help for more info.",
file=sys.stderr,
)
sys.exit(1)

if sys.argv[1] == "--help":
print(f"{PROG}: Options:", file=sys.stdout)
print(f"{PROG}: No tool-specific options currently", file=sys.stdout)
41 changes: 41 additions & 0 deletions agent/util-scripts/get-internal-tool
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
#!/usr/bin/env python3
# -*- mode: python -*-

import sys
import json
import argparse
from pathlib import Path


def exit_script(message):
print(message, file=sys.stderr)
sys.exit(1)


# Establishing script positional arguments
parser = argparse.ArgumentParser(
description="Get the internal name of an existing tool given its type."
)
parser.add_argument("metadata_location")
parser.add_argument("tool_name")
parser.add_argument("tool_type", choices=["persistent", "transient"])
args = parser.parse_args()

# Assigning received arguments for check/use
meta_loc = Path(args.metadata_location)
name = args.tool_name
tool_type = args.tool_type

# Check for valid metadata location
try:
meta = json.load(open(meta_loc / "meta.json"))
except Exception as exc:
exit_script(f"Failed to load tool metadata: {exc}")

# Find potential name, then check if valid
if name not in meta[tool_type].keys():
name = name + "-" + tool_type
if name not in meta[tool_type].keys():
exit_script(f"{name} is not an existing tool option")

print(name)
9 changes: 7 additions & 2 deletions agent/util-scripts/gold/pbench-register-tool/test-44.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
+++ Running test-44 pbench-register-tool --name=mpstat --no-install --remotes=@/var/tmp/pbench-test-utils/pbench/tmp/doesntexist.lis
[error][1900-01-01T00:00:00.000000] --remotes=@/var/tmp/pbench-test-utils/pbench/tmp/doesntexist.lis specifies a file that does not exist
usage:
pbench-register-tool --name=<tool-name> [--group=<group-name>] [--no-install] [--remotes=<remote-host>[,<remote-host>]] [--labels=<label>[,<label>]] -- [all tool specific options here]
pbench-register-tool --name=<tool-name> [--group=<group-name>] [--no-install] [--remotes=@<remotes-file>] -- [all tool specific options here]
pbench-register-tool --name=<tool-name> [--group=<group-name>] [--no-install] [--persistent] [--transient] [--remotes=<remote-host>[,<remote-host>]] [--labels=<label>[,<label>]] -- [all tool specific options here]
pbench-register-tool --name=<tool-name> [--group=<group-name>] [--no-install] [--persistent] [--transient] [--remotes=@<remotes-file>] -- [all tool specific options here]

Where the list of labels must match the list of remotes, one label per
host.
Expand All @@ -15,7 +15,10 @@ pbench-register-tool --name=<tool-name> [--group=<group-name>] [--no-install] [-
separated by a comma (","); empty lines are ignored, and comments are
denoted by a leading hash, or pound ("#"), character.

--persistent or --transient can be used to specify tool run type.

Available tools:
Transient:
blktrace
bpftrace
cpuacct
Expand All @@ -36,6 +39,7 @@ Available tools:
numastat
oc
openvswitch
pcp-transient
perf
pidstat
pprof
Expand All @@ -54,6 +58,7 @@ Available tools:
user-tool
virsh-migrate
vmstat
Persistent:
node-exporter
dcgm
pcp
Expand Down
9 changes: 7 additions & 2 deletions agent/util-scripts/gold/pbench-register-tool/test-46.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
+++ Running test-46 pbench-register-tool --name=mpstat --no-install --remotes=@/var/tmp/pbench-test-utils/pbench/tmp/remotes.lis
[error][1900-01-01T00:00:00.000000] --remotes=@/var/tmp/pbench-test-utils/pbench/tmp/remotes.lis contains an invalid file format, expected lines with "<hostname>[,<label>]" at line #4
usage:
pbench-register-tool --name=<tool-name> [--group=<group-name>] [--no-install] [--remotes=<remote-host>[,<remote-host>]] [--labels=<label>[,<label>]] -- [all tool specific options here]
pbench-register-tool --name=<tool-name> [--group=<group-name>] [--no-install] [--remotes=@<remotes-file>] -- [all tool specific options here]
pbench-register-tool --name=<tool-name> [--group=<group-name>] [--no-install] [--persistent] [--transient] [--remotes=<remote-host>[,<remote-host>]] [--labels=<label>[,<label>]] -- [all tool specific options here]
pbench-register-tool --name=<tool-name> [--group=<group-name>] [--no-install] [--persistent] [--transient] [--remotes=@<remotes-file>] -- [all tool specific options here]

Where the list of labels must match the list of remotes, one label per
host.
Expand All @@ -15,7 +15,10 @@ pbench-register-tool --name=<tool-name> [--group=<group-name>] [--no-install] [-
separated by a comma (","); empty lines are ignored, and comments are
denoted by a leading hash, or pound ("#"), character.

--persistent or --transient can be used to specify tool run type.

Available tools:
Transient:
blktrace
bpftrace
cpuacct
Expand All @@ -36,6 +39,7 @@ Available tools:
numastat
oc
openvswitch
pcp-transient
perf
pidstat
pprof
Expand All @@ -54,6 +58,7 @@ Available tools:
user-tool
virsh-migrate
vmstat
Persistent:
node-exporter
dcgm
pcp
Expand Down
9 changes: 7 additions & 2 deletions agent/util-scripts/gold/pbench-register-tool/test-47.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
+++ Running test-47 pbench-register-tool --name=mpstat --no-install --remotes=@/var/tmp/pbench-test-utils/pbench/tmp/remotes.lis --labels=labelOne,labelTwo
[error][1900-01-01T00:00:00.000000] --labels=labelOne,labelTwo not allowed with remotes file (@/var/tmp/pbench-test-utils/pbench/tmp/remotes.lis)
usage:
pbench-register-tool --name=<tool-name> [--group=<group-name>] [--no-install] [--remotes=<remote-host>[,<remote-host>]] [--labels=<label>[,<label>]] -- [all tool specific options here]
pbench-register-tool --name=<tool-name> [--group=<group-name>] [--no-install] [--remotes=@<remotes-file>] -- [all tool specific options here]
pbench-register-tool --name=<tool-name> [--group=<group-name>] [--no-install] [--persistent] [--transient] [--remotes=<remote-host>[,<remote-host>]] [--labels=<label>[,<label>]] -- [all tool specific options here]
pbench-register-tool --name=<tool-name> [--group=<group-name>] [--no-install] [--persistent] [--transient] [--remotes=@<remotes-file>] -- [all tool specific options here]

Where the list of labels must match the list of remotes, one label per
host.
Expand All @@ -15,7 +15,10 @@ pbench-register-tool --name=<tool-name> [--group=<group-name>] [--no-install] [-
separated by a comma (","); empty lines are ignored, and comments are
denoted by a leading hash, or pound ("#"), character.

--persistent or --transient can be used to specify tool run type.

Available tools:
Transient:
blktrace
bpftrace
cpuacct
Expand All @@ -36,6 +39,7 @@ Available tools:
numastat
oc
openvswitch
pcp-transient
perf
pidstat
pprof
Expand All @@ -54,6 +58,7 @@ Available tools:
user-tool
virsh-migrate
vmstat
Persistent:
node-exporter
dcgm
pcp
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ install_check_output = perf: perf is installed
+++ mock-run/tm/pbench-tool-data-sink.err file contents
DEBUG pbench-tool-data-sink daemon -- re-constructing Redis server object
DEBUG pbench-tool-data-sink daemon -- reconstructed Redis server object
DEBUG pbench-tool-data-sink driver -- params_key (tds-default): {'benchmark_run_dir': '/var/tmp/pbench-test-utils/pbench/mock-run', 'bind_hostname': 'localhost', 'channel_prefix': 'pbench-agent-cli', 'group': 'default', 'optional_md': {'config': '', 'date': '1900-01-01T00:00:00', 'script': 'fake-bm', 'ssh_opts': '-o StrictHostKeyChecking=no'}, 'tool_metadata': {'persistent': {'dcgm': {'collector': 'prometheus', 'port': '9400'}, 'node-exporter': {'collector': 'prometheus', 'port': '9100'}, 'pcp': {'collector': 'pcp', 'port': '44321'}}, 'transient': {'blktrace': None, 'bpftrace': None, 'cpuacct': None, 'disk': None, 'dm-cache': None, 'docker': None, 'docker-info': None, 'external-data-source': None, 'haproxy-ocp': None, 'iostat': None, 'jmap': None, 'jstack': None, 'kvm-spinlock': None, 'kvmstat': None, 'kvmtrace': None, 'lockstat': None, 'mpstat': None, 'numastat': None, 'oc': None, 'openvswitch': None, 'perf': None, 'pidstat': None, 'pprof': None, 'proc-interrupts': None, 'proc-sched_debug': None, 'proc-vmstat': None, 'prometheus-metrics': None, 'qemu-migrate': None, 'rabbit': None, 'sar': None, 'strace': None, 'sysfs': None, 'systemtap': None, 'tcpdump': None, 'turbostat': None, 'user-tool': None, 'virsh-migrate': None, 'vmstat': None}}, 'tool_trigger': None, 'tools': {'testhost.example.com': {'mpstat': '', 'perf': '--record-opts="-a -freq=100 -g --event=branch-misses --event=cache-misses --event=instructions" --report-opts="-I -g"'}}}
DEBUG pbench-tool-data-sink driver -- params_key (tds-default): {'benchmark_run_dir': '/var/tmp/pbench-test-utils/pbench/mock-run', 'bind_hostname': 'localhost', 'channel_prefix': 'pbench-agent-cli', 'group': 'default', 'optional_md': {'config': '', 'date': '1900-01-01T00:00:00', 'script': 'fake-bm', 'ssh_opts': '-o StrictHostKeyChecking=no'}, 'tool_metadata': {'persistent': {'dcgm': {'collector': 'prometheus', 'port': '9400'}, 'node-exporter': {'collector': 'prometheus', 'port': '9100'}, 'pcp': {'collector': 'pcp', 'port': '44321'}}, 'transient': {'blktrace': None, 'bpftrace': None, 'cpuacct': None, 'disk': None, 'dm-cache': None, 'docker': None, 'docker-info': None, 'external-data-source': None, 'haproxy-ocp': None, 'iostat': None, 'jmap': None, 'jstack': None, 'kvm-spinlock': None, 'kvmstat': None, 'kvmtrace': None, 'lockstat': None, 'mpstat': None, 'numastat': None, 'oc': None, 'openvswitch': None, 'pcp-transient': None, 'perf': None, 'pidstat': None, 'pprof': None, 'proc-interrupts': None, 'proc-sched_debug': None, 'proc-vmstat': None, 'prometheus-metrics': None, 'qemu-migrate': None, 'rabbit': None, 'sar': None, 'strace': None, 'sysfs': None, 'systemtap': None, 'tcpdump': None, 'turbostat': None, 'user-tool': None, 'virsh-migrate': None, 'vmstat': None}}, 'tool_trigger': None, 'tools': {'testhost.example.com': {'mpstat': '', 'perf': '--record-opts="-a -freq=100 -g --event=branch-misses --event=cache-misses --event=instructions" --report-opts="-I -g"'}}}
INFO pbench-tool-data-sink web_server_run -- Running Bottle web server ...
Bottle v#.##.## server starting up (using DataSinkWsgiServer(handler_class=<class 'pbench.agent.tool_data_sink.DataSinkWsgiServer.__init__.<locals>.DataSinkWsgiRequestHandler'>))...
Listening on http://localhost:8080/
Expand Down Expand Up @@ -193,7 +193,7 @@ port 17001
+++ mock-run/tm/tm-default-testhost.example.com.err file contents
DEBUG pbench-tool-meister daemon -- re-constructing Redis server object
DEBUG pbench-tool-meister daemon -- re-constructed Redis server object
DEBUG pbench-tool-meister driver -- params_key (tm-default-testhost.example.com): {'benchmark_run_dir': '/var/tmp/pbench-test-utils/pbench/mock-run', 'channel_prefix': 'pbench-agent-cli', 'controller': 'testhost.example.com', 'group': 'default', 'hostname': 'testhost.example.com', 'label': '', 'tool_metadata': {'persistent': {'dcgm': {'collector': 'prometheus', 'port': '9400'}, 'node-exporter': {'collector': 'prometheus', 'port': '9100'}, 'pcp': {'collector': 'pcp', 'port': '44321'}}, 'transient': {'blktrace': None, 'bpftrace': None, 'cpuacct': None, 'disk': None, 'dm-cache': None, 'docker': None, 'docker-info': None, 'external-data-source': None, 'haproxy-ocp': None, 'iostat': None, 'jmap': None, 'jstack': None, 'kvm-spinlock': None, 'kvmstat': None, 'kvmtrace': None, 'lockstat': None, 'mpstat': None, 'numastat': None, 'oc': None, 'openvswitch': None, 'perf': None, 'pidstat': None, 'pprof': None, 'proc-interrupts': None, 'proc-sched_debug': None, 'proc-vmstat': None, 'prometheus-metrics': None, 'qemu-migrate': None, 'rabbit': None, 'sar': None, 'strace': None, 'sysfs': None, 'systemtap': None, 'tcpdump': None, 'turbostat': None, 'user-tool': None, 'virsh-migrate': None, 'vmstat': None}}, 'tools': {'mpstat': '', 'perf': '--record-opts="-a -freq=100 -g --event=branch-misses --event=cache-misses --event=instructions" --report-opts="-I -g"'}}
DEBUG pbench-tool-meister driver -- params_key (tm-default-testhost.example.com): {'benchmark_run_dir': '/var/tmp/pbench-test-utils/pbench/mock-run', 'channel_prefix': 'pbench-agent-cli', 'controller': 'testhost.example.com', 'group': 'default', 'hostname': 'testhost.example.com', 'label': '', 'tool_metadata': {'persistent': {'dcgm': {'collector': 'prometheus', 'port': '9400'}, 'node-exporter': {'collector': 'prometheus', 'port': '9100'}, 'pcp': {'collector': 'pcp', 'port': '44321'}}, 'transient': {'blktrace': None, 'bpftrace': None, 'cpuacct': None, 'disk': None, 'dm-cache': None, 'docker': None, 'docker-info': None, 'external-data-source': None, 'haproxy-ocp': None, 'iostat': None, 'jmap': None, 'jstack': None, 'kvm-spinlock': None, 'kvmstat': None, 'kvmtrace': None, 'lockstat': None, 'mpstat': None, 'numastat': None, 'oc': None, 'openvswitch': None, 'pcp-transient': None, 'perf': None, 'pidstat': None, 'pprof': None, 'proc-interrupts': None, 'proc-sched_debug': None, 'proc-vmstat': None, 'prometheus-metrics': None, 'qemu-migrate': None, 'rabbit': None, 'sar': None, 'strace': None, 'sysfs': None, 'systemtap': None, 'tcpdump': None, 'turbostat': None, 'user-tool': None, 'virsh-migrate': None, 'vmstat': None}}, 'tools': {'mpstat': '', 'perf': '--record-opts="-a -freq=100 -g --event=branch-misses --event=cache-misses --event=instructions" --report-opts="-I -g"'}}
DEBUG pbench-tool-meister __enter__ -- publish pbench-agent-cli-from-tms
DEBUG pbench-tool-meister __enter__ -- published pbench-agent-cli-from-tms
DEBUG pbench-tool-meister driver -- waiting ...
Expand Down Expand Up @@ -225,7 +225,7 @@ DEBUG pbench-tool-meister _send_client_status -- publish pbench-agent-cli-from-t
--- mock-run/tm/tm-default-testhost.example.com.out file contents
+++ mock-run/tm/tm.logs file contents
pbench-tool-meister-start - verify logging channel up
testhost.example.com 0000 DEBUG pbench-tool-meister driver -- params_key (tm-default-testhost.example.com): {'benchmark_run_dir': '/var/tmp/pbench-test-utils/pbench/mock-run', 'channel_prefix': 'pbench-agent-cli', 'controller': 'testhost.example.com', 'group': 'default', 'hostname': 'testhost.example.com', 'label': '', 'tool_metadata': {'persistent': {'dcgm': {'collector': 'prometheus', 'port': '9400'}, 'node-exporter': {'collector': 'prometheus', 'port': '9100'}, 'pcp': {'collector': 'pcp', 'port': '44321'}}, 'transient': {'blktrace': None, 'bpftrace': None, 'cpuacct': None, 'disk': None, 'dm-cache': None, 'docker': None, 'docker-info': None, 'external-data-source': None, 'haproxy-ocp': None, 'iostat': None, 'jmap': None, 'jstack': None, 'kvm-spinlock': None, 'kvmstat': None, 'kvmtrace': None, 'lockstat': None, 'mpstat': None, 'numastat': None, 'oc': None, 'openvswitch': None, 'perf': None, 'pidstat': None, 'pprof': None, 'proc-interrupts': None, 'proc-sched_debug': None, 'proc-vmstat': None, 'prometheus-metrics': None, 'qemu-migrate': None, 'rabbit': None, 'sar': None, 'strace': None, 'sysfs': None, 'systemtap': None, 'tcpdump': None, 'turbostat': None, 'user-tool': None, 'virsh-migrate': None, 'vmstat': None}}, 'tools': {'mpstat': '', 'perf': '--record-opts="-a -freq=100 -g --event=branch-misses --event=cache-misses --event=instructions" --report-opts="-I -g"'}}
testhost.example.com 0000 DEBUG pbench-tool-meister driver -- params_key (tm-default-testhost.example.com): {'benchmark_run_dir': '/var/tmp/pbench-test-utils/pbench/mock-run', 'channel_prefix': 'pbench-agent-cli', 'controller': 'testhost.example.com', 'group': 'default', 'hostname': 'testhost.example.com', 'label': '', 'tool_metadata': {'persistent': {'dcgm': {'collector': 'prometheus', 'port': '9400'}, 'node-exporter': {'collector': 'prometheus', 'port': '9100'}, 'pcp': {'collector': 'pcp', 'port': '44321'}}, 'transient': {'blktrace': None, 'bpftrace': None, 'cpuacct': None, 'disk': None, 'dm-cache': None, 'docker': None, 'docker-info': None, 'external-data-source': None, 'haproxy-ocp': None, 'iostat': None, 'jmap': None, 'jstack': None, 'kvm-spinlock': None, 'kvmstat': None, 'kvmtrace': None, 'lockstat': None, 'mpstat': None, 'numastat': None, 'oc': None, 'openvswitch': None, 'pcp-transient': None, 'perf': None, 'pidstat': None, 'pprof': None, 'proc-interrupts': None, 'proc-sched_debug': None, 'proc-vmstat': None, 'prometheus-metrics': None, 'qemu-migrate': None, 'rabbit': None, 'sar': None, 'strace': None, 'sysfs': None, 'systemtap': None, 'tcpdump': None, 'turbostat': None, 'user-tool': None, 'virsh-migrate': None, 'vmstat': None}}, 'tools': {'mpstat': '', 'perf': '--record-opts="-a -freq=100 -g --event=branch-misses --event=cache-misses --event=instructions" --report-opts="-I -g"'}}
testhost.example.com 0001 DEBUG pbench-tool-meister __enter__ -- publish pbench-agent-cli-from-tms
testhost.example.com 0002 DEBUG pbench-tool-meister __enter__ -- published pbench-agent-cli-from-tms
testhost.example.com 0003 DEBUG pbench-tool-meister driver -- waiting ...
Expand Down
Loading