#
# 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*
node.d.plugin: *node.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
fail2ban: fail2ban*

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

httpd: apache* httpd nginx* lighttpd hiawatha
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

email: dovecot imapd pop3d amavis* zmstat* zmmailboxdmgr saslauthd opendkim postfwd2 smtp* lmtp* sendmail postfix master pickup qmgr showq tlsmgr postscreen oqmgr

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

ppp: ppp*
vpn: openvpn pptp* cjdroute gvpe tincd wireguard
wifi: hostapd wpa_supplicant NetworkManager
routing: ospfd* ospf6d* bgpd bfdd fabricd isisd eigrpd sharpd staticd ripd ripngd pimd pbrd nhrpd ldpd zebra vrrpd vtysh bird*
modem: ModemManager
tor: tor

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

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

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

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

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

chat: irssi *vines* *prosody* murmurd

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

logs: ulogd* syslog* rsyslog* logrotate systemd-journald rotatelogs
nms: snmpd vnstatd smokeping zabbix* monit munin* mon openhpid watchdog tailon nrpe
splunk: splunkd
azure: mdsd *waagent* *omiserver* *omiagent* hv_kvp_daemon hv_vss_daemon *auoms* *omsagent*

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

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

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

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

aws-s3: '*aws s3*'
aws: aws

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

containers: lxc* docker* balena*
VMs: vbox* VBox* qemu*

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

ssh: ssh* scp dropbear

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

print: cups* lpd lpq

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

time: ntp* systemd-timesyn* chronyd

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

dhcp: *dhcp*

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

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

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

build: cc1 cc1plus as gcc* cppcheck ld make cmake automake autoconf autoreconf
build: git gdb valgrind*

# -----------------------------------------------------------------------------
# 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 avahi* Plex* jellyfin squeeze* jackett Ombi

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

# -----------------------------------------------------------------------------
# X

X: X Xorg xinit lightdm xdm pulseaudio gkrellm xfwm4 xfdesktop xfce* Thunar
X: xfsettingsd xfconfd gnome-* gdm gconf* dconf* xfconf* *gvfs gvfs* slim
X: kdeinit* kdm plasmashell
X: evolution-* firefox chromium opera vivaldi-bin epiphany WebKit*
X: '*systemd --user*' chrome *chrome-sandbox* *google-chrome* *chromium* *firefox*

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

ksmd: ksmd

system: systemd-* udisks* udevd* *udevd connmand ipv6_addrconf dbus-* rtkit*
system: inetd xinetd mdadm polkitd acpid uuidd packagekitd upowerd colord
system: accounts-daemon rngd haveged

kernel: kthreadd kauditd lockd khelper kdevtmpfs khungtaskd rpciod
kernel: fsnotify_mark kthrotld deferwq scsi_*

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

