justin a4ff29e1b5 Fix counter spike/negative on ZVM reboot (closes #12)
When a ZVM reboots its cumulative counters (IOPs, write/sync/network MBs,
encrypted/unencrypted LBs) reset to zero. The previous abs() approach
converted the large negative delta into an equally wrong positive spike.

Introduces _counter_delta(new, old, vm_id, metric) which:
- Returns new - old when new >= old (normal incrementing counter)
- Returns new as-is when new < old (counter reset / reboot detected)
  and logs a WARNING identifying the VM and metric that reset

Publishing the raw new value on reset correctly reflects the restarted
counter state, suppresses the false spike, and produces a visible dip
in Grafana that naturally indicates the ZVM reboot event.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-20 19:47:35 -05:00
2023-03-22 22:59:30 -04:00
2023-04-01 14:57:38 -04:00
2023-03-06 07:07:51 -05:00

About the app

This Python App will export Zerto API data from the new ZVM appliance in prometheus format. It has several different threads that each scrape different parts of the ZVM API. To visualize the data in Grafana you will need to scrape this app with Prometheus and then create dashboards using Grafana.

Run Program

Login to the server where you want to run this exporter and clone the project:

  git clone https://github.com/recklessop/Zerto_Exporter.git

Go to the project directory:

  cd Zerto_Exporter

Build image and start the container:

  docker-compose up -d --build --force-recreate

Add the exporter to Prometheus

Add this part at the end of the configuration of your Prometheus (prometheus.yaml):

  - job_name: python-exporter
    metrics_path: /metrics.txt
    static_configs:
      - targets: ['<IP-of-Node-Exporter-Server>:9999']

Forked from

Huge shout out to hmdhszd for the framework that started this project. You can find his non-zerto version of a Python Prometheus Exporter here.

S
Description
No description provided
Readme Apache-2.0 433 KiB
Languages
Python 99.2%
Dockerfile 0.8%