Skip to main content
The profile command allows you to list and inspect available profiles on your system. Profiles are predefined sets of CLI arguments that provide comprehensive configurations for specific tracing scenarios.

Usage

retis profile [SUBCOMMAND]

Subcommands

list

List all available profiles on the system.
retis profile list
This command searches for profiles in:
  • /usr/share/retis/profiles/ - System-wide profiles
  • $HOME/.config/retis/profiles/ - User profiles
  • Custom directories specified with -P/--extra-profiles-dir
Example output:
/usr/share/retis/profiles/generic.yaml:
  generic              General purpose profile for investigating packets in the networking stack
/usr/share/retis/profiles/drop.yaml:
  dropmon             Drop monitor profile, reporting dropped packets with stack traces
  nft-dropmon         Drop monitor for Netfilter/nftables only
/usr/share/retis/profiles/ifdump.yaml:
  ifdump              Collect packets at device driver level (ingress/egress)

Options

--extra-profiles-dir, -P
path
Path to an additional directory with custom profiles.This directory takes precedence over built-in profile directories. Useful for organization-specific or project-specific profiles.

Examples

List All Profiles

See what profiles are available:
retis profile list

List Profiles Including Custom Directory

Search for profiles in a custom location:
retis profile list -P /path/to/custom/profiles

Using Profiles with Collect

After listing profiles, use them with the collect command:
# Use the generic profile
retis -p generic collect

# Use multiple profiles
retis -p dropmon,generic collect

# Use a custom profile by path
retis -p /path/to/my-profile.yaml collect

Profile Structure

Profiles are YAML files that define:
  • Profile name and description
  • Collectors to enable
  • Probes to install
  • Command-line arguments to apply
Example profile structure:
profiles:
  - name: my-profile
    about: Custom profile for HTTP tracing
    collect:
      collectors:
        - skb
        - skb-tracking
        - ct
      probes:
        - kprobe:tcp_sendmsg
        - kprobe:tcp_recvmsg
      filter-packet: "tcp port 80 or tcp port 443"

Creating Custom Profiles

  1. Create a YAML file in $HOME/.config/retis/profiles/
  2. Define your profile following the structure above
  3. Use retis profile list to verify it’s detected
  4. Use it with retis -p <profile-name> collect
Profile files can contain multiple profiles. Each profile in the file will be listed separately.

Profile Priority

When profiles are loaded from multiple locations:
  1. Custom directory specified with -P (highest priority)
  2. User profiles in $HOME/.config/retis/profiles/
  3. System profiles in /usr/share/retis/profiles/
If a profile with the same name exists in multiple locations, the higher-priority location wins.

See Also

Profile Concept

Learn about profiles and how they work

Built-in Profiles

Documentation for each built-in profile

collect command

Use profiles with the collect command

Build docs developers (and LLMs) love