##
## apps.plugin process grouping
##
## Documentation at:
## https://github.com/netdata/netdata/blob/master/src/collectors/apps.plugin/README.md
##
## -----------------------------------------------------------------------------
## Subprocesses of process managers are monitored individually.
## (uncomment to add or edit - the default is also hardcoded into the plugin)

## Clear all the managers, to set yours, otherwise append to the internal list.
#managers: clear

## Linux process managers
#managers: init systemd containerd-shim-runc-v2 dumb-init gnome-shell docker-init tini
#managers: spawn-plugins openrc-run.sh crond plasmashell xfwm4
#managers: *python3*bin/yugabyted*

## FreeBSD process managers
#managers: init spawn-plugins

## MacOS process managers
#managers: launchd spawn-plugins

## Windows process managers
#managers: wininit services explorer System netdata

## -----------------------------------------------------------------------------
## Interpreters to search for the actual command name in command line.
## (uncomment to add or edit - the default is also hardcoded into the plugin)

## Clear all the interpreters, to set yours, otherwise append to the internal list.
#interpreters: clear

#interpreters: python python2 python3
#interpreters: sh bash zsh
#interpreters: node perl awk

## -----------------------------------------------------------------------------
## Processes of interest
## Grouping and/or rename individual processes.
## (there is no internal default for this section)
##
## Pattern matching rules:
## - All matches are CASE INSENSITIVE (case sensitive in v2.5.2 and earlier)
## - Use quotes for process names with spaces: "Process Name"
## - Patterns work on both Unix-like systems and Windows:
##   - Exact match: firefox (matches process named firefox)
##   - Prefix match: firefox* (matches firefox, firefox.exe, firefox-bin, etc.)
##   - Suffix match: *fox (matches firefox, icefox, etc.)
##   - Substring match: *firefox* (searches in full command line/path)
##
## Windows-specific notes:
## - Process names work without .exe extension (automatically handled)
## - Substring patterns (*pattern*) search within the full executable path
## - No backslash escaping needed for Windows paths
## - The 'name' field (friendly name) is used for default categories when no pattern matches
## - v2.5.3+: Patterns also match against the 'name' field (friendly name)

## NETDATA processes accounting
netdata: netdata

## NETDATA agent-service-discovery (kubernetes)
agent_sd: agent_sd

## -----------------------------------------------------------------------------

oracledb: ora_* oracle_* *runOracle.sh*
unicorn: *unicorn*
puma: *puma*
couchdb: *couchdb*
graphite: *carbon-cache.py* *carbon-aggregator.py* *graphite/manage.py*
opentsdb: *net.opentsdb.tools.TSDMain*
imapd: *imapd
pop3d: *pop3d
popd: *popd
camo: *camo*
vicidial: *vicidial*
vines: *vines*
prosody: *prosody*
azure: mdsd *waagent* *omiserver* *omiagent* hv_kvp_daemon hv_vss_daemon *auoms* *omsagent*
datadog: *datadog*
newrelic: newrelic*
google-agent: *google_guest_agent* *google_osconfig_agent*
aws-s3: '*aws s3*' s3cmd s5cmd
proxmox-ve: pve* spiceproxy
libvirt: virtlogd virtqemud virtstoraged virtnetworkd virtlockd virtinterfaced
libvirt: virtnodedevd virtproxyd virtsecretd libvirtd
guest-agent: qemu-ga spice-vdagent cloud-init*
dhcp: dhcp* dhclient

