Open MichaelHuys opened 10 months ago
...
cmdline:
- ".*python.*"
I changed our config as below:
process_names:
- name: "{{.ExeFull}}({{.Username}})"
cmdline:
- '.*'
But still I only get the command/executable itself without parameters, eg.:
Extract from top:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2786399 mhsctd6 20 0 27724 9156 2832 R 28.1 0.1 0:01.35 python test.py --dry-run 2786400 mhsctd6 20 0 27724 9156 2832 S 28.1 0.1 0:01.35 python test.py --dry-run 2786401 mhsctd6 20 0 27724 9156 2832 S 28.1 0.1 0:01.41 python test.py --dry-run 2786398 mhsctd6 20 0 27724 9152 2832 R 27.2 0.1 0:01.38 python test.py --dry-run
In Grafana we only see the Python executable without parameters (test.py --dry-run) part:
Because your process names are all python test. py -- dry run
, if you want to display each process, you need to add the PID of each process..
blew info from README.MD
Each item in process_names
gives a recipe for identifying and naming
processes. The optional name
tag defines a template to use to name
matching processes; if not specified, name
defaults to {{.ExeBase}}
.
Template variables available:
{{.Comm}}
contains the basename of the original executable, i.e. 2nd field in /proc/<pid>/stat
{{.ExeBase}}
contains the basename of the executable{{.ExeFull}}
contains the fully qualified path of the executable{{.Username}}
contains the username of the effective user{{.Matches}}
map contains all the matches resulting from applying cmdline regexps{{.PID}}
contains the PID of the process. Note that using PID means the group
will only contain a single process.{{.StartTime}}
contains the start time of the process. This can be useful
in conjunction with PID because PIDs get reused over time.{{.Cgroups}}
contains (if supported) the cgroups of the process
(/proc/self/cgroup
). This is particularly useful for identifying to which container
a process belongs.Using PID
or StartTime
is discouraged: this is almost never what you want,
and is likely to result in high cardinality metrics which Prometheus will have
trouble with.
My requirement is not to have every single process (id) in my overview but to have the {{.ExeFull}} (python) together with all it's parameters (test. py -- dry run). This information is available in /proc/
@MichaelHuys have you find a way to do so? In my use case, I do have users computing on servers (without queuing) and I do think I would like to get all user processes
@StefanSander3 Unfortunately not. :-(
I'm currently using the process exporter with below configuration:
My metrics are displayed as follows:
Can I also include the arguments of in this case the python function I'm running? Eg. /home/AD/cce6r54/.conda/envs/smart-berry-optimization/bin/python3.10 My_Py_Script.py