Skip to main content

Zabbix-EPICS for Python

Project description

Zabbix sender for EPICS-CA

This package allows to send metrics to a Zabbix server from EPICS records via Channel Access.

See docmentation

Installing

Simple install is below.

pip install zabbix-epics-py

Or clone this package and install it.

# clone the repository
git clone https://github.com/sasaki77/zabbix-epics-py
cd zabbix-epics-py
# install zabbix-epics-py
pip install -e .

Usage

Before using this program, you should create hosts and items in Zabbix. Type of the items must be set to Zabbix trapper.

Below is a simple example usage. Values of TEST:PV are sent to a Zabbix server at 30 sec intervals and metrics are stored to zabbix-epics-py-test.item key of dummyHost.

>>> from zbxepics import ZabbixSenderCA
>>> server_ip = '127.0.0.1'
>>> port = 10051
>>> config = False
>>> items = [dict(host='dummyHost', pv='TEST:PV', interval=30, item_key='zabbix-epics-py-test.item', func='last')]
>>> sender = ZabbixSenderCA(server_ip, port, config, items)
>>> sender.run()

interval is an interval in seconds between sending metrics to Zabbix. If interval is set to monitor, metrics are sent every monitor update.

func determines a function to be applied to a monitored value buffer.

Avalilable funcs are below.

  • last
  • min
  • max
  • avg

For example, a monitored pv is processed 3 times and its value changed to 1, 2 and 3. Then the value sent to Zabbix is 2 if func is set to avg.

Test

Some part of tests run HTTP server on 30051 port to emulate a Zabbix server.

You should concern localhost http access to test correctly. (e.g. HTTP proxy settings)

Run without coverage:

pip install pytest
pytest

Run with coverage:

pip install pytest pytest-cov
pytest --cov zbxepics
coverage report -m

Build Documentation

pip install sphinx m2r sphinx_rtd_theme
cd doc/_build/html
make html

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for zabbix-epics-py, version 0.1.1
Filename, size File type Python version Upload date Hashes
Filename, size zabbix_epics_py-0.1.1-py3-none-any.whl (21.3 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size zabbix-epics-py-0.1.1.tar.gz (12.4 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page