Schnellstart
Standardmäßig deaktiviert
Metriken sind standardmäßig deaktiviert. Um die Erfassung von Metriken zu aktivieren, setzen SieMETRICS_ENABLED=true und starten Sie GoModel:
Im restlichen Leitfaden wird nur das Setzen der Variablen gezeigt. Wenden Sie sie über die oben
gewählte Startmethode an –
.env plus --env-file, ein Inline-Flag -e oder export vor
./bin/gomodel – und starten Sie GoModel neu.Metriken deaktivieren
Option 1: UmgebungsvariableEigener Metrik-Endpunkt
Ändern Sie den Standardpfad/metrics:
Konfigurationsoptionen
Über Umgebungsvariablen
Über config.yaml
Beispiele
Produktiv-Setup (Metriken aktiviert)
.envEntwicklungs-Setup (Metriken deaktiviert)
.envEigener Endpunkt für internes Monitoring
config.yamlÜberprüfung
Prüfen, ob Metriken aktiviert sind
Starten Sie den Server und achten Sie auf folgende Log-Meldungen: Metriken aktiviert:Metrik-Endpunkt testen
Wenn aktiviert:Auswirkungen auf die Performance
Metriken aktiviert
- Minimaler Overhead: ca. 100 ns pro Request für die Ausführung der Hooks
- Arbeitsspeicher: ca. 1 MB für die Speicherung der Metriken (abhängig von der Kardinalität)
- CPU: Vernachlässigbare Auswirkung (
<0.1%in Benchmarks)
Metriken deaktiviert
- Kein Overhead: keine Hooks registriert, keine Erfassung
- Die Metrik-Bibliothek ist weiterhin gelinkt, aber inaktiv
- Empfohlen für maximale Performance in Nicht-Produktivumgebungen
Sicherheitsaspekte
Den Metrik-Endpunkt bereitstellen
Der/metrics-Endpunkt ist durch Master-Key-Authentifizierung geschützt, wenn ein Master-Key
konfiguriert ist, genau wie andere HTTP-Endpunkte. Ist kein Master-Key konfiguriert, ist der
Endpunkt ohne Authentifizierung erreichbar, sodass Prometheus Metriken ohne Zugangsdaten scrapen
kann.
Wenn Sie den Metrik-Endpunkt zusätzlich schützen müssen:
-
Verwenden Sie einen eigenen internen Pfad:
-
Verwenden Sie Sicherheit auf Netzwerkebene:
- Konfigurieren Sie Firewall-Regeln, die nur den Prometheus-Server zulassen
- Verwenden Sie ein privates Netzwerk für die Erfassung von Metriken
- Betreiben Sie Prometheus in derselben VPC bzw. demselben Netzwerk
-
Reverse Proxy mit Authentifizierung:
Alerts bei leeren Responses
Ein Provider antwortet manchmal mit200, liefert aber keine Choices, keinen Output oder keine
Token-Nutzung. gomodel_requests_total zählt diese Aufrufe als Erfolge, daher erhöht GoModel
zusätzlich gomodel_empty_responses_total und loggt eine Warnung
(provider returned 200 with an empty response).
Eine Chat Completion ohne Choices gibt dem Client außerdem
502 zurück oder löst ein Failover
aus, wenn ein Failover-Ziel existiert. Eine Response mit Inhalt, aber ohne Nutzungsangaben, wird
trotzdem zurückgegeben; sie beeinträchtigt nur die Nutzungs- und Kostenerfassung.
Prometheus-Konfiguration
Scrape-Konfiguration
prometheus.ymlMit eigenem Endpunkt
Fehlerbehebung
Metrik-Endpunkt gibt 404 zurück
Ursache: Metriken sind deaktiviert (der Standard). Lösung:METRICS_ENABLED=true über Ihre .env-Datei, ein Inline-Flag
-e METRICS_ENABLED=true oder export METRICS_ENABLED=true (die drei Startvarianten finden Sie
im Schnellstart) und starten Sie GoModel dann neu.
Es erscheinen keine Metrikdaten
Ursache: Es wurden noch keine Requests gestellt. Lösung: Stellen Sie einige Requests, um Metriken zu erzeugen:Eigener Endpunkt funktioniert nicht
Ursache: Der Endpunkt muss mit/ beginnen.
Falsch:
Best Practices
Entwicklung
- Deaktivieren Sie Metriken für einen schnelleren Start und weniger Rauschen
- Aktivieren Sie sie nur, wenn Sie Observability-Features testen
Staging
- Aktivieren Sie Metriken, um das Monitoring-Setup zu testen
- Verwenden Sie bei Bedarf aus Sicherheitsgründen einen eigenen Endpunkt
Produktion
- Aktivieren Sie Metriken für vollständige Observability
- Richten Sie Alerting in Prometheus ein
- Verwenden Sie Grafana-Dashboards zur Visualisierung
- Erwägen Sie aus Sicherheitsgründen einen eigenen Endpunkt
- Überwachen Sie die Kardinalität der Metriken, um eine Explosion zu vermeiden
Siehe auch
- Konfiguration – vollständige Referenz der Umgebungsvariablen
- config.yaml – Referenz der YAML-Konfiguration