go.d.plugin
go.d.plugin is a Netdata external plugin:
- What it does: collects metrics from databases, middleware, services, APIs, and infrastructure components using built-in collectors.
- How you use it:
- set collector-specific jobs in
config/go.d/*.conf, - restart Netdata and the collector jobs start automatically.
- set collector-specific jobs in
- Operational behavior:
- runs as a separate process from Netdata core (visible in
ps fax), - lifecycle is managed by Netdata (start/stop/restart),
- communicates through the external plugin pipe.
- runs as a separate process from Netdata core (visible in
- Scale model:
- supports many collectors,
- each collector can run multiple jobs,
- collectors can be added/extended independently.
Required Linux capabilities
All capabilities are set automatically during Netdata installation using the official installation method.
| Capability | Required by |
|---|---|
| CAP_NET_RAW | Ping |
| CAP_NET_ADMIN | Wireguard |
| CAP_DAC_READ_SEARCH | Filecheck |
Available collectors
Data Collection Collectors
| Name | Monitors |
|---|---|
| adaptec_raid | Adaptec Hardware RAID |
| activemq | ActiveMQ |
| ap | Wireless AP |
| apache | Apache |
| apcupsd | UPS (APC) |
| azure_monitor | Azure Monitor |
| beanstalk | Beanstalk |
| bind | ISC Bind |
| boinc | BOINC |
| cassandra | Cassandra |
| cato_networks | Cato Networks |
| ceph | Ceph |
| chrony | Chrony |
| clickhouse | ClickHouse |
| cloudwatch | Amazon CloudWatch |
| cockroachdb | CockroachDB |
| consul | Consul |
| coredns | CoreDNS |
| couchbase | Couchbase |
| couchdb | CouchDB |
| dmcache | DMCache |
| dnsdist | Dnsdist |
| dnsmasq | Dnsmasq DNS Forwarder |
| dnsmasq_dhcp | Dnsmasq DHCP |
| dns_query | DNS Query RTT |
| docker | Docker Engine |
| docker_engine | Docker Engine |
| dockerhub | Docker Hub |
| dovecot | Dovecot |
| elasticsearch | Elasticsearch/OpenSearch |
| envoy | Envoy |
| exim | Exim |
| fail2ban | Fail2Ban Jails |
| filecheck | Files and Directories |
| fluentd | Fluentd |
| freeradius | FreeRADIUS |
| gearman | Gearman |
| hddtemp | Disks temperature |
| hdfs | HDFS |
| hpssa | HPE Smart Array |
| httpcheck | Any HTTP Endpoint |
| icecast | Icecast |
| intelgpu | Intel integrated GPU |
| ipfs | IPFS |
| isc_dhcpd | ISC DHCP |
| jetson | NVIDIA Jetson |
| k8s_kubelet | Kubelet |
| k8s_kubeproxy | Kube-proxy |
| k8s_state | Kubernetes cluster state |
| lighttpd | Lighttpd |
| litespeed | Litespeed |
| logind | systemd-logind |
| logstash | Logstash |
| lvm | LVM logical volumes |
| maxscale | MaxScale |
| megacli | MegaCli Hardware Raid |
| memcached | Memcached |
| mongoDB | MongoDB |
| monit | Monit |
| mysql | MySQL |
| nats | NATS |
| nginx | NGINX |
| nginxplus | NGINX Plus |
| nginxunit | NGINX Unit |
| nginxvts | NGINX VTS |
| nsd | NSD (NLnet Labs) |
| ntpd | NTP daemon |
| nvidia_smi | Nvidia SMI |
| nvme | NVMe devices |
| openldap | OpenLDAP |
| openvpn | OpenVPN |
| openvpn_status_log | OpenVPN |
| panos | Palo Alto Networks PAN-OS |
| pgbouncer | PgBouncer |
| oracledb | Oracle DB |
| phpdaemon | phpDaemon |
| phpfpm | PHP-FPM |
| pihole | Pi-hole |
| pika | Pika |
| ping | Any network host |
| prometheus | Any Prometheus Endpoint |
| portcheck | Any TCP Endpoint |
| postgres | PostgreSQL |
| postfix | Postfix |
| powerdns | PowerDNS Authoritative Server |
| powerdns_recursor | PowerDNS Recursor |
| proxysql | ProxySQL |
| pulsar | Apache Pulsar |
| puppet | Puppet |
| rabbitmq | RabbitMQ |
| redfish | Redfish BMCs |
| redis | Redis |
| rethinkdb | RethinkDB |
| riakkv | Riak KV |
| rspamd | Rspamd |
| s3check | S3 Compatible Object Storage |
| samba | Samba |
| scaleio | Dell EMC ScaleIO |
| SNMP | SNMP |
| squid | Squid |
| squidlog | Squid |
| smartctl | S.M.A.R.T Storage Devices |
| smbios_memory | SMBIOS Memory Inventory |
| spigotmc | SpigotMC |
| storcli | Broadcom Hardware RAID |
| supervisord | Supervisor |
| systemdunits | Systemd unit state |
| tengine | Tengine |
| tomcat | Tomcat |
| tor | Tor |
| traefik | Traefik |
| typesense | Typesense |
| unbound | Unbound |
| upsd | UPSd (Nut) |
| uwsgi | uWSGI |
| varnish | Varnish |
| vcsa | vCenter Server Appliance |
| vernemq | VerneMQ |
| vsphere | VMware vCenter Server |
| w1sensor | 1-Wire Sensors |
| web_log | Apache/NGINX |
| wireguard | WireGuard |
| whoisquery | Domain Expiry |
| x509check | Digital Certificates |
| yugabytedb | YugabyteDB |
| zfspool | ZFS Pools |
| zookeeper | ZooKeeper |
Configuration
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.
Enable a collector
To enable a collector you should edit go.d.conf to uncomment the collector in question and change it from no
to yes.
For example, to enable the example plugin you would need to update go.d.conf from something like:
modules:
# example: no
to
modules:
example: yes
Then restart netdata for the change to take effect.
Troubleshooting
HTTP response-size errors
If a collector logs HTTP response body exceeds the 64 MiB limit, reading a response crossed its HTTP
response-size limit. Gzip decompression does not bypass the limit. Depending on the collector, this can fail the
collection or leave only the metrics from other successful requests. Some SDK integrations report a sanitized error
instead of this exact message.
- For HTTPCheck, use a dedicated health-check endpoint with a smaller response. A body-read failure reports
bad_contentand a response length of zero, even without aresponse_matchrule, and can trigger its existing alerts. - For Prometheus endpoints, reduce the metrics exposed by the exporter or target. Collector-side selectors, relabeling and series limits do not shrink the downloaded response.
- For other API collectors, reduce the data returned by the target using its supported API controls, while preserving the response format the collector needs. If the API cannot return a smaller response, contact Netdata support with the collector name and failing API operation.
There is no option to raise this limit; increasing timeout does not change it. The limit applies while reading
HTTP responses, so a parser that finishes early may accept a response without reading all of its trailing content.
Some collectors have stricter limits. PAN-OS and independently managed cloud, vSphere and Kubernetes SDK clients
are outside this shared limit; local-file and FastCGI inputs are also outside it.
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
Debugging a Specific Collector
To debug a particular collector, first switch to the Netdata user:
sudo su -s /bin/bash netdata
Then run the plugin in debug mode, specifying your target collector:
# For standard installations
/usr/libexec/netdata/plugins.d/go.d.plugin -d -m <collector_name>
# For static installations (e.g., in /opt)
/opt/netdata/usr/libexec/netdata/plugins.d/go.d.plugin -d -m <collector_name>
Replace <collector_name> with the specific collector you wish to debug.
Debug mode (-d) collects data continuously and does not exit on its own — press Ctrl+C to stop it when you are done.
Output appears once per collection interval (update_every), which varies by collector (commonly 1–60 seconds). Wait at least one full interval before concluding the collector is broken.
If you see no output after waiting, the collector likely failed to connect to its target or has no configured job — check the log lines printed above for connection or autodetection errors.
Do you have any feedback for this page? If so, you can open a new issue on our netdata/learn repository.