KERNEL_PMDAS(1)

πŸ¦‹ KERNEL_PMDAS(1) πŸ¦‹

General Commands Manual πŸ’– okay bestie, this one is all about the kernel PMDAs


✨ NAME ✨

okay so the NAME lineup is pmdaaix, pmdadarwin, pmdafreebsd, pmdalinux, pmdanetbsd, pmdaopenbsd, pmdasolaris and pmdawindows 🧚 and they're all operating system kernel performance metrics domain agents. A whole squad, one for each platform πŸ’…


✨ SYNOPSIS ✨

here's how each one gets called πŸŽ€

$PCP_PMDAS_DIR/aix/pmdaaix [-D debug] [-d domain] [-l logfile] [-U username]
$PCP_PMDAS_DIR/darwin/pmdadarwin [-D debug] [-d domain] [-l logfile] [-U username]
$PCP_PMDAS_DIR/freebsd/pmdafreebsd [-D debug] [-d domain] [-l logfile] [-U username]
$PCP_PMDAS_DIR/linux/pmdalinux [-A] [-D debug] [-d domain] [-l logfile] [-U username]
$PCP_PMDAS_DIR/netbsd/pmdanetbsd [-D debug] [-d domain] [-l logfile] [-U username]
$PCP_PMDAS_DIR/netbsd/pmdaopenbsd [-D debug] [-d domain] [-l logfile] [-U username]
$PCP_PMDAS_DIR/solaris/pmdasolaris [-D debug] [-d domain] [-l logfile] [-U username]
$PCP_PMDAS_DIR/windows/pmdawindows [-D debug] [-d domain] [-l logfile] [-U username]

✨ DESCRIPTION ✨

every supported platform has its own kernel Performance Metrics Domain Agent (PMDA), and that's the one that pulls performance metrics straight out of the kernel for that platform 🌈 The metrics are super platform-specific and so are the ways to grab them. Usually that means special system calls, or reading files from kernel virtual filesystems like the Linux sysfs and procfs filesystems πŸ“‚

the kernel PMDA is literally one of the most critical parts of a PCP install, so it has to be as efficient and reliable as humanly possible 😭 In every install, the default kernel PMDA gets installed as a shared library, which means it runs directly inside the pmcd(1) process. That cuts down the overhead of querying the metadata and values for these metrics, since no message passing is required 🫢

unlike a lot of other PMDAs, the kernel PMDA exports a bunch of metric namespace subtrees: kernel, network, swap, mem, ipc, filesys, nfs, disk and hinv (hardware inventory) πŸ‘‘

even though they usually run as shared libraries, most installs also include a stand-alone executable for the kernel PMDA. It's there for profiling and debugging activities, like with dbpmda(1) for example πŸ”₯ In that case (but not for shared libraries), these command line options are available:

  • -A β€” disables the credentials that PMAPI client tools provide, so everything just runs under the root account 😬 Only turn this on if you really get the risks and you're sure every remote access will come from benevolent users. If it's enabled, unauthenticated remote PMAPI clients can access potentially sensitive performance metric values that an unauthenticated PMAPI client usually wouldn't be able to. Refer to CVE-2012-3419 for additional details.
πŸ’€ Danger zone, bestie: with -A, unauthenticated remote clients can see stuff they normally couldn't. Only do this if you're 100% sure everyone is benevolent.
  • -d β€” the performance metrics domain number you pass here has to be unique and consistent πŸ”’ Every PMDA on the one host needs its own domain number, and the same PMDA should use the same domain number on all hosts 🫢
  • -l β€” where the log file lives πŸ“ By default, a log file named [platform].log gets written in the current directory of pmcd(1) when pmda[platform] starts, i.e. $PCP_LOG_DIR/pmcd. If that log file can't be created or isn't writable, the output goes to standard error instead.
  • -U β€” the user account the agent runs under πŸ‘‘ The default is either the privileged root account on some platforms (Linux, for example) or the unprivileged pcp account (wherever possible).

✨ INSTALLATION ✨

access to the names, help text and values for the kernel performance metrics is on by default πŸ’– Unlike most other agents, you don't have to do anything to enable them, and they should not be removed πŸ™…


✨ FILES ✨

  • $PCP_PMDAS_DIR/[platform]/help β€” the default help text file for the kernel metrics πŸ“š
  • $PCP_LOG_DIR/pmcd/[platform].log β€” the default log file for error messages and other information from the kernel PMDA πŸͺ΅

✨ PCP ENVIRONMENT ✨

env vars with the PCP_ prefix are how PCP parameterizes the file and directory names it uses 🧚 On each installation, /etc/pcp.conf holds the local values for these variables. If you want a different config file, $PCP_CONF can point to it, as described in pcp.conf(5).


✨ DEBUGGING OPTIONS ✨

-D or --debug turns on extra diagnostics on stderr to help triage problems πŸ” Heads up, the info is sometimes kinda cryptic and is mainly meant for developers rather than end-users πŸ™ˆ debug is a comma separated list of debugging options. Use pmdbg(1) with the -l option to get the list of available debugging options and what they mean.

for pmdaaix, pmdafreebsd, pmdanetbsd, pmdaopenbsd and pmdasolaris, the debugging options are:

  • appl0 β€” verbose diagnostics πŸ—£οΈ

and for pmdalinux:

  • appl1 β€” disk-related metrics πŸ’Ώ
  • appl8 β€” filesys metrics πŸ“

✨ SYNOPSIS ✨

nothing to see here, this one's empty 🫠


✨ SEE ALSO ✨

PCPIntro(1), dbpmda(1), pmcd(1), pcp.conf(5) and pcp.env(5) πŸ¦‹


That's the tea πŸ’œ Brought to you by Performance Co-Pilot, version PCP, page KERNEL_PMDAS(1). Stay iconic, bestie πŸ’…βœ¨

πŸ“¦ where this page comes from