2025-03-09 23:39:38 +01:00
# Träwelling Prometheus Exporter
## Beschreibung
2025-03-10 00:26:09 +01:00
Dieser Prometheus Exporter sammelt Daten von der Träwelling API und stellt sie als Prometheus-Metriken bereit. Er bietet detaillierte Informationen über aktuelle Züge, Gesamtdistanz, Gesamtdauer und Gesamtpunkte für jeden Benutzer.
2025-03-09 23:39:38 +01:00
## Funktionen
2025-03-10 00:26:09 +01:00
- Abfrage der Träwelling API für aktuelle Zugdaten und Benutzerdetails
2025-03-09 23:39:38 +01:00
- Bereitstellung von Prometheus-Metriken für:
2025-03-10 00:26:09 +01:00
- Aktuelle Zugstatus (aktiv/inaktiv)
- Gesamte Zugstrecke pro Benutzer
- Gesamte Zugdauer pro Benutzer
2025-03-09 23:39:38 +01:00
- Gesamtpunkte pro Benutzer
2025-03-10 00:26:09 +01:00
- Unterstützung für mehrere Benutzernamen
2025-03-09 23:39:38 +01:00
- Regelmäßige Aktualisierung der Daten (alle 5 Minuten)
## Voraussetzungen
2025-03-10 00:26:09 +01:00
- Go 1.20 oder höher
2025-03-09 23:39:38 +01:00
- Docker und Docker Compose (für containerisierte Ausführung)
- Gültiger Träwelling API-Token
2025-03-10 00:26:09 +01:00
- Benutzernamen der zu überwachenden Nutzer
2025-03-09 23:39:38 +01:00
## Installation
1. Klone das Repository:
```
git clone https://github.com/yourusername/traewelling-prometheus-exporter.git
cd traewelling-prometheus-exporter
```
2. Installiere die erforderlichen Go-Pakete:
```
go get github.com/prometheus/client_golang/prometheus
go get github.com/prometheus/client_golang/prometheus/promauto
go get github.com/prometheus/client_golang/prometheus/promhttp
```
2025-03-10 00:26:09 +01:00
3. Erstelle eine `.env` Datei im Projektverzeichnis und füge deine Umgebungsvariablen hinzu:
2025-03-09 23:39:38 +01:00
```
2025-03-10 00:26:09 +01:00
TRAEWELLING_TOKEN=your_token
TRAEWELLING_USERNAMES=
2025-03-09 23:39:38 +01:00
```
## Ausführung
### Lokale Ausführung
1. Baue die Anwendung:
```
go build -o traewelling-exporter
```
2. Führe die Anwendung aus:
```
./traewelling-exporter
```
### Mit Docker
1. Baue das Docker-Image:
```
docker-compose build
```
2. Starte den Container:
```
docker-compose up -d
```
## Prometheus Konfiguration
Füge folgende Job-Konfiguration zu deiner `prometheus.yml` hinzu:
```
scrape_configs:
- job_name: 'traewelling'
static_configs:
- targets: ['localhost:8080']
```
## Metriken
2025-03-10 00:26:09 +01:00
- `traewelling_current_train_statuses` : Aktueller Status eines Zuges (1 = aktiv, 0 = inaktiv)
- `traewelling_total_train_distance_km` : Gesamte Zugstrecke eines Benutzers in Kilometern
- `traewelling_total_train_duration_minutes` : Gesamte Zugdauer eines Benutzers in Minuten
- `traewelling_total_points` : Gesamtpunkte eines Benutzers
2025-03-09 23:39:38 +01:00
## Beitragen
Beiträge sind willkommen! Bitte erstelle ein Issue oder einen Pull Request für Verbesserungsvorschläge oder Fehlerbehebungen.
## Lizenz
[MIT License ](LICENSE )
## Kontakt
2025-03-10 00:26:09 +01:00
Bei Fragen oder Problemen erstelle bitte ein GitHub Issue oder kontaktiere [admin@brothertec.eu ](mailto:admin@brothertec.eu ).