#
# apps.plugin process grouping
#
# The apps.plugin displays charts with information about the processes running.
# This config allows grouping processes together, so that several processes
# will be reported as one.
#
# Only groups in this file are reported. All other processes will be reported
# as 'other'.
#
# For each process given, its whole process tree will be grouped, not just
# the process matched. The plugin will include both parents and childs.
#
# The format is:
#
#       group: process1 process2 process3 ...
#
# Each group can be given multiple times, to add more processes to it.
#
# The process names are the ones returned by:
#
#  -  ps -e or /proc/PID/stat
#  -  in case of substring mode (see below): /proc/PID/cmdline
#
# To add process names with spaces, enclose them in quotes (single or double)
# example: 'Plex Media Serv' "my other process".
#
# Note that spaces are not supported for process groups. Use a dash "-" instead.
# example-process-group: process1 process2
#
# Wildcard support:
# You can add an asterisk (*) at the beginning and/or the end of a process:
#
#  *name    suffix mode: will search for processes ending with 'name'
#           (/proc/PID/stat)
#
#   name*   prefix mode: will search for processes beginning with 'name'
#           (/proc/PID/stat)
#
#  *name*   substring mode: will search for 'name' in the whole command line
#           (/proc/PID/cmdline)
#
# If you enter even just one *name* (substring), apps.plugin will process
# /proc/PID/cmdline for all processes, just once (when they are first seen).
#
# To add processes with single quotes, enclose them in double quotes
# example: "process with this ' single quote"
#
# To add processes with double quotes, enclose them in single quotes:
# example: 'process with this " double quote'
#
# If a group or process name starts with a -, the dimension will be hidden
# (cpu chart only).
#
# If a process starts with a +, debugging will be enabled for it
# (debugging produces a lot of output - do not enable it in production systems)
#
# You can add any number of groups you like. Only the ones found running will
# affect the charts generated. However, producing charts with hundreds of
# dimensions may slow down your web browser.
#
# The order of the entries in this list is important: the first that matches
# a process is used, so put important ones at the top. Processes not matched
# by any row, will inherit it from their parents or children.
#
# The order also controls the order of the dimensions on the generated charts
# (although applications started after apps.plugin is started, will be appended
# to the existing list of dimensions the netdata daemon maintains).

# -----------------------------------------------------------------------------
# NETDATA processes accounting

# netdata main process
netdata: netdata

# netdata known plugins
# plugins not defined here will be accumulated in netdata, above
apps.plugin: apps.plugin
freeipmi.plugin: freeipmi.plugin
nfacct.plugin: nfacct.plugin
cups.plugin: cups.plugin
xenstat.plugin: xenstat.plugin
perf.plugin: perf.plugin
charts.d.plugin: *charts.d.plugin*
python.d.plugin: *python.d.plugin*
tc-qos-helper: *tc-qos-helper.sh*
fping: fping
ioping: ioping
go.d.plugin: *go.d.plugin*
slabinfo.plugin: slabinfo.plugin
ebpf.plugin: *ebpf.plugin*

# agent-service-discovery
agent_sd: agent_sd

# -----------------------------------------------------------------------------
# authentication/authorization related servers

auth: radius* openldap* ldap* slapd authelia sssd saslauthd polkitd gssproxy
fail2ban: fail2ban*

# -----------------------------------------------------------------------------
# web/ftp servers

httpd: apache* httpd nginx* lighttpd hiawatha caddy h2o
proxy: squid* c-icap squidGuard varnish*
php: php* lsphp*
ftpd: proftpd in.tftpd vsftpd
uwsgi: uwsgi
unicorn: *unicorn*
puma: *puma*

# -----------------------------------------------------------------------------
# database servers

sql: mysqld* mariad* postgres* postmaster* oracle_* ora_* sqlservr
nosql: mongod redis* memcached *couchdb*
timedb: prometheus *carbon-cache.py* *carbon-aggregator.py* *graphite/manage.py* *net.opentsdb.tools.TSDMain* influxd*
columndb: clickhouse-server*

# -----------------------------------------------------------------------------
# email servers

mta: amavis* zmstat-* zmdiaglog zmmailboxdmgr opendkim postfwd2 smtp* lmtp* sendmail postfix master pickup qmgr showq tlsmgr postscreen oqmgr msmtp* nullmailer*
mda: dovecot *imapd *pop3d *popd

