3 Every module should be compatible with python2 and python3.
4 All third party libraries should be installed system-wide or in `python_modules` directory.
5 Module configurations are written in YAML and **pyYAML is required**.
7 Every configuration file must have one of two formats:
9 - Configuration for only one job:
12 update_every : 2 # update frequency
13 retries : 1 # how many failures in update() is tolerated
14 priority : 20000 # where it is shown on dashboard
16 other_var1 : bla # variables passed to module
20 - Configuration for many jobs (ex. mysql):
29 update_every : 5 # job update frequency
30 other_var1 : some_val # module specific variable
33 priority : 5 # job position on dashboard
34 retries : 20 # job retries
35 other_var2 : val # module specific variable
38 `update_every`, `retries`, and `priority` are always optional.
42 The following python.d modules are supported:
46 This module will monitor one or more apache servers depending on configuration.
49 * apache with enabled `mod_status`
51 It produces the following charts:
53 1. **Requests** in requests/s
59 3. **Async Connections**
64 4. **Bandwidth** in kilobytes/s
71 6. **Lifetime Avg. Requests/s** in requests/s
74 7. **Lifetime Avg. Bandwidth/s** in kilobytes/s
77 8. **Lifetime Avg. Response Size** in bytes/request
82 Needs only `url` to server's `server-status?auto`
84 Here is an example for 2 servers:
91 url : 'http://localhost/server-status?auto'
95 url : 'http://www.apache.org/server-status?auto'
100 Without configuration, module attempts to connect to `http://localhost/server-status?auto`
106 Module monitors apache mod_cache log and produces only one chart:
108 **cached responses** in percent cached
121 log_path : '/var/log/apache2/cache.log'
124 If no configuration is given, module will attempt to read log file at `/var/log/apache2/cache.log`
130 Module shows current cpu frequency by looking at appropriate files in /sys/devices
133 Processor which presents data scaling frequency data
135 It produces one chart with multiple lines (one line per core).
142 sys_dir: "/sys/devices"
145 If no configuration is given, module will search for `scaling_cur_freq` files in `/sys/devices` directory.
146 Directory is also prefixed with `NETDATA_HOST_PREFIX` if specified.
152 This module provides statistics information from dovecot server.
153 Statistics are taken from dovecot socket by executing `EXPORT global` command.
154 More information about dovecot stats can be found on [project wiki page.](http://wiki2.dovecot.org/Statistics)
157 Dovecot unix socket with R/W permissions for user netdata or dovecot with configured TCP/IP socket.
159 Module gives information with following charts:
161 1. **logins and sessions**
165 2. **commands** - number of IMAP commands
172 4. **Context Switches**
176 5. **disk** in bytes/s
180 6. **bytes** in bytes/s
184 7. **number of syscalls** in syscalls/s
188 8. **lookups** - number of lookups per second
192 9. **hits** - number of cache hits
195 10. **attempts** - authorization attemts
199 11. **cache** - cached authorization hits
203 12. **active sessions**
221 socket : '/var/run/dovecot/stats'
224 If no configuration is given, module will attempt to connect to dovecot using unix socket localized in `/var/run/dovecot/stats`
230 Simple module executing `exim -bpc` to grab exim queue.
231 This command can take a lot of time to finish its execution thus it is not recommended to run it every second.
233 It produces only one chart:
235 1. **Exim Queue Emails**
238 Configuration is not needed.
244 Module monitors disk temperatures from one or more hddtemp daemons.
247 Running `hddtemp` in daemonized mode with access on tcp port
249 It produces one chart **Temperature** with dynamic number of dimensions (one per disk)
261 If no configuration is given, module will attempt to connect to hddtemp daemon on `127.0.0.1:7634` address
267 Module monitors [IPFS](https://ipfs.io) basic information.
269 1. **Bandwidth** in kbits/s
278 Only url to IPFS server is needed.
285 url : 'http://localhost:5001'
292 Memcached monitoring module. Data grabbed from [stats interface](https://github.com/memcached/memcached/wiki/Commands#stats).
294 1. **Network** in kilobytes/s
298 2. **Connections** per second
303 3. **Items** in cluster
307 4. **Evicted and Reclaimed** items
311 5. **GET** requests/s
315 6. **GET rate** rate in requests/s
318 7. **SET rate** rate in requests/s
321 8. **DELETE** requests/s
325 9. **CAS** requests/s
330 10. **Increment** requests/s
334 11. **Decrement** requests/s
338 12. **Touch** requests/s
342 13. **Touch rate** rate in requests/s
356 If no configuration is given, module will attempt to connect to memcached instance on `127.0.0.1:11211` address.
362 Module monitors one or more mysql servers
365 * python library [MySQLdb](https://github.com/PyMySQL/mysqlclient-python) (faster) or [PyMySQL](https://github.com/PyMySQL/PyMySQL) (slower)
367 It will produce following charts (if data is available):
369 1. **Bandwidth** in kbps
373 2. **Queries** in queries/sec
378 3. **Operations** in operations/sec
395 4. **Table Locks** in locks/sec
399 5. **Select Issues** in issues/sec
406 6. **Sort Issues** in issues/sec
413 You can provide, per server, the following:
415 1. username which have access to database (deafults to 'root')
416 2. password (defaults to none)
417 3. mysql my.cnf configuration file
418 4. mysql socket (optional)
419 5. mysql host (ip or hostname)
420 6. mysql port (defaults to 3306)
422 Here is an example for 3 servers:
430 'my.cnf' : '/etc/mysql/my.cnf'
435 pass : 'blablablabla'
436 socket : '/var/run/mysqld/mysqld.sock'
447 If no configuration is given, module will attempt to connect to mysql server via unix socket at `/var/run/mysqld/mysqld.sock` without password and with username `root`
453 This module will monitor one or more nginx servers depending on configuration. Servers can be either local or remote.
456 * nginx with configured 'ngx_http_stub_status_module'
457 * 'location /stub_status'
459 Example nginx configuration can be found in 'python.d/nginx.conf'
461 It produces following charts:
463 1. **Active Connections**
466 2. **Requests** in requests/s
469 3. **Active Connections by Status**
474 4. **Connections Rate** in connections/s
480 Needs only `url` to server's `stub_status`
482 Here is an example for local server:
489 url : 'http://localhost/stub_status'
493 Without configuration, module attempts to connect to `http://localhost/stub_status`
499 Module monitors nginx access log and produces only one chart:
501 1. **nginx status codes** in requests/s
509 Sample for two vhosts:
513 path: '/var/log/nginx/access-A.log'
517 path: '/var/log/nginx/access-B.log'
520 When no configuration file is found, module tries to parse `/var/log/nginx/access.log` file.
526 This module will monitor one or more php-fpm instances depending on configuration.
529 * php-fpm with enabled `status` page
530 * access to `status` page via web server
532 It produces following charts:
534 1. **Active Connections**
539 2. **Requests** in requests/s
548 Needs only `url` to server's `status`
550 Here is an example for local instance:
557 url : 'http://localhost/status'
561 Without configuration, module attempts to connect to `http://localhost/status`
567 Simple module executing `postfix -p` to grab postfix queue.
569 It produces only two charts:
571 1. **Postfix Queue Emails**
574 2. **Postfix Queue Emails Size** in KB
577 Configuration is not needed.
583 Get INFO data from redis instance.
585 Following charts are drawn:
587 1. **Operations** per second
590 2. **Hit rate** in percent
593 3. **Memory utilization** in kilobytes
598 * lines are creates dynamically based on how many databases are there
612 socket : '/var/lib/redis/redis.sock'
620 When no configuration file is found, module tries to connect to TCP/IP socket: `localhost:6379`.
626 System sensors information.
628 Charts are created dynamically.
632 For detailed configuration information please read [`sensors.conf`](https://github.com/firehol/netdata/blob/master/conf.d/python.d/sensors.conf) file.
638 This module will monitor one or more squid instances depending on configuration.
640 It produces following charts:
642 1. **Client Bandwidth** in kilobits/s
647 2. **Client Requests** in requests/s
652 3. **Server Bandwidth** in kilobits/s
656 4. **Server Requests** in requests/s
666 request : 'cache_object://localhost:3128/counters'
671 Without any configuration module will try to autodetect where squid presents its `counters` data
677 Present tomcat containers memory utilization.
681 1. **Requests** per second
684 2. **Volume** in KB/s
691 4. **JVM Free Memory** in MB
699 url : 'http://127.0.0.1:8080/manager/status?XML=true'
700 user : 'tomcat_username'
701 pass : 'secret_tomcat_password'
704 Without configuration, module attempts to connect to `http://localhost:8080/manager/status?XML=true`, without any credentials.
705 So it will probably fail.