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 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
215 socket : '/var/run/dovecot/stats'
218 If no configuration is given, module will attempt to connect to dovecot using unix socket localized in `/var/run/dovecot/stats`
224 Simple module executing `exim -bpc` to grab exim queue.
225 This command can take a lot of time to finish its execution thus it is not recommended to run it every second.
227 It produces only one chart:
229 1. **Exim Queue Emails**
232 Configuration is not needed.
238 Module monitors disk temperatures from one or more hddtemp daemons
241 Running `hddtemp` in daemonized mode with access on tcp port
243 It produces one chart **Temperature** with dynamic number of dimensions (one per disk)
255 If no configuration is given, module will attempt to connect to hddtemp daemon on `127.0.0.1:7634` address
261 Module monitors [IPFS](https://ipfs.io) basic information.
263 1. **Bandwidth** in kbits/s
272 Only url to IPFS server is needed.
279 url : 'http://localhost:5001'
286 Memcached monitoring module. Data grabbed from [stats interface](https://github.com/memcached/memcached/wiki/Commands#stats).
288 1. **Network** in kilobytes/s
292 2. **Connections** per second
297 3. **Items** in cluster
301 4. **Evicted and Reclaimed** items
305 5. **GET** requests/s
309 6. **GET rate** rate in requests/s
312 7. **SET rate** rate in requests/s
315 8. **DELETE** requests/s
319 9. **CAS** requests/s
324 10. **Increment** requests/s
328 11. **Decrement** requests/s
332 12. **Touch** requests/s
336 13. **Touch rate** rate in requests/s
350 If no configuration is given, module will attempt to connect to memcached instance on `127.0.0.1:11211` address.
356 Module monitors one or more mysql servers
359 * python library [MySQLdb](https://github.com/PyMySQL/mysqlclient-python) (faster) or [PyMySQL](https://github.com/PyMySQL/PyMySQL) (slower)
361 It will produce following charts (if data is available):
363 1. **Bandwidth** in kbps
367 2. **Queries** in queries/sec
372 3. **Operations** in operations/sec
389 4. **Table Locks** in locks/sec
393 5. **Select Issues** in issues/sec
400 6. **Sort Issues** in issues/sec
407 You can provide, per server, the following:
409 1. username which have access to database (deafults to 'root')
410 2. password (defaults to none)
411 3. mysql my.cnf configuration file
412 4. mysql socket (optional)
413 5. mysql host (ip or hostname)
414 6. mysql port (defaults to 3306)
416 Here is an example for 3 servers:
424 'my.cnf' : '/etc/mysql/my.cnf'
429 pass : 'blablablabla'
430 socket : '/var/run/mysqld/mysqld.sock'
441 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`
447 This module will monitor one or more nginx servers depending on configuration.
450 * nginx with configured `stub_status`
452 It produces following charts:
454 1. **Active Connections**
457 2. **Requests** in requests/s
460 3. **Active Connections by Status**
465 4. **Connections Rate** in connections/s
471 Needs only `url` to server's `stub_status`
473 Here is an example for local server:
480 url : 'http://localhost/stub_status'
484 Without configuration, module attempts to connect to `http://localhost/stub_status`
490 Module monitors nginx access log and produces only one chart:
492 1. **nginx status codes** in requests/s
500 Sample for two vhosts:
504 path: '/var/log/nginx/access-A.log'
508 path: '/var/log/nginx/access-B.log'
511 When no configuration file is found, module tries to parse `/var/log/nginx/access.log` file.
517 This module will monitor one or more php-fpm instances depending on configuration.
520 * php-fpm with enabled `status` page
521 * access to `status` page via web server
523 It produces following charts:
525 1. **Active Connections**
530 2. **Requests** in requests/s
539 Needs only `url` to server's `status`
541 Here is an example for local instance:
548 url : 'http://localhost/status'
552 Without configuration, module attempts to connect to `http://localhost/status`
558 Simple module executing `postfix -p` to grab postfix queue.
560 It produces only two charts:
562 1. **Postfix Queue Emails**
565 2. **Postfix Queue Emails Size** in KB
568 Configuration is not needed.
574 Get INFO data from redis instance.
576 Following charts are drawn:
578 1. **Operations** per second
581 2. **Hit rate** in percent
584 3. **Memory utilization** in kilobytes
589 * lines are creates dynamically based on how many databases are there
603 socket : '/var/lib/redis/redis.sock'
611 When no configuration file is found, module tries to connect to TCP/IP socket: `localhost:6379`.
617 System sensors information.
619 Charts are created dynamically.
623 For detailed configuration information please read [`sensors.conf`](https://github.com/firehol/netdata/blob/master/conf.d/python.d/sensors.conf) file.
629 This module will monitor one or more squid instances depending on configuration.
631 It produces following charts:
633 1. **Client Bandwidth** in kilobits/s
638 2. **Client Requests** in requests/s
643 3. **Server Bandwidth** in kilobits/s
647 4. **Server Requests** in requests/s
657 request : 'cache_object://localhost:3128/counters'
662 Without any configuration module will try to autodetect where squid presents its `counters` data
668 Present tomcat containers memory utilization.
672 1. **Requests** per second
675 2. **Volume** in KB/s
682 4. **JVM Free Memory** in MB
690 url : 'http://127.0.0.1:8080/manager/status?XML=true'
691 user : 'tomcat_username'
692 pass : 'secret_tomcat_password'
695 Without configuration, module attempts to connect to `http://localhost:8080/manager/status?XML=true`, without any credentials.
696 So it will probably fail.