# -----------------------------------------------------------------------------
# network, routing, VPN

ppp: ppp*
vpn: openvpn pptp* cjdroute gvpe tincd wireguard tailscaled
wifi: hostapd wpa_supplicant
routing: ospfd* ospf6d* bgpd bfdd fabricd isisd eigrpd sharpd staticd ripd ripngd pimd pbrd nhrpd ldpd zebra vrrpd vtysh bird*
modem: ModemManager
netmanager: NetworkManager nm* systemd-networkd networkctl netplan connmand wicked* avahi-autoipd networkd-dispatcher
firewall: firewalld ufw nft
tor: tor
bluetooth: bluetooth bluez bluedevil obexd

# -----------------------------------------------------------------------------
# high availability and balancers

camo: *camo*
balancer: ipvs_* haproxy
ha: corosync hs_logd ha_logd stonithd pacemakerd lrmd crmd keepalived ucarp*

# -----------------------------------------------------------------------------
# telephony

pbx: asterisk safe_asterisk *vicidial*
sip: opensips* stund

# -----------------------------------------------------------------------------
# chat

chat: irssi *vines* *prosody* murmurd

# -----------------------------------------------------------------------------
# monitoring

logs: ulogd* syslog* rsyslog* logrotate systemd-journald rotatelogs sysklogd metalog
nms: snmpd vnstatd smokeping zabbix* munin* mon openhpid tailon nrpe
monit: monit
splunk: splunkd
azure: mdsd *waagent* *omiserver* *omiagent* hv_kvp_daemon hv_vss_daemon *auoms* *omsagent*
datadog: *datadog*
edgedelta: edgedelta
newrelic: newrelic*
google-agent: *google_guest_agent* *google_osconfig_agent*
nvidia-smi: nvidia-smi
htop: htop
watchdog: watchdog
telegraf: telegraf

# -----------------------------------------------------------------------------
# storage, file systems and file servers

ceph: ceph-* ceph_* radosgw* rbd-* cephfs-* osdmaptool crushtool
samba: smbd nmbd winbindd ctdbd ctdb-* ctdb_*
nfs: rpcbind rpc.* nfs*
zfs: spl_* z_* txg_* zil_* arc_* l2arc*
btrfs: btrfs*
iscsi: iscsid iscsi_eh
afp: netatalk afpd cnid_dbd cnid_metad
ntfs-3g: ntfs-3g

# -----------------------------------------------------------------------------
# kubernetes

kubelet: kubelet
kube-dns: kube-dns
kube-proxy: kube-proxy
metrics-server: metrics-server
heapster: heapster

# -----------------------------------------------------------------------------
# AWS

aws-s3: '*aws s3*' s3cmd s5cmd
aws: aws

# -----------------------------------------------------------------------------
# virtualization platform

proxmox-ve: pve* spiceproxy

# -----------------------------------------------------------------------------
# containers & virtual machines

containers: lxc* docker* balena*
VMs: vbox* VBox* qemu* kvm*
libvirt: virtlogd virtqemud virtstoraged virtnetworkd virtlockd virtinterfaced
libvirt: virtnodedevd virtproxyd virtsecretd libvirtd
guest-agent: qemu-ga spice-vdagent cloud-init*

# -----------------------------------------------------------------------------
# ssh servers and clients

ssh: ssh* scp sftp* dropbear

# -----------------------------------------------------------------------------
# print servers and clients

print: cups* lpd lpq

# -----------------------------------------------------------------------------
# time servers and clients

time: ntp* systemd-timesyn* chronyd ptp*

# -----------------------------------------------------------------------------
# dhcp servers and clients

dhcp: *dhcp* dhclient

# -----------------------------------------------------------------------------
# name servers and clients

dns: named unbound nsd pdns_server knotd gdnsd yadifad dnsmasq systemd-resolve* pihole* avahi-daemon avahi-dnsconfd
dnsdist: dnsdist

# -----------------------------------------------------------------------------
# installation / compilation / debugging

build: cc1 cc1plus as gcc* cppcheck ld make cmake automake autoconf autoreconf
build: cargo rustc bazel buck git gdb valgrind* rpmbuild dpkg-buildpackage

# -----------------------------------------------------------------------------
# package management

packagemanager: apt* dpkg* dselect dnf yum rpm zypp* yast* pacman xbps* swupd* emerge*
packagemanager: packagekitd pkgin pkg apk snapd slackpkg slapt-get

