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
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'
453 Example nginx configuration can be found in 'python.d/nginx.conf'
455 It produces following charts:
457 1. **Active Connections**
460 2. **Requests** in requests/s
463 3. **Active Connections by Status**
468 4. **Connections Rate** in connections/s
474 Needs only `url` to server's `stub_status`
476 Here is an example for local server:
483 url : 'http://localhost/stub_status'
487 Without configuration, module attempts to connect to `http://localhost/stub_status`
493 Module monitors nginx access log and produces only one chart:
495 1. **nginx status codes** in requests/s
503 Sample for two vhosts:
507 path: '/var/log/nginx/access-A.log'
511 path: '/var/log/nginx/access-B.log'
514 When no configuration file is found, module tries to parse `/var/log/nginx/access.log` file.
520 This module will monitor one or more php-fpm instances depending on configuration.
523 * php-fpm with enabled `status` page
524 * access to `status` page via web server
526 It produces following charts:
528 1. **Active Connections**
533 2. **Requests** in requests/s
542 Needs only `url` to server's `status`
544 Here is an example for local instance:
551 url : 'http://localhost/status'
555 Without configuration, module attempts to connect to `http://localhost/status`
561 Simple module executing `postfix -p` to grab postfix queue.
563 It produces only two charts:
565 1. **Postfix Queue Emails**
568 2. **Postfix Queue Emails Size** in KB
571 Configuration is not needed.
577 Get INFO data from redis instance.
579 Following charts are drawn:
581 1. **Operations** per second
584 2. **Hit rate** in percent
587 3. **Memory utilization** in kilobytes
592 * lines are creates dynamically based on how many databases are there
606 socket : '/var/lib/redis/redis.sock'
614 When no configuration file is found, module tries to connect to TCP/IP socket: `localhost:6379`.
620 System sensors information.
622 Charts are created dynamically.
626 For detailed configuration information please read [`sensors.conf`](https://github.com/firehol/netdata/blob/master/conf.d/python.d/sensors.conf) file.
632 This module will monitor one or more squid instances depending on configuration.
634 It produces following charts:
636 1. **Client Bandwidth** in kilobits/s
641 2. **Client Requests** in requests/s
646 3. **Server Bandwidth** in kilobits/s
650 4. **Server Requests** in requests/s
660 request : 'cache_object://localhost:3128/counters'
665 Without any configuration module will try to autodetect where squid presents its `counters` data
671 Present tomcat containers memory utilization.
675 1. **Requests** per second
678 2. **Volume** in KB/s
685 4. **JVM Free Memory** in MB
693 url : 'http://127.0.0.1:8080/manager/status?XML=true'
694 user : 'tomcat_username'
695 pass : 'secret_tomcat_password'
698 Without configuration, module attempts to connect to `http://localhost:8080/manager/status?XML=true`, without any credentials.
699 So it will probably fail.