Skip to content

alik-agaev/gilat-cpe-exporter

Repository files navigation

gilat-cpe-exporter

Prometheus exporter for iDirect/VSAT satellite CPE terminals. Polls the device's JSON HTTP API and exposes metrics at :9877/metrics.

Quick start

Python (direct)

pip install -r requirements.txt
python satellite_exporter.py
# or override defaults:
python satellite_exporter.py --host 10.28.202.133 --exporter-port 9877

Docker

docker build -t satellite-exporter .

docker run -d \
  -p 9877:9877 \
  -e SATELLITE_HOST=10.28.202.133 \
  --name satellite-exporter \
  satellite-exporter

Configuration

All options are available as environment variables and CLI flags.

Env var CLI flag Default Description
SATELLITE_HOST --host 10.28.202.133 Terminal IP / hostname
SATELLITE_PORT --port 80 Terminal HTTP port
EXPORTER_PORT --exporter-port 9877 Port to expose /metrics on
SCRAPE_INTERVAL --scrape-interval 15 Poll interval in seconds
LOG_LEVEL --log-level INFO Python log level (DEBUG/INFO/…)

Exposed metrics

Signal quality

Metric Description
satellite_rx_signal_db Current Rx SNR (dB)
satellite_rx_signal_max_db Max Rx signal (dB)
satellite_tx_capability_db Current Tx capability (dB)
satellite_tx_capability_max_db Max Tx capability (dB)

Link / authentication status

Metric Description
satellite_quick_status 0=OK, 1=NoLock, 2=NoSync, 3=NoSatLink, 4=Connecting, 5=Loading
satellite_link_state Satellite link state enum
satellite_auth_state Authentication state enum
satellite_authz_state Authorization state enum
satellite_user_access User access state
satellite_led_state{led="power|satnet|satlink|tx|rx"} LED state (0=off, 1=on, 2=blink, 3=error)

LAN ports

Metric Description
satellite_lan_port_state{port="1–4"} 1=connected, 0=disconnected
satellite_lan_port_speed_mbps{port="1–4"} 10 / 100 / 1000 / 10000 Mbps

Traffic (counters, monotonic)

Metric Description
satellite_lan_rx_bytes_total{port} Received bytes
satellite_lan_tx_bytes_total{port} Transmitted bytes
satellite_lan_rx_packets_total{port} Received packets
satellite_lan_tx_packets_total{port} Transmitted packets

Device counters are 32-bit; the exporter handles wrap-around transparently.

System

Metric Description
satellite_uptime_seconds Device uptime
satellite_session_id Current session number
satellite_acu_status ACU connection status
satellite_polarizer_status RF polarizer switch status

Scrape health

Metric Description
satellite_scrape_success{endpoint} 1 = last scrape OK, 0 = failed

Static info label

satellite_info{sw_version, hw_version, serial, mac, cpeid, cluster, vsat_id, rtn_filter} 1

Prometheus scrape config

scrape_configs:
  - job_name: satellite_cpe
    static_configs:
      - targets: ["localhost:9877"]

Grafana dashboard hints

Signal quality — time series

satellite_rx_signal_db

Add thresholds: 10 dB (yellow / degraded), 8 dB (red / critical).

Link health — stat panels

satellite_quick_status          # 0 = healthy
satellite_link_state
satellite_auth_state
satellite_authz_state

Map value 0 to green; any non-zero to orange/red via value mappings.

LED states — stat / state timeline

satellite_led_state{led="satlink"}
satellite_led_state{led="tx"}
satellite_led_state{led="rx"}

LAN traffic — time series (bytes/sec)

rate(satellite_lan_rx_bytes_total{port="1"}[5m])
rate(satellite_lan_tx_bytes_total{port="1"}[5m])

Uptime — stat panel

satellite_uptime_seconds

Unit: duration (s), display as d hh:mm:ss.

Scrape health — table or stat

satellite_scrape_success

Alert if any endpoint stays at 0 for > 2 scrape intervals.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors