Weryfikacja i typowe problemy - Python
Na tej stronie Kontrolowane zdarzenie
- Kontrolowane zdarzenie
- Typowe problemy
- client.enabled jest False mimo ustawionych zmiennych
- Zdarzenie zaplanowane przez send_later() nigdy nie dotarło
- HTTPException pojawia się w panelu jako transakcja, nie jako błąd
- W nagłówkach żądania brakuje Authorization, Cookie i X-Api-Key
- Transakcje nie pojawiają się w ogóle
- Ręcznie zgłoszony wyjątek nie dotarł
- Panel odpowiada 200, ale zdarzenia nie ma
- Nadal nie działa
Kontrolowane zdarzenie
import asyncio
from dock_ray import DockRayClient
async def main():
client = DockRayClient(token="...", private_key="...")
await client.capture_message("Kontrolny komunikat DockRay")
await client.close()
asyncio.run(main())
Wywołanie jest korutyną - bez await albo uruchomienia w pętli zdarzeń nic się nie wyśle. Interpreter w wersjach z ostrzeżeniami o nieoczekiwanych korutynach zgłosi to od razu jako RuntimeWarning.
Typowe problemy
client.enabled jest False mimo ustawionych zmiennych
Sprawdź, czy token i klucz prywatny trafiły do konstruktora jako niepuste stringi. DockRayClient() bez argumentów jest poprawną, celowo nieaktywną konfiguracją, więc literówka w nazwie zmiennej środowiskowej albo pominięty os.environ.get(...) daje dokładnie ten sam, cichy efekt. Klient nie czyta zmiennych serwerowych sam - w przeciwieństwie do integracji PHP, tu poświadczenia zawsze podaje wywołujący kod.
Zdarzenie zaplanowane przez send_later() nigdy nie dotarło
send_later() trzyma referencję do zadania aż do jego zakończenia, ale sam proces musi dożyć tego zakończenia. W krótkim skrypcie, który kończy się zaraz po zaplanowaniu wysyłki, zadanie bywa przerwane w połowie. Zamknij aplikację przez await client.close() - czeka na każde zaplanowane wysłanie, zanim odda sterowanie dalej.
HTTPException pojawia się w panelu jako transakcja, nie jako błąd
To zamierzone zachowanie, nie usterka. FastAPI obsługuje HTTPException, zanim dotrze ona do middleware'u DockRay, więc żądanie zakończone kodem 404 albo 422 jest po prostu transakcją z tym kodem statusu. Jeśli zależy Ci na widzeniu takich odpowiedzi jako błędów, przechwyć je własnym handlerem wyjątków ustawionym przed middleware'em i zaraportuj ręcznie przez capture_exception().
W nagłówkach żądania brakuje Authorization, Cookie i X-Api-Key
Middleware wycina je z raportowanych danych zawsze, niezależnie od konfiguracji - to nie jest coś, co da się włączyć z powrotem. Jeśli diagnoza wymaga ich zawartości, sprawdzaj je lokalnie, poza panelem.
Transakcje nie pojawiają się w ogóle
Sprawdź, czy middleware jest w ogóle dodane (app.add_middleware(DockRayFastAPIMiddleware, ...)) i czy testowana ścieżka nie jest akurat na liście exclude_paths. Domyślnie schodzą z niej /health i /metrics.
Ręcznie zgłoszony wyjątek nie dotarł
Sprawdź, czy wywołanie capture_exception() jest rzeczywiście poprzedzone await albo przekazane do send_later() - korutyna, której nikt nie uruchomił, nie robi nic, a Python nie zawsze sygnalizuje to głośno.
Panel odpowiada 200, ale zdarzenia nie ma
Odpowiedź 200 {"success": false} znaczy, że konto wyczerpało miesięczny limit błędów. Integracja nie traktuje tego jak awarii - i słusznie. Limit widzisz na pulpicie konta; do końca miesiąca liczy się z zapisanego zużycia, więc nie zresetuje go usunięcie błędów.
Nadal nie działa
Przejdź przez listę kontrolną braku danych w panelu, a jeśli to nie pomoże - napisz do nas. Podaj nazwę projektu, wersję integracji i przybliżoną godzinę testu: to skraca drogę do odpowiedzi.