Carbon App ohne Container

Grüner Strom in Echtzeit messen

Posted by eumel8 on June 29, 2024 · 2 mins read

Einstieg

Im K8S Blog haben wir uns schon mal mit Nachhaltigem Computern und Green-IT auseinandergesetzt. In diesem Blog haben wir ein Frontend zur Energie-Ampel installier. Hier wollen wir die Entsoe-Python-App ohne Kubernetes installieren und die Daten in einen lokalen Prometheus (ebenfalls ohne Kubernetes) vorhalten. Warum? Der Aufwand für einen eigenen Cluster ist für die eine App immer noch recht hoch. Und wir brauchen das graphische Frontend für die Ampel auf dem Raspberry. Es gibt nichts vergleichbares auf Kubernetes-Basis.

Energieampel Raspberry

Wie in den oben erwähnten Blog-Beiträgen beschrieben ist ein Raspberry mit 3,5 Zoll Display mit einem debian-ähnliche Betriebssystem die Ausgangssituation.

Installation ohne Container

sudo su -
apt install prometheus
cd /usr/local
git clone https://github.com/caas-team/caas-carbon-footprint.git carbonapp
cd carbonapp
python3 -m venv venv
./venv/bin/pip3 install -r requirements.txt

/usr/local/carbonapp/env

entsoe_api_key=xxxxx
entsoe_start=2
entsoe_end=1

/etc/systemd/system/carbonapp.service

[Unit]
Description=Carbon app service
Wants=network-online.target
After=network-online.target
[Install]
WantedBy=multi-user.target
[Service]
Type=simple
Restart=always
ExecStart=/usr/local/carbonapp/venv/bin/python3 /usr/local/carbonapp/flask/app.py
EnvironmentFile=-/usr/local/carbonapp/env

/etc/prometheus/prometheus.yml

scrape_configs:
  - job_name: 'entsoe-carbon-footprint'
    metrics_path: /metrics
    scrape_interval: 2m
    scrape_timeout: 30s
    static_configs:
      - targets:
          - localhost:9091
systemctl enable carbonapp.service
systemctl enable prometheus
systemctl start carbonapp.service
systemctl start prometheus

Fortan sollte die Entsoe-Carbon-App auf Port 9091 und Prometheuis auf Port 9090 erreichbar sein.

Aber Vorsicht: Die Dienste stehen ggf. ungesichert im Internet. Wer das nicht will, kann in der app.py 127.0.0.1 statt 0.0.0.0 einstellen und Prometheus mit --web.listen-address="127.0.0.1:9090" starten. Andererseits werden keine geheime Daten exposed, die Entsoe-Daten sind sowieso public.

Happy Planet!