Ilya Mashchenko 37fd96700b fix not handling N/A value in python.d/nvidia_smi (#15231) 1 year ago
..
adaptec_raid e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
alarms e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
am2320 e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
anomalies e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
beanstalk e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
bind_rndc e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
boinc e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
ceph e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
changefinder e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
dovecot e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
example e9af618081 Make the title metadata H1 in all markdown files (#14625) 2 years ago
exim e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
fail2ban e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
gearman e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
go_expvar e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
haproxy e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
hddtemp e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
hpssa e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
icecast e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
ipfs e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
litespeed e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
megacli e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
memcached e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
monit e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
nsd e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
nvidia_smi 37fd96700b fix not handling N/A value in python.d/nvidia_smi (#15231) 1 year ago
openldap e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
oracledb 1aed6efd3c oracledb: make conn protocol configurable (#15104) 1 year ago
pandas d4da2994d3 Fix links in README.md (#14794) 1 year ago
postfix e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
puppet e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
python_modules 49363f50c8 feat(python.d): respect NETDATA_INTERNALS_MONITORING (#13793) 2 years ago
rethinkdbs e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
retroshare e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
riakkv e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
samba e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
sensors e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
smartd_log 0949ce35fa Update smartd_log.conf (#15171) 1 year ago
spigotmc e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
squid e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
tomcat e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
tor 9c200178f2 Update tor.chart.py (#15041) 1 year ago
traefik e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
uwsgi e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
varnish e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
w1sensor e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
zscores e5a5aaa4cb Add metadata.csv to python.d.plugin (#14959) 1 year ago
Makefile.am c50c34e905 remove deprecated python.d collectors announced in v1.38.0 (#14454) 2 years ago
README.md f8a0558a94 Update learn path of python plugin readme (#14549) 2 years ago
python.d.conf c50c34e905 remove deprecated python.d collectors announced in v1.38.0 (#14454) 2 years ago
python.d.plugin.in c0d9b982ee chore(python.d): rename dockerd job on lock registration (#13537) 2 years ago

README.md

python.d.plugin

python.d.plugin is a Netdata external plugin. It is an orchestrator for data collection modules written in python.

  1. It runs as an independent process ps fax shows it
  2. It is started and stopped automatically by Netdata
  3. It communicates with Netdata via a unidirectional pipe (sending data to the netdata daemon)
  4. Supports any number of data collection modules
  5. Allows each module to have one or more data collection jobs
  6. Each job is collecting one or more metrics from a single data source

Disclaimer

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
    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
    priority     : 20000
    
    local:  # job name
    update_every : 5 # job update frequency
    other_var1   : some_val # module specific variable
    
    other_job:
    priority     : 5 # job position on dashboard
    other_var2   : val # module specific variable
    

update_every and priority are always optional.

How to debug a python module

# become user netdata
sudo su -s /bin/bash netdata

Depending on where Netdata was installed, execute one of the following commands to trace the execution of a python module:

# execute the plugin in debug mode, for a specific module
/opt/netdata/usr/libexec/netdata/plugins.d/python.d.plugin <module> debug trace
/usr/libexec/netdata/plugins.d/python.d.plugin <module> debug trace

Where [module] is the directory name under https://github.com/netdata/netdata/tree/master/collectors/python.d.plugin

Note: If you would like execute a collector in debug mode while it is still running by Netdata, you can pass the nolock CLI option to the above commands.

How to write a new module

See develop a custom collector in Python.