From 61f4d8a783f0b715493a661fe969d7d6c051d03c Mon Sep 17 00:00:00 2001 From: paulfantom Date: Mon, 4 Jul 2016 23:49:06 +0200 Subject: [PATCH] update python modules readme --- python.d/README.md | 255 +++++++++++++++++++++++++++++++++++++--- python.d/squid.chart.py | 8 +- 2 files changed, 245 insertions(+), 18 deletions(-) diff --git a/python.d/README.md b/python.d/README.md index 2cf6c52d..a6092053 100644 --- a/python.d/README.md +++ b/python.d/README.md @@ -1,8 +1,8 @@ # Disclaimer -**Python plugin support is experimental and implementation may change in the future** +**Python support is experimental and implementation may change in the future** -Every plugin should be compatible with python2 and python3. +Every module should be compatible with python2 and python3. All third party libraries should be installed system-wide or in `python_modules` directory. Module configurations are written in YAML and **pyYAML is required**. @@ -29,7 +29,6 @@ priority : 20000 local: # job name update_every : 5 # job update frequency - retries : 2 # job retries other_var1 : some_val # module specific variable other_job: @@ -42,14 +41,121 @@ other_job: --- -The following python.d plugins are supported: +The following python.d modules are supported: + +# apache + +This module will monitor one or more apache servers depending on configuration. + +**Requirements:** + * apache with enabled `mod_status` + +It produces following charts: + +1. **Requests** in requests/s + * requests + +2. **Connections** + * connections + +3. **Async Connections** + * keepalive + * closing + * writing + +4. **Bandwidth** in kilobytes/s + * sent + +5. **Workers** + * idle + * busy + +6. **Lifetime Avg. Requests/s** in requests/s + * requests_sec + +7. **Lifetime Avg. Bandwidth/s** in kilobytes/s + * size_sec + +8. **Lifetime Avg. Response Size** in bytes/request + * size_req + +### configuration + +Needs only `url` to server's `server-status?auto` + +Here is an example for 2 servers: + +```yaml +update_every : 10 +priority : 90100 + +local: + url : 'http://localhost/server-status?auto' + retries : 20 + +remote: + url : 'http://www.apache.org/server-status?auto' + update_every : 5 + retries : 4 +``` + +Without configuration, module attempts to connect to `http://localhost/server-status?auto` + +--- + +# apache_cache + +Module monitors apache mod_cache log and produces only one chart: + +**cached responses** in percent cached + * hit + * miss + * other + +### configuration + +Sample: + +```yaml +update_every : 10 +priority : 120000 +retries : 5 +log_path : '/var/log/apache2/cache.log' +``` + +If no configuration is given, module will attempt to read log file at `/var/log/apache2/cache.log` + +--- + +# hddtemp + +Module monitors disk temperatures from one or more hddtemp daemons + +**Requirement:** +Running `hddtemp` in daemonized mode with access on tcp port + +It produces one chart **Temperature** with dynamic number of dimensions (one per disk) + +### configuration + +Sample: + +```yaml +update_every: 3 +host: "127.0.0.1" +port: 7634 +``` + +If no configuration is given, module will attempt to connect to hddtemp daemon on `127.0.0.1:7634` address + +--- # mysql -The plugin will monitor one or more mysql servers +Module monitors one or more mysql servers **Requirements:** - * python module [MySQLdb](https://github.com/PyMySQL/mysqlclient-python) (faster) or [PyMySQL](https://github.com/PyMySQL/PyMySQL) (slower) + * python library [MySQLdb](https://github.com/PyMySQL/mysqlclient-python) (faster) or [PyMySQL](https://github.com/PyMySQL/PyMySQL) (slower) It will produce following charts (if data is available): @@ -99,13 +205,12 @@ It will produce following charts (if data is available): You can provide, per server, the following: -1. a name, anything you like, but keep it short -2. username which have access to database (deafults to 'root') -3. password (defaults to none) -4. mysql my.cnf configuration file -5. mysql socket (optional) -6. mysql host (ip or hostname) -7. mysql port (defaults to 3306) +1. username which have access to database (deafults to 'root') +2. password (defaults to none) +3. mysql my.cnf configuration file +4. mysql socket (optional) +5. mysql host (ip or hostname) +6. mysql port (defaults to 3306) Here is an example for 3 servers: @@ -132,7 +237,129 @@ remote: retries : 20 ``` -If no configuration is given, the plugin will attempt to connect to mysql server via unix socket at `/var/run/mysqld/mysqld.sock` without password and with username `root` +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` + +--- + +# nginx + +This module will monitor one or more nginx servers depending on configuration. + +**Requirements:** + * nginx with configured `stub_status` + +It produces following charts: + +1. **Active Connections** + * active + +2. **Requests** in requests/s + * requests + +3. **Active Connections by Status** + * reading + * writing + * waiting + +4. **Connections Rate** in connections/s + * accepts + * handled + +### configuration + +Needs only `url` to server's `stub_status` + +Here is an example for local server: + +```yaml +update_every : 10 +priority : 90100 + +local: + url : 'http://localhost/stub_status' + retries : 10 +``` + +Without configuration, module attempts to connect to `http://localhost/stub_status` --- +# phpfpm + +This module will monitor one or more php-fpm instances depending on configuration. + +**Requirements:** + * php-fpm with enabled `status` page + * access to `status` page via web server + +It produces following charts: + +1. **Active Connections** + * active + * maxActive + * idle + +2. **Requests** in requests/s + * requests + +3. **Performance** + * reached + * slow + +### configuration + +Needs only `url` to server's `status` + +Here is an example for local instance: + +```yaml +update_every : 3 +priority : 90100 + +local: + url : 'http://localhost/status' + retries : 10 +``` + +Without configuration, module attempts to connect to `http://localhost/status` + +--- + +# squid + +This module will monitor one or more squid instances depending on configuration. + +It produces following charts: + +1. **Client Bandwidth** in kilobits/s + * in + * out + * hits + +2. **Client Requests** in requests/s + * requests + * hits + * errors + +3. **Server Bandwidth** in kilobits/s + * in + * out + +4. **Server Requests** in requests/s + * requests + * errors + +### configuration + +```yaml +priority : 50000 + +local: + request : 'cache_object://localhost:3128/counters' + host : 'localhost' + port : 3128 +``` + +Without any configuration module will try to autodetect where squid presents its `counters` data + +--- \ No newline at end of file diff --git a/python.d/squid.chart.py b/python.d/squid.chart.py index d3110907..89a902db 100644 --- a/python.d/squid.chart.py +++ b/python.d/squid.chart.py @@ -14,27 +14,27 @@ ORDER = ['clients_net', 'clients_requests', 'servers_net', 'servers_requests'] CHARTS = { 'clients_net': { - 'options': [None, "Squid Client Bandwidth", "kilobits / sec", "clients", "squid.clients.net" "area"], + 'options': [None, "Squid Client Bandwidth", "kilobits/s", "clients", "squid.clients.net" "area"], 'lines': [ ["client_http_kbytes_in", "in", "incremental", 8, 1], ["client_http_kbytes_out", "out", "incremental", -8, 1], ["client_http_hit_kbytes_out", "hits", "incremental", -8, 1] ]}, 'clients_requests': { - 'options': [None, "Squid Client Requests", "requests / sec", "clients", "squid.clients.requests", 'line'], + 'options': [None, "Squid Client Requests", "requests/s", "clients", "squid.clients.requests", 'line'], 'lines': [ ["client_http_requests", "requests"], ["client_http_hits", "hits"], ["client_http_errors", "errors", "incremental", -1, 1] ]}, 'servers_net': { - 'options': [None, "Squid Server Bandwidth", "kilobits / sec", "servers", "squid.servers.net" "area"], + 'options': [None, "Squid Server Bandwidth", "kilobits/s", "servers", "squid.servers.net" "area"], 'lines': [ ["server_all_kbytes_in", "in", "incremental", 8, 1], ["server_all_kbytes_out", "out", "incremental", -8, 1] ]}, 'servers_requests': { - 'options': [None, "Squid Server Requests", "requests / sec", "servers", "squid.servers.requests", 'line'], + 'options': [None, "Squid Server Requests", "requests/s", "servers", "squid.servers.requests", 'line'], 'lines': [ ["server_all_requests", "requests"], ["server_all_errors", "errors", "incremental", -1, 1] -- 2.39.2