No description
Find a file
2025-03-11 18:28:20 +01:00
.vscode Hinzufügen von dynamischen Ports und einer launch.json für das debuggen unter vscode 2025-03-11 16:11:45 +01:00
dashboard Dateien nach „dashboard“ hochladen 2025-03-10 12:55:48 +01:00
go Bei Bussen und Trams wird die tatsächliche Ankunft nicht richtig mitgeben 2025-03-11 18:28:20 +01:00
.env.example Ersetzen von Dashboard zu Statuses 2025-03-10 00:07:11 +01:00
.gitignore first commit 2025-03-09 23:25:18 +01:00
docker-compose.yml Hinzufügen von dynamischen Ports und einer launch.json für das debuggen unter vscode 2025-03-11 16:11:45 +01:00
README.md Update README 2025-03-10 12:39:02 +01:00

Träwelling Prometheus Exporter

Beschreibung

Dieser Prometheus Exporter sammelt Daten von der Träwelling API und stellt sie als Prometheus-Metriken zur Verfügung. Er bietet detaillierte Informationen über aktuelle Züge, einschließlich Zugtyp und Fahrtart (privat, geschäftlich, Pendelverkehr), sowie Gesamtstatistiken wie Gesamtdistanz, Gesamtdauer und Gesamtpunkte für jeden Benutzer.

Funktionen

  • Abfrage der Träwelling API für aktuelle Zugdaten und Benutzerdetails
  • Bereitstellung von Prometheus-Metriken für:
    • Aktuelle Zugstatus (aktiv/inaktiv) mit Zugtyp und Fahrtart
    • Gesamte Zugstrecke eines Benutzers in Kilometern
    • Gesamte Zugdauer eines Benutzers in Minuten
    • Gesamtpunkte eines Benutzers
  • Konsolenausgabe detaillierter Zuginformationen
  • Regelmäßige Aktualisierung der Daten (alle 5 Minuten)

Voraussetzungen

  • Go 1.15 oder höher
  • Docker und Docker Compose (für containerisierte Ausführung)
  • Gültiger Träwelling API-Token
  • Liste der Benutzernamen, die abgefragt werden sollen

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
    
  3. Erstelle eine .env Datei im Projektverzeichnis und füge deinen Träwelling API-Token sowie die Liste der Benutzernamen hinzu:

    TRAEWELLING_TOKEN=your_token_here
    TRAEWELLING_USERNAMES=user1,user2,user3
    

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
    

Verwendung

Nach dem Start ist der Exporter unter http://localhost:8080/metrics erreichbar. Prometheus kann so konfiguriert werden, dass es diese Endpunkt abfragt.

Prometheus Konfiguration

Füge folgende Job-Konfiguration zu deiner prometheus.yml hinzu:

scrape_configs:
  - job_name: 'traewelling'
    static_configs:
      - targets: ['localhost:8080']

Metriken

  • traewelling_current_train_statuses:

    • Labels:
      • username: Der Benutzername.
      • line_name: Die Linie des Zuges (z. B. S3).
      • origin: Startbahnhof.
      • destination: Zielbahnhof.
      • train_type: Typ des Zuges (z. B. "national", "regional", etc.).
      • trip_type: Art der Fahrt (z. B. "personal", "business", "commute").
    • Wert:
      • 1: Der Zug ist aktiv.
      • 0: Der Zug ist 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.

Beitragen

Beiträge sind willkommen! Bitte erstelle ein Issue oder einen Pull Request für Verbesserungsvorschläge oder Fehlerbehebungen.

Lizenz

MIT License

Kontakt

Bei Fragen oder Problemen erstelle bitte ein GitHub Issue oder kontaktiere admin@brothertec.eu.