build: cc1 cc1plus as gcc* cppcheck ld make cmake automake autoconf autoreconf
build: cargo rustc bazel buck git gdb valgrind* rpmbuild dpkg-buildpackage
packagemanager: apt* dpkg* dselect dnf yum rpm zypp* yast* pacman xbps* swupd*
packagemanager: packagekitd pkgin pkg apk snapd slackpkg slapt-get emerge*
clam: clam* *clam
backup: rsync lsyncd bacula* borg rclone
cron: cron* atd anacron *systemd-cron* incrond
ups: upsmon upsd */nut/* apcupsd

rabbitmq: *rabbitmq*
sidekiq: *sidekiq*
vernemq: *beam.smp*vernemq* *start_vernemq* *run_erl*vernemq* *vernemq*epmd*
erlang: beam.smp
postfix: *postfix*

dagster: *dagster*

## -----------------------------------------------------------------------------
## java applications

hdfsdatanode: *org.apache.hadoop.hdfs.server.datanode.DataNode*
hdfsnamenode: *org.apache.hadoop.hdfs.server.namenode.NameNode*
hdfsjournalnode: *org.apache.hadoop.hdfs.qjournal.server.JournalNode*
hdfszkfc: *org.apache.hadoop.hdfs.tools.DFSZKFailoverController*
yarnnode: *org.apache.hadoop.yarn.server.nodemanager.NodeManager*
yarnmgr: *org.apache.hadoop.yarn.server.resourcemanager.ResourceManager*
yarnproxy: *org.apache.hadoop.yarn.server.webproxy.WebAppProxyServer*
sparkworker: *org.apache.spark.deploy.worker.Worker*
sparkmaster: *org.apache.spark.deploy.master.Master*
hbaseregion: *org.apache.hadoop.hbase.regionserver.HRegionServer*
hbaserest: *org.apache.hadoop.hbase.rest.RESTServer*
hbasethrift: *org.apache.hadoop.hbase.thrift.ThriftServer*
hbasemaster: *org.apache.hadoop.hbase.master.HMaster*
zookeeper: *org.apache.zookeeper.server.quorum.QuorumPeerMain*
hive2: *org.apache.hive.service.server.HiveServer2*
hivemetastore: *org.apache.hadoop.hive.metastore.HiveMetaStore*
solr: *solr.install.dir*
airflow: *airflow*
kafka: *kafka.Kafka*

## -----------------------------------------------------------------------------
## Kernel / System
## The following are interesting kernel threads and related processes to
## monitor individually, mainly for their CPU utilization.

## These kernel threads switch tasks all the time, so they should never be
## categorized as anything specific.
kernel: kworker/*

## Kernel Samepage Merging (KSM) daemon that looks for identical memory pages
## across processes and merges them to save memory.
ksmd: ksmd

## Handles migration of processes between CPU cores to balance load.
kmigration: migration/*

## Manages memory compaction, moving memory pages around to reduce
## fragmentation.
kcompactd: kcompactd*

## Responsible for freeing up memory by swapping pages to disk when needed.
kswapd: kswapd*

## DAMON is a mechanism designed to efficiently monitor the memory access
## patterns of running processes or the system itself.
kdamond: kdamond

## Manages ballooning in virtualized environments.
vballoon: vballoon*

## virtio - Handles or I/O (storage and network) on virtual machines.
kvirtio: virtio-* vhost-*

## Layer 4 (transport layer) load balancing
ipvs: ipvsd ipvs_* ip_vs_*

## Hugepages
## Scans memory regions and tries to promote regular-sized pages (4KB) into
## hugepages (2MB) where possible. Merge smaller contiguous 4KB pages into 2MB
## pages. Hugepages also use: kswapd, kcompactd, and migration.
khugepaged: khugepaged

## Note about zswap:
## zswap does not introduce its own dedicated kernel threads. Instead, it
## operates within the existing memory management and swapping framework of the
## kernel:
## - kswapd: swaps pages in/out of memory, using compression in the process.
## - kcompactd: compacts memory when pages are compressed or moved around.

## -----------------------------------------------------------------------------
## Block Devices

## Handles deferred block I/O operations for block devices.
kblockd: kblockd

## Device Mapper (DM)
device-mapper: kcopyd/* kcryptd/* kdmflush/* dm_bufio_cache
device-mapper: raid1/* raid5/* raid10/* multipathd bioset/*

## Software RAID (MD)
md-raid: md*_raid* md*_resync md*_reshape md*_recovery md_thread
md-raid: flush_md* raid*_sync

## iSCSI
iscsi: iscsid iscsiadm iscsi_eh/* iscsi_xmit/* iscsi_ttx/* iscsi_rx/* iscsi_trx/*

## SCSI
scsi: scsi_eh/* scsi_tmf/* scsi_wq/*

## BCACHE
bcache: bcache* bch_btree_io bch_journal

## SAS
sas: sas_task/* mpt*

## Fibre Channel (FC)
fc: fc_transport qla2xxx*

## loop devices
loop: loop* flush-loop*

## -----------------------------------------------------------------------------
## Filesystems

## Ext4
ext4: ext4-* jbd2/*

## XFS
xfs: xfs*

## BTRFS
btrfs: btrfs*

## NFS
nfs: rpcbind rpc.* nfs* rpciod

## ZFS
zfs: spl_* z_* txg_* zil_* arc_* l2arc* zfs* zed zdb zpool*

## CEPH
ceph: ceph-* ceph_* radosgw* rbd-* cephfs-*
ceph: ceph cephadm osdmaptool crushtool rados rbd

## CIFS & Samba
cifs: smbd nmbd winbindd ctdbd ctdb-* ctdb_*
cifs: cifsd cifscreds cifs.upcall

## Apple Filling Protocol (AFP)
afp: netatalk afpd cnid_dbd cnid_metad

## -----------------------------------------------------------------------------
## Desktops

systemd-journald: *systemd-journal*
systemd: systemd systemd-*

## GNOME
desktop: gnome-* gsd-* gjs goa-* gcr-* gvfs-* *xdg-*-gnome* passimd gvfsd*
desktop: at-spi-* at-spi2-* dconf-service gcr-*

## KDE
desktop: plasmashell kwin-* kde* *-kde-* klauncher kactivitymanagerd krunner
desktop: kdeconnectd ksmserver kglobalaccel5 plasma-* *org.kde.*
desktop: sddm* kwalletd5 knotify5 kmix kscreen kwayland-*

## XFCE4
desktop: xfce4-* xfwm4 xfdesktop xfce4-panel xfsettingsd xfconfd
desktop: lightdm lightdm-*

## Generic tools related to desktop
desktop: gdm gdm-* dbus-* xdg-* ibus-* evolution-* accounts-daemon colord
desktop: geoclue pulse* pipewire* wireplumber jack* touchegg pulseaudio
desktop: Xwayland Xorg
