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.

Source Distribution

zabbix_epics_py-1.1.0.tar.gz (8.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

zabbix_epics_py-1.1.0-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file zabbix_epics_py-1.1.0.tar.gz.

File metadata

  • Download URL: zabbix_epics_py-1.1.0.tar.gz
  • Upload date:
  • Size: 8.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.3

File hashes

Hashes for zabbix_epics_py-1.1.0.tar.gz
Algorithm Hash digest
SHA256 0b88b53614fe984a849540bb52736792223225d6466de41e3f3b097e496ca201
MD5 732a74f1cb63ec433be32d220b1ad2e0
BLAKE2b-256 fdb171bdb0d97f8a9129a05eb123b1fae45e611a821b8d7ae6985ee20291a264

See more details on using hashes here.

File details

Details for the file zabbix_epics_py-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for zabbix_epics_py-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b0109e325010ddcc5976260970ba36c70d8e0759aa209c34f077bb4d109b8fc7
MD5 86988d687026b6d10f2fc419b3907da6
BLAKE2b-256 d0eaea6ab4a661483478d358d67b61304dd5bde2f8942831b715b8463c7f3768

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page