Skip to main content
Obsługa Prometheusa jest eksperymentalna. Nazwy metryk, etykiety i opcje konfiguracji mogą się zmienić bez uprzedzenia. Jeśli zależy Ci na stabilnym schemacie, przypnij konkretną wersję GoModel.
Ten przewodnik wyjaśnia, jak skonfigurować eksperymentalny endpoint metryk Prometheus w GoModel.

Szybki start

Domyślnie wyłączone

Metryki są domyślnie wyłączone. Aby włączyć zbieranie metryk, ustaw METRICS_ENABLED=true i uruchom GoModel:
W dalszej części przewodnika pokazujemy tylko ustawianą zmienną. Zastosuj ją w sposób odpowiadający wybranemu wyżej sposobowi uruchamiania – .env z --env-file, flaga -e w linii poleceń albo export przed ./bin/gomodel – i zrestartuj GoModel.

Wyłączanie metryk

Opcja 1: zmienna środowiskowa
Opcja 2: plik .env
Opcja 3: config.yaml

Własny endpoint metryk

Zmień domyślną ścieżkę /metrics:

Opcje konfiguracji

Przez zmienne środowiskowe

Przez config.yaml

Przykłady

Konfiguracja produkcyjna (metryki włączone)

.env

Konfiguracja deweloperska (metryki wyłączone)

.env

Własny endpoint do wewnętrznego monitoringu

config.yaml

Weryfikacja

Sprawdź, czy metryki są włączone

Uruchom serwer i poszukaj komunikatów w logach: Metryki włączone:
Metryki wyłączone:

Przetestuj endpoint metryk

Gdy włączone:
Gdy wyłączone:

Wpływ na wydajność

Metryki włączone

  • Minimalny narzut: ok. 100 ns na request na wykonanie hooków
  • Pamięć: ok. 1 MB na przechowywanie metryk (zależy od kardynalności)
  • CPU: pomijalny wpływ (<0.1% w benchmarkach)

Metryki wyłączone

  • Zerowy narzut: brak zarejestrowanych hooków i brak zbierania danych
  • Biblioteka metryk jest nadal linkowana, ale nieaktywna
  • Zalecane dla maksymalnej wydajności w środowiskach nieprodukcyjnych

Kwestie bezpieczeństwa

Udostępnianie endpointu metryk

Endpoint /metrics jest chroniony uwierzytelnianiem master key, gdy master key jest skonfigurowany – tak samo jak inne endpointy HTTP. Jeśli master key nie jest skonfigurowany, endpoint jest dostępny bez uwierzytelniania, co pozwala Prometheusowi scrapować metryki bez danych uwierzytelniających. Jeśli potrzebujesz dodatkowo zabezpieczyć endpoint metryk:
  1. Użyj własnej, wewnętrznej ścieżki:
  2. Użyj zabezpieczeń na poziomie sieci:
    • Skonfiguruj reguły firewalla tak, aby dopuszczały tylko serwer Prometheus
    • Używaj prywatnej sieci do zbierania metryk
    • Wdróż Prometheusa w tym samym VPC/tej samej sieci
  3. Reverse proxy z uwierzytelnianiem:

Alerty na puste odpowiedzi

Provider czasem odpowiada 200, ale nie zwraca żadnych choices, żadnego outputu ani użycia tokenów. gomodel_requests_total liczy takie wywołania jako udane, dlatego GoModel dodatkowo zwiększa gomodel_empty_responses_total i loguje ostrzeżenie (provider returned 200 with an empty response). Chat completion bez choices zwraca też klientowi 502 albo przechodzi przez failover, jeśli istnieje cel failoveru. Odpowiedź z treścią, ale bez użycia, jest nadal zwracana; psuje tylko śledzenie użycia i kosztów.

Konfiguracja Prometheusa

Konfiguracja scrapowania

prometheus.yml

Z własnym endpointem

Rozwiązywanie problemów

Endpoint metryk zwraca 404

Przyczyna: metryki są wyłączone (wartość domyślna). Rozwiązanie:
Ustaw METRICS_ENABLED=true w pliku .env, flagą -e METRICS_ENABLED=true w linii poleceń albo przez export METRICS_ENABLED=true (trzy sposoby uruchamiania opisano w Szybkim starcie), a następnie zrestartuj GoModel.

Nie pojawiają się żadne dane metryk

Przyczyna: nie wykonano jeszcze żadnych requestów. Rozwiązanie: wykonaj kilka requestów, aby wygenerować metryki:

Własny endpoint nie działa

Przyczyna: endpoint musi zaczynać się od /. Niepoprawnie:
Poprawnie:

Dobre praktyki

Development

  • Wyłącz metryki, aby przyspieszyć start i ograniczyć szum
  • Włączaj je tylko podczas testowania funkcji obserwowalności

Staging

  • Włącz metryki, aby przetestować konfigurację monitoringu
  • W razie potrzeby użyj własnego endpointu ze względów bezpieczeństwa

Produkcja

  • Włącz metryki, aby uzyskać pełną obserwowalność
  • Skonfiguruj alerty w Prometheusie
  • Do wizualizacji używaj dashboardów Grafany
  • Rozważ własny endpoint ze względów bezpieczeństwa
  • Monitoruj kardynalność metryk, aby uniknąć jej eksplozji

Zobacz też

  • Konfiguracja – pełna dokumentacja referencyjna zmiennych środowiskowych
  • config.yaml – dokumentacja referencyjna konfiguracji YAML
Ostatnia modyfikacja 24 października 2026