PMDABCC(1)

✨ NAME ✨

pmdabpf β€” it's the eBPF PMDA bestie πŸ’… (yes the manual page is called PMDABCC(1), don't ask, we don't gatekeep names around here)


🌸 SYNOPSIS 🌸

$PCP_PMDAS_DIR/bpf/pmdabpf [-D debug]

πŸ¦‹ DESCRIPTION πŸ¦‹

Okay so pmdabpf is a Performance Co-Pilot (PCP) Performance Metrics Domain Agent (PMDA) and its whole thing is pulling live performance data out of eBPF programs, using BPF CO-RE (libbpf and BTF). It's giving observability, no cap πŸ”₯

pmdabpf loads and acts as a bridge for any number of configured, separate bpf PMDA modules. And like β€” existing libbpf tools should be possible to utilize with the bpf PMDA modules with reasonable effort. (Emphasis on reasonable πŸ’€)

For the full lore, go read the eBPF, libbpf and BPF CO-RE documentation. They explain it in detail. ✨


πŸŽ€ CONFIGURATION πŸŽ€

pmdabpf reads a mandatory ini-style configuration file:

$PCP_PMDAS_DIR/bpf/bpf.conf

Every section of that file = one bpf PMDA module. Obsessed with the structure honestly 🫢

These global options are available for every module (default values shown in parenthesis):

  • enabled (unset) β€” a boolean value, and it's literally just "should this bpf PMDA module be started or not". That's it. That's the whole option. πŸ’…

Modules may also support additional module-specific configuration options β€” go check the default configuration file for which options they support. iykyk πŸ“–


⭐ INSTALLATION ⭐

To install, the following must be done as root:

# cd $PCP_PMDAS_DIR/bpf
# ./Install

To uninstall, the following must be done as root:

# cd $PCP_PMDAS_DIR/bpf
# ./Remove

pmdabpf is launched by pmcd(1) and should never be executed directly, bestie. Do not. 🚫 The Install and Remove scripts notify pmcd(1) when the agent is installed or removed, so they handle the group chat for you. 🫢

Also lowkey important: some modules will start providing values only after having collected data from related system activity. So don't panic if it's quiet at first, it's just warming up. 🌱

πŸ’– FILES πŸ’–

  • $PCP_PMDAS_DIR/bpf/bpf.conf β€” configuration file for the pmdabpf agent
  • $PCP_PMDAS_DIR/bpf/modules/*.{o,so} β€” bpf PMDA modules available for the pmdabpf agent
  • $PCP_PMDAS_DIR/bpf/Install β€” installation script for the pmdabpf agent
  • $PCP_PMDAS_DIR/bpf/Remove β€” undo installation script for the pmdabpf agent
  • $PCP_LOG_DIR/pmcd/bpf.log β€” default log file for messages from the pmdabpf agent
Note that the usual/default value for $PCP_PMDAS_DIR is /var/lib/pcp/pmdas and the default for $PCP_LOG_DIR is /var/log/pcp β€” but these settings are platform dependent. So don't come for me if yours is different, it's just built different. 😭

🌈 PCP ENVIRONMENT 🌈

Environment variables with the prefix PCP_ are used to parameterize the file and directory names that PCP uses. Every installation has a file at /etc/pcp.conf holding the local values for these variables. πŸ“

And if you wanna get spicy, the $PCP_CONF variable may be used to specify an alternative configuration file, as described in pcp.conf(5). Slay. πŸ’…


πŸ‘‘ DEBUGGING OPTIONS πŸ‘‘

The -D or --debug option enables the output of additional diagnostics on stderr to help triage problems β€” although ngl, the information is sometimes cryptic and primarily intended to provide guidance for developers rather than for end-users. πŸ™ˆ

debug is a comma separated list of debugging options. Use pmdbg(1) with the -l option to obtain a list of the available debugging options and their meaning. Periodt. πŸ“‹


πŸ”₯ SEE ALSO πŸ”₯

PCPIntro(1), bpf(1) and pmcd(1).


And that's the whole page, bestie!! πŸ’œ This one came from Performance Co-Pilot β€” that's the PCP source and version tag β€” and the page itself is PMDABCC(1), dated in that lil footer right there. Go forth and monitor something iconic. πŸŒŸπŸ¦‹πŸ’–

πŸ“¦ where this page comes from