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 faxshows it. - It is started and stopped automatically by
Netdata. - It communicates with
Netdatavia a unidirectional pipe (sending data to theNetdatadaemon). - 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.confConfigurations are written in YAML.
- Add your module to the modules dir.
- Import the module in the main.go.
- To build it execute
makefrom the plugin root dir orhack/go-build.sh. - Run it in the debug mode
bin/godplugin -d -m <MODULE_NAME>. - Use
make cleanwhen 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 messageTo 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.