Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Exe full and arguments #281

Open
MichaelHuys opened this issue Nov 7, 2023 · 6 comments
Open

Exe full and arguments #281

MichaelHuys opened this issue Nov 7, 2023 · 6 comments

Comments

@MichaelHuys
Copy link

I'm currently using the process exporter with below configuration:

process_names:
  - name: "{{.ExeFull}}"
    cmdline:
      - "python"

My metrics are displayed as follows:

namedprocess_namegroup_context_switches_total{ctxswitchtype="nonvoluntary",groupname="/home/AD/cce6r54/.conda/envs/smart-berry-optimization/bin/python3.10"} 0

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

@tangguangliang
Copy link

tangguangliang commented Dec 7, 2023

...
cmdline:
  - ".*python.*"

@MichaelHuys
Copy link
Author

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:
image

@tangguangliang
Copy link

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

Using a config file: group name

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.

@MichaelHuys
Copy link
Author

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//cmdline but I don't know how I can target it using the template variables described above?

@StefanSander3
Copy link

StefanSander3 commented Sep 4, 2024

@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

@MichaelHuys
Copy link
Author

@StefanSander3 Unfortunately not. :-(

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants