Przegląd
Open source’owy GoModel wysyła ruch jednego providera przez jedno proxy za pomocąproxy_url. To wystarcza dla pojedynczego providera
z ograniczeniami geograficznymi, ale nie dla floty, która zawsze musi wychodzić
przez adres IP egress znajdujący się na allowliście: gdy to jedno proxy
przestanie działać, każdy request za nim kończy się błędem.
Pule proxy egress uzupełniają brakujące elementy:
- Pule proxy HTTP, HTTPS, SOCKS5 lub SOCKS5h, wybierane strategią
failover(pierwsze zdrowe, w kolejności) lubround_robin. - Health checki, które cyklicznie sprawdzają każde proxy, pomijają członków puli zwracających błędy i przywracają ich, gdy znów przejdą test.
- Reguły, które przypisują providerów do pul według wzorca nazwy lub typu providera, dzięki czemu nowy provider jest objęty konfiguracją bez zmian w jego własnych ustawieniach.
proxy_url providera nadal ma pierwszeństwo przed każdą regułą.
Providerzy, do których nie pasuje żadna reguła, zachowują globalne dla gatewaya
zachowanie HTTP_PROXY, HTTPS_PROXY i NO_PROXY.
Konfiguracja pul
Skonfiguruj je w sekcjiextensions.egress głównej konfiguracji YAML GoModel:
openai-eu, openai*); z prefiksem type: jest
dopasowywany zamiast tego do typu providera (type:gemini). Przy jednej puli i
braku reguł każdy provider używa tej puli.
Te same ustawienia są dostępne jako zmienne środowiskowe, które nadpisują
wartości z YAML. Jedna pula na każdą zmienną PRO_EGRESS_PROXY_<NAME>; nazwa
staje się nazwą puli zapisaną małymi literami, z podkreśleniami zamienionymi na
myślniki (EU_STATIC staje się eu-static):
Health checki i failover
Każdy członek puli jest sprawdzany, zanim gateway obsłuży pierwszy request, więc proxy, które już nie działa, nigdy nie dostaje ruchu. Bezcheck_url test to
połączenie TCP z portem proxy. Z check_url jest to request HEAD przez proxy;
każda przekazana odpowiedź oznacza zdrowe proxy, łącznie z 401 lub 404 od
celu, natomiast 5xx oznacza błąd, bo forward proxy same odpowiadają 502,
503 i 504, gdy nie mogą dotrzeć do celu.
Po pierwszym teście członek puli musi zaliczyć failure_threshold kolejnych
błędów, aby został pominięty, i jeden sukces, aby wrócił. Gdy wszyscy członkowie
puli są niezdrowi, pula jest nadal używana, począwszy od pierwszego członka, a
ostrzeżenie jest logowane raz na awarię. Dopasowana pula nigdy nie przechodzi na
połączenie bezpośrednie.
Podgląd
Zmiany stanu zdrowia są logowane z nazwą puli, pozycją członka i URL-em proxy z zamaskowanym hasłem. Prometheus udostępnia:gomodel_pro_egress_proxy_healthy{pool,member,proxy}:1, dopóki członek puli jest w rotacji.gomodel_pro_egress_health_checks_total{pool,member,proxy,result}: testy według wyniku.gomodel_pro_egress_selections_total{pool,member,proxy}: liczba requestów, dla których wybrano danego członka puli.
gomodel_pro_egress_proxy_healthy == 0, aby dowiedzieć się o
niedziałającym proxy, zanim w puli skończą się członkowie.