go.d.plugin
is a Netdata
external plugin. It is an orchestrator for data collection modules written in go
.
- It runs as an independent process
ps fax
shows it. - It is started and stopped automatically by
Netdata
. - It communicates with
Netdata
via a unidirectional pipe (sending data to theNetdata
daemon). - Supports any number of data collection modules.
- Allows each module to have any number of data collection jobs.
Shipped with Netdata
.
If you have time and willing to help, there are a lof of ways to contribute:
- Fix and report bugs
- Review code and feature proposals
- Contribute modules (wip, module interface may be changed soon)
Name | Monitors |
---|---|
activemq | ActiveMQ |
apache | Apache |
bind | ISC Bind |
cockroachdb | CockroachDB |
consul | Consul |
coredns | CoreDNS |
couchbase | Couchbase |
couchdb | CouchDB |
dnsdist | Dnsdist |
dnsmasq | Dnsmasq DNS Forwarder |
dnsmasq_dhcp | Dnsmasq DHCP |
dns_query | DNS Query RTT |
docker_engine | Docker Engine |
dockerhub | Docker Hub |
elasticsearch | Elasticsearch |
energid | Energi Core |
example | - |
filecheck | Files and Directories |
fluentd | Fluentd |
freeradius | FreeRADIUS |
hdfs | HDFS |
httpcheck | Any HTTP Endpoint |
isc_dhcpd | ISC dhcpd |
k8s_kubelet | Kubelet |
k8s_kubeproxy | Kube-proxy |
lighttpd | Lighttpd |
lighttpd2 | Lighttpd2 |
logstash | Logstash |
mysql | MySQL |
nginx | NGINX |
nginxvts | NGINX VTS |
openvpn | OpenVPN |
phpdaemon | phpDaemon |
phpfpm | PHP-FPM |
pihole | Pi-hole |
pika | Pika |
prometheus | Any Prometheus Endpoint |
portcheck | Any TCP Endpoint |
powerdns | PowerDNS Authoritative Server |
powerdns_recursor | PowerDNS Recursor |
pulsar | Apache Pulsar |
rabbitmq | RabbitMQ |
redis | Redis |
scaleio | Dell EMC ScaleIO |
solr | Solr |
squidlog | Squid |
springboot2 | Spring Boot2 |
systemdunits | Systemd unit state |
tengine | Tengine |
unbound | Unbound |
vcsa | vCenter Server Appliance |
vernemq | VerneMQ |
vsphere | VMware vCenter Server |
web_log | Apache/NGINX |
whoisquery | Domain Expiry |
wmi | Windows Machines |
x509check | Digital Certificates |
zookeeper | ZooKeeper |
Edit the go.d.conf
configuration file using edit-config
from the Netdata config
directory, which is typically at /etc/netdata
.
cd /etc/netdata # Replace this path with your Netdata config directory
sudo ./edit-config go.d.conf
Configurations are written in YAML.
- Add your module to the modules dir.
- Import the module in the main.go.
- To build it execute
make
from the plugin root dir orhack/go-build.sh
. - Run it in the debug mode
bin/godplugin -d -m <MODULE_NAME>
. - Use
make clean
when you are done with testing.
Plugin CLI:
Usage:
orchestrator [OPTIONS] [update every]
Application Options:
-m, --modules= module name to run (default: all)
-c, --config-dir= config dir to read
-w, --watch-path= config path to watch
-d, --debug debug mode
-v, --version display the version and exit
Help Options:
-h, --help Show this help message
To debug specific module:
# become user netdata
sudo su -s /bin/bash netdata
# run plugin in debug mode
./go.d.plugin -d -m <module name>
Change <module name>
to the module name you want to debug.
See the whole list of available modules.