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 | Disabled |
|---|---|---|
| activemq | ActiveMQ |
|
| apache | Apache |
yes |
| bind | ISC Bind |
yes |
| cockroachdb | CockroachDB |
|
| consul | Consul |
|
| coredns | CoreDNS |
|
| dnsmasq_dhcp | Dnsmasq |
|
| dns_query | DNS Query RTT |
|
| docker_engine | Docker Engine |
|
| dockerhub | Docker Hub |
|
| example | - | yes |
| fluentd | Fluentd |
|
| freeradius | FreeRADIUS |
yes |
| hdfs | HDFS |
|
| httpcheck | Any HTTP Endpoint |
|
| k8s_kubelet | Kubelet |
|
| k8s_kubeproxy | Kube-proxy |
|
| lighttpd | Lighttpd |
yes |
| lighttpd2 | Lighttpd2 |
|
| logstash | Logstash |
|
| mysql | MySQL |
yes |
| nginx | NGINX |
yes |
| openvpn | OpenVPN |
yes |
| phpdaemon | phpDaemon |
|
| phpfpm | PHP-FPM |
yes |
| pihole | Pi-hole |
|
| portcheck | Any TCP Endpoint |
|
| pulsar | Apache Pulsar |
|
| rabbitmq | RabbitMQ |
yes |
| scaleio | Dell EMC ScaleIO |
|
| solr | Solr |
|
| squidlog | Squid |
yes |
| springboot2 | Spring Boot2 |
|
| tengine | Tengine |
|
| unbound | Unbound |
|
| vcsa | vCenter Server Appliance |
|
| vernemq | VerneMQ |
|
| vsphere | VMware vCenter Server |
|
| web_log | Apache/NGINX |
yes |
| whoisquery | Domain Expiry |
yes |
| wmi | Windows Machines |
|
| x509check | Digital Certificates |
|
| zookeeper | ZooKeeper |
We are in process of migrating collectors from python to go.
Configurations are incompatible. All rewritten in go modules are disabled by default.
This is a temporary solution, we are working on it.
To enable module please do the following:
- explicitly disable python module in
python.d.conf - explicitly enable go module in
go.d.conf - move python module jobs to go module configuration file (change syntax, see go module configuration file for details).
- restart
netdata.service
If case of problems:
- check
error.logfor module related errors (grep <module name> error.log) - run plugin in debug mode
go.d.plugin itself can be configured using the configuration file /etc/netdata/go.d.conf
(to edit it on your system run /etc/netdata/edit-config go.d.conf). This file is a BASH script.
Configurations 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:
go.d.plugin [OPTIONS] [update every]
Application Options:
-d, --debug debug mode
-m, --modules= modules name (default: all)
-c, --config= config dir
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.