# -----------------------------------------------------------------------------
# antivirus

antivirus: clam* *clam imunify360*

# -----------------------------------------------------------------------------
# torrent clients

torrents: *deluge* transmission* *SickBeard* *CouchPotato* *rtorrent*

# -----------------------------------------------------------------------------
# backup servers and clients

backup: rsync lsyncd bacula* borg rclone

# -----------------------------------------------------------------------------
# cron

cron: cron* atd anacron systemd-cron* incrond

# -----------------------------------------------------------------------------
# UPS

ups: upsmon upsd */nut/* apcupsd

# -----------------------------------------------------------------------------
# media players, servers, clients

media: mplayer vlc xine mediatomb omxplayer* kodi* xbmc* mediacenter eventlircd
media: mpd minidlnad mt-daapd Plex* jellyfin squeeze* jackett Ombi
media: strawberry* clementine*

audio: pulse* pipewire wireplumber jack*

# -----------------------------------------------------------------------------
# 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*

# -----------------------------------------------------------------------------
# GUI

X: X Xorg xinit xdm Xwayland xsettingsd
wayland: swaylock swayidle waypipe wayvnc
kde: *kdeinit* kdm sddm plasmashell startplasma-* kwin* kwallet* krunner kactivitymanager*
gnome: gnome-* gdm gconf* mutter
mate: mate-* msd-* marco*
cinnamon: cinnamon* muffin
xfce: xfwm4 xfdesktop xfce* Thunar xfsettingsd xfconf*
lxde: lxde* startlxde lxdm lxappearance* lxlauncher* lxpanel* lxsession* lxsettings*
lxqt: lxqt* startlxqt
enlightenment: entrance enlightenment*
i3: i3*
awesome: awesome awesome-client
dwm: dwm.*
sway: sway
weston: weston
cage: cage
wayfire: wayfire
gui: lightdm colord seatd greetd gkrellm slim qingy dconf* *gvfs gvfs*
gui: '*systemd --user*' xdg-* at-spi-*

webbrowser: *chrome-sandbox* *google-chrome* *chromium* *firefox* vivaldi* opera* epiphany chrome*
webbrowser: lynx elinks w3m w3mmee links
mua: evolution-* thunderbird* mutt neomutt pine mailx alpine

# -----------------------------------------------------------------------------
# Kernel / System

ksmd: ksmd
khugepaged: khugepaged
kdamond: kdamond
kswapd: kswapd
zswap: zswap
kcompactd: kcompactd

system: systemd-* udisks* udevd* *udevd ipv6_addrconf dbus-* rtkit*
system: mdadm acpid uuidd upowerd elogind* eudev mdev lvmpolld dmeventd
system: accounts-daemon rngd haveged rasdaemon irqbalance start-stop-daemon
system: supervise-daemon openrc* init runit runsvdir runsv auditd lsmd
system: abrt* nscd rtkit-daemon gpg-agent usbguard*

kernel: kworker kthreadd kauditd lockd khelper kdevtmpfs khungtaskd rpciod
kernel: fsnotify_mark kthrotld deferwq scsi_* kdmflush oom_reaper kdevtempfs
kernel: ksoftirqd

# -----------------------------------------------------------------------------
# inetd

inetd: inetd xinetd

# -----------------------------------------------------------------------------
# other application servers

consul: consul

kafka: *kafka.Kafka*

rabbitmq: *rabbitmq*

sidekiq: *sidekiq*
java: java
ipfs: ipfs

node: node
factorio: factorio

p4: p4*

git-services: gitea gitlab-runner

freeswitch: freeswitch*

# -------- web3 / blockchains ----------

go-ethereum: geth*
nethermind-ethereum: nethermind*
besu-ethereum: besu*
openEthereum: openethereum*
urbit: urbit*
bitcoin-node: *bitcoind* lnd*
filecoin: lotus* lotus-miner* lotus-worker*
solana: solana*
web3: *hardhat* *ganache* *truffle* *brownie* *waffle*
terra: terra* mantle*

# -----------------------------------------------------------------------------
# chaos engineering tools

stress: stress stress-ng*
gremlin: gremlin*

# -----------------------------------------------------------------------------
# load testing tools

locust: locust

# -----------------------------------------------------------------------------
# data science and machine learning tools

jupyter: jupyter*

# -----------------------------------------------------------------------------
# File synchronization tools

filesync: dropbox syncthing
