Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/angelbarrera92/iberdrola-distribucion-prometheus-exporter
Iberdrola Distribucion - Prometheus Exporter
https://github.com/angelbarrera92/iberdrola-distribucion-prometheus-exporter
grafana grafana-dashboard i-de iberdrola prometheus prometheus-exporter
Last synced: about 10 hours ago
JSON representation
Iberdrola Distribucion - Prometheus Exporter
- Host: GitHub
- URL: https://github.com/angelbarrera92/iberdrola-distribucion-prometheus-exporter
- Owner: angelbarrera92
- License: mit
- Created: 2022-11-24T05:56:39.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-23T21:50:02.000Z (7 months ago)
- Last Synced: 2024-04-23T23:15:58.217Z (7 months ago)
- Topics: grafana, grafana-dashboard, i-de, iberdrola, prometheus, prometheus-exporter
- Language: Python
- Homepage:
- Size: 239 KB
- Stars: 3
- Watchers: 3
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Iberdrola distribución - Prometheus Exporter
Prometheus exporter for Iberdrola distribución.
It provides current consumption data and the total consumption for the meter.## Development
```bash
git clone [email protected]:angelbarrera92/iberdrola-distribucion-prometheus-exporter.git
cd iberdrola-distribucion-prometheus-exporter
virtualenv -p python3 venv
source venv/bin/activate
pip install -r requirements-dev.txt
```### Linting
This requires `docker`. It uses the same linter as the CI.
```bash
make lint
```## Building
```bash
docker build -t iberdrola-distribucion-prometheus-exporter:local -f build/container/Dockerfile .
```or
```bash
make build-local
```## Using
```bash
$ docker run --rm iberdrola-distribucion-prometheus-exporter:local
usage: main.py [-h] [-s SERVER] [-P PORT] -u USERNAME -p PASSWORD [-v]
main.py: error: the following arguments are required: -u/--username, -p/--password
$ docker run -p 9988:9988 iberdrola-distribucion-prometheus-exporter:local -u YOUR_USERNAME_GOES_HERE -p YOUR_PASSWORD_GOES_HERE --verbose
INFO:root:Verbose mode enabled
INFO:root:Exporter server: 0.0.0.0:9988
INFO:root:i-de username: YOUR_USERNAME_GOES_HERE
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): www.i-de.es:443
DEBUG:urllib3.connectionpool:https://www.i-de.es:443 "POST /consumidores/rest/loginNew/login HTTP/1.1" 200 343
DEBUG:root:Logged in
INFO:root:Starting exporter server
DEBUG:urllib3.connectionpool:https://www.i-de.es:443 "GET /consumidores/rest/escenarioNew/obtenerMedicionOnline/24 HTTP/1.1" 200 None
``````bash
$ curl http://localhost:9988/metrics
# HELP python_gc_objects_collected_total Objects collected during gc
# TYPE python_gc_objects_collected_total counter
python_gc_objects_collected_total{generation="0"} 394.0
python_gc_objects_collected_total{generation="1"} 237.0
python_gc_objects_collected_total{generation="2"} 0.0
# HELP python_gc_objects_uncollectable_total Uncollectable object found during GC
# TYPE python_gc_objects_uncollectable_total counter
python_gc_objects_uncollectable_total{generation="0"} 0.0
python_gc_objects_uncollectable_total{generation="1"} 0.0
python_gc_objects_uncollectable_total{generation="2"} 0.0
# HELP python_gc_collections_total Number of times this generation was collected
# TYPE python_gc_collections_total counter
python_gc_collections_total{generation="0"} 55.0
python_gc_collections_total{generation="1"} 4.0
python_gc_collections_total{generation="2"} 0.0
# HELP python_info Python platform information
# TYPE python_info gauge
python_info{implementation="CPython",major="3",minor="11",patchlevel="0",version="3.11.0"} 1.0
# HELP process_virtual_memory_bytes Virtual memory size in bytes.
# TYPE process_virtual_memory_bytes gauge
process_virtual_memory_bytes 3.5516416e+07
# HELP process_resident_memory_bytes Resident memory size in bytes.
# TYPE process_resident_memory_bytes gauge
process_resident_memory_bytes 2.729984e+07
# HELP process_start_time_seconds Start time of the process since unix epoch in seconds.
# TYPE process_start_time_seconds gauge
process_start_time_seconds 1.66927552069e+09
# HELP process_cpu_seconds_total Total user and system CPU time spent in seconds.
# TYPE process_cpu_seconds_total counter
process_cpu_seconds_total 0.24000000000000002
# HELP process_open_fds Number of open file descriptors.
# TYPE process_open_fds gauge
process_open_fds 7.0
# HELP process_max_fds Maximum number of open file descriptors.
# TYPE process_max_fds gauge
process_max_fds 1.048576e+06
# HELP iberdrola_distribucion_consumption Current consumption in watts
# TYPE iberdrola_distribucion_consumption gauge
iberdrola_distribucion_consumption 100.0
# HELP iberdrola_distribucion_meter_total Total consumption in kWh
# TYPE iberdrola_distribucion_meter_total gauge
iberdrola_distribucion_meter_total 16051.0
```## Prometheus configuration
```yaml
scrape_configs:
- job_name: 'iberdrola_distribucion'
static_configs:
- targets: ['localhost:9988']
```## Grafana Dashboard
To facilitate the use of this exporter, a [Grafana dashboard](dashboard.json) is provided.
![Grafana Dashboard](dashboard.png)
## License
[MIT](LICENSE)