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. Servers can be either local or remote.
450 * nginx with configured 'ngx_http_stub_status_module'
451 * 'location /stub_status'
452 Example nginx configuration can be found in 'python.d/nginx.conf'
454 It produces following charts:
456 1. **Active Connections**
459 2. **Requests** in requests/s
462 3. **Active Connections by Status**
467 4. **Connections Rate** in connections/s
473 Needs only `url` to server's `stub_status`
475 Here is an example for local server:
482 url : 'http://localhost/stub_status'
486 Without configuration, module attempts to connect to `http://localhost/stub_status`
492 Module monitors nginx access log and produces only one chart:
494 1. **nginx status codes** in requests/s
502 Sample for two vhosts:
506 path: '/var/log/nginx/access-A.log'
510 path: '/var/log/nginx/access-B.log'
513 When no configuration file is found, module tries to parse `/var/log/nginx/access.log` file.
519 This module will monitor one or more php-fpm instances depending on configuration.
522 * php-fpm with enabled `status` page
523 * access to `status` page via web server
525 It produces following charts:
527 1. **Active Connections**
532 2. **Requests** in requests/s
541 Needs only `url` to server's `status`
543 Here is an example for local instance:
550 url : 'http://localhost/status'
554 Without configuration, module attempts to connect to `http://localhost/status`
560 Simple module executing `postfix -p` to grab postfix queue.
562 It produces only two charts:
564 1. **Postfix Queue Emails**
567 2. **Postfix Queue Emails Size** in KB
570 Configuration is not needed.
576 Get INFO data from redis instance.
578 Following charts are drawn:
580 1. **Operations** per second
583 2. **Hit rate** in percent
586 3. **Memory utilization** in kilobytes
591 * lines are creates dynamically based on how many databases are there
605 socket : '/var/lib/redis/redis.sock'
613 When no configuration file is found, module tries to connect to TCP/IP socket: `localhost:6379`.
619 System sensors information.
621 Charts are created dynamically.
625 For detailed configuration information please read [`sensors.conf`](https://github.com/firehol/netdata/blob/master/conf.d/python.d/sensors.conf) file.
631 This module will monitor one or more squid instances depending on configuration.
633 It produces following charts:
635 1. **Client Bandwidth** in kilobits/s
640 2. **Client Requests** in requests/s
645 3. **Server Bandwidth** in kilobits/s
649 4. **Server Requests** in requests/s
659 request : 'cache_object://localhost:3128/counters'
664 Without any configuration module will try to autodetect where squid presents its `counters` data
670 Present tomcat containers memory utilization.
674 1. **Requests** per second
677 2. **Volume** in KB/s
684 4. **JVM Free Memory** in MB
692 url : 'http://127.0.0.1:8080/manager/status?XML=true'
693 user : 'tomcat_username'
694 pass : 'secret_tomcat_password'
697 Without configuration, module attempts to connect to `http://localhost:8080/manager/status?XML=true`, without any credentials.
698 So it will probably fail.