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:
167 3. **commands** - number of IMAP commands
174 5. **Context Switches**
178 6. **disk** in bytes/s
182 7. **bytes** in bytes/s
186 8. **number of syscalls** in syscalls/s
190 9. **lookups** - number of lookups per second
194 10. **hits** - number of cache hits
197 11. **attempts** - authorization attemts
201 12. **cache** - cached authorization hits
217 socket : '/var/run/dovecot/stats'
220 If no configuration is given, module will attempt to connect to dovecot using unix socket localized in `/var/run/dovecot/stats`
226 Simple module executing `exim -bpc` to grab exim queue.
227 This command can take a lot of time to finish its execution thus it is not recommended to run it every second.
229 It produces only one chart:
231 1. **Exim Queue Emails**
234 Configuration is not needed.
240 Module monitors disk temperatures from one or more hddtemp daemons.
243 Running `hddtemp` in daemonized mode with access on tcp port
245 It produces one chart **Temperature** with dynamic number of dimensions (one per disk)
257 If no configuration is given, module will attempt to connect to hddtemp daemon on `127.0.0.1:7634` address
263 Module monitors [IPFS](https://ipfs.io) basic information.
265 1. **Bandwidth** in kbits/s
274 Only url to IPFS server is needed.
281 url : 'http://localhost:5001'
288 Memcached monitoring module. Data grabbed from [stats interface](https://github.com/memcached/memcached/wiki/Commands#stats).
290 1. **Network** in kilobytes/s
294 2. **Connections** per second
299 3. **Items** in cluster
303 4. **Evicted and Reclaimed** items
307 5. **GET** requests/s
311 6. **GET rate** rate in requests/s
314 7. **SET rate** rate in requests/s
317 8. **DELETE** requests/s
321 9. **CAS** requests/s
326 10. **Increment** requests/s
330 11. **Decrement** requests/s
334 12. **Touch** requests/s
338 13. **Touch rate** rate in requests/s
352 If no configuration is given, module will attempt to connect to memcached instance on `127.0.0.1:11211` address.
358 Module monitors one or more mysql servers
361 * python library [MySQLdb](https://github.com/PyMySQL/mysqlclient-python) (faster) or [PyMySQL](https://github.com/PyMySQL/PyMySQL) (slower)
363 It will produce following charts (if data is available):
365 1. **Bandwidth** in kbps
369 2. **Queries** in queries/sec
374 3. **Operations** in operations/sec
391 4. **Table Locks** in locks/sec
395 5. **Select Issues** in issues/sec
402 6. **Sort Issues** in issues/sec
409 You can provide, per server, the following:
411 1. username which have access to database (deafults to 'root')
412 2. password (defaults to none)
413 3. mysql my.cnf configuration file
414 4. mysql socket (optional)
415 5. mysql host (ip or hostname)
416 6. mysql port (defaults to 3306)
418 Here is an example for 3 servers:
426 'my.cnf' : '/etc/mysql/my.cnf'
431 pass : 'blablablabla'
432 socket : '/var/run/mysqld/mysqld.sock'
443 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`
449 This module will monitor one or more nginx servers depending on configuration. Servers can be either local or remote.
452 * nginx with configured 'ngx_http_stub_status_module'
453 * 'location /stub_status'
455 Example nginx configuration can be found in 'python.d/nginx.conf'
457 It produces following charts:
459 1. **Active Connections**
462 2. **Requests** in requests/s
465 3. **Active Connections by Status**
470 4. **Connections Rate** in connections/s
476 Needs only `url` to server's `stub_status`
478 Here is an example for local server:
485 url : 'http://localhost/stub_status'
489 Without configuration, module attempts to connect to `http://localhost/stub_status`
495 Module monitors nginx access log and produces only one chart:
497 1. **nginx status codes** in requests/s
505 Sample for two vhosts:
509 path: '/var/log/nginx/access-A.log'
513 path: '/var/log/nginx/access-B.log'
516 When no configuration file is found, module tries to parse `/var/log/nginx/access.log` file.
522 This module will monitor one or more php-fpm instances depending on configuration.
525 * php-fpm with enabled `status` page
526 * access to `status` page via web server
528 It produces following charts:
530 1. **Active Connections**
535 2. **Requests** in requests/s
544 Needs only `url` to server's `status`
546 Here is an example for local instance:
553 url : 'http://localhost/status'
557 Without configuration, module attempts to connect to `http://localhost/status`
563 Simple module executing `postfix -p` to grab postfix queue.
565 It produces only two charts:
567 1. **Postfix Queue Emails**
570 2. **Postfix Queue Emails Size** in KB
573 Configuration is not needed.
579 Get INFO data from redis instance.
581 Following charts are drawn:
583 1. **Operations** per second
586 2. **Hit rate** in percent
589 3. **Memory utilization** in kilobytes
594 * lines are creates dynamically based on how many databases are there
608 socket : '/var/lib/redis/redis.sock'
616 When no configuration file is found, module tries to connect to TCP/IP socket: `localhost:6379`.
622 System sensors information.
624 Charts are created dynamically.
628 For detailed configuration information please read [`sensors.conf`](https://github.com/firehol/netdata/blob/master/conf.d/python.d/sensors.conf) file.
634 This module will monitor one or more squid instances depending on configuration.
636 It produces following charts:
638 1. **Client Bandwidth** in kilobits/s
643 2. **Client Requests** in requests/s
648 3. **Server Bandwidth** in kilobits/s
652 4. **Server Requests** in requests/s
662 request : 'cache_object://localhost:3128/counters'
667 Without any configuration module will try to autodetect where squid presents its `counters` data
673 Present tomcat containers memory utilization.
677 1. **Requests** per second
680 2. **Volume** in KB/s
687 4. **JVM Free Memory** in MB
695 url : 'http://127.0.0.1:8080/manager/status?XML=true'
696 user : 'tomcat_username'
697 pass : 'secret_tomcat_password'
700 Without configuration, module attempts to connect to `http://localhost:8080/manager/status?XML=true`, without any credentials.
701 So it will probably fail.