Python plugin support is experimental and implementation may change in the future
Every plugin 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.
Every configuration file must have one of two formats:
- Configuration for only one job:
update_every : 2 # update frequency
retries : 1 # how many failures in update() is tolerated
priority : 20000 # where it is shown on dashboard
other_var1 : bla # variables passed to module
other_var2 : alb
- Configuration for many jobs (ex. mysql):
# module defaults:
update_every : 2
retries : 1
priority : 20000
local: # job name
update_every : 5 # job update frequency
retries : 2 # job retries
other_var1 : some_val # module specific variable
other_job:
priority : 5 # job position on dashboard
retries : 20 # job retries
other_var2 : val # module specific variable
update_every
, retries
, and priority
are always optional.
The following python.d plugins are supported:
The plugin will monitor one or more mysql servers
Requirements:
It will produce following charts (if data is available):
- Bandwidth in kbps
- in
- out
- Queries in queries/sec
- queries
- questions
- slow queries
- Operations in operations/sec
- opened tables
- flush
- commit
- delete
- prepare
- read first
- read key
- read next
- read prev
- read random
- read random next
- rollback
- save point
- update
- write
- Table Locks in locks/sec
- immediate
- waited
- Select Issues in issues/sec
- full join
- full range join
- range
- range check
- scan
- Sort Issues in issues/sec
- merge passes
- range
- scan
You can provide, per server, the following:
- a name, anything you like, but keep it short
- username which have access to database (deafults to 'root')
- password (defaults to none)
- mysql my.cnf configuration file
- mysql socket (optional)
- mysql host (ip or hostname)
- mysql port (defaults to 3306)
Here is an example for 3 servers:
update_every : 10
priority : 90100
retries : 5
local:
'my.cnf' : '/etc/mysql/my.cnf'
priority : 90000
local_2:
user : 'root'
password : 'blablablabla'
socket : '/var/run/mysqld/mysqld.sock'
update_every : 1
remote:
user : 'admin'
password : 'bla'
host : 'example.org'
port : 9000
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