Überprüfung und typische Probleme - Python
Ein kontrolliertes Ereignis
import asyncio
from dock_ray import DockRayClient
async def main():
client = DockRayClient(token="...", private_key="...")
await client.capture_message("DockRay-Kontrollmeldung")
await client.close()
asyncio.run(main())
Der Aufruf ist eine Coroutine - ohne await oder einen laufenden Event-Loop wird nichts gesendet. Ein Interpreter mit aktivierten Warnungen zu nicht abgewarteten Coroutinen meldet das sofort als RuntimeWarning.
Typische Probleme
client.enabled ist False, obwohl die Variablen gesetzt sind
Prüfe, ob Token und privater Schlüssel als nicht leere Strings beim Konstruktor angekommen sind. DockRayClient() ohne Argumente ist eine gültige, absichtlich inaktive Konfiguration - ein Tippfehler im Namen einer Umgebungsvariable oder ein ausgelassenes os.environ.get(...) erzeugt genau denselben stillen Effekt. Der Client liest selbst nie eine Servervariable - anders als bei den PHP-Integrationen liefert hier immer der aufrufende Code die Zugangsdaten.
Ein mit send_later() geplantes Ereignis kam nie an
send_later() hält eine Referenz auf die Aufgabe, bis sie fertig ist - aber der Prozess selbst muss so lange durchhalten. In einem kurzen Skript, das gleich nach dem Planen des Versands endet, kann die Aufgabe mittendrin abgebrochen werden. Fahre die Anwendung über await client.close() herunter - es wartet auf jeden geplanten Versand, bevor es die Kontrolle zurückgibt.
HTTPException erscheint im Panel als Transaktion, nicht als Fehler
Das ist beabsichtigt, kein Fehler. FastAPI behandelt HTTPException, bevor sie das DockRay-Middleware überhaupt erreicht - eine mit 404 oder 422 endende Anfrage ist also schlicht eine Transaktion mit diesem Statuscode. Willst du solche Antworten als Fehler sehen, fange sie mit einem eigenen, vor dem Middleware platzierten Exception-Handler ab und melde sie manuell über capture_exception().
In den Anfrage-Headern fehlen Authorization, Cookie und X-Api-Key
Das Middleware entfernt sie immer aus den gemeldeten Daten, unabhängig von der Konfiguration - das lässt sich nicht wieder einschalten. Brauchst du ihren Inhalt zur Diagnose, prüfe ihn lokal, außerhalb des Panels.
Es erscheinen überhaupt keine Transaktionen
Prüfe, ob das Middleware überhaupt hinzugefügt ist (app.add_middleware(DockRayFastAPIMiddleware, ...)) und ob der getestete Pfad zufällig auf der Liste exclude_paths steht. Standardmäßig fallen dort /health und /metrics heraus.
Eine manuell gemeldete Ausnahme kam nicht an
Prüfe, ob dem Aufruf von capture_exception() wirklich ein await vorangeht oder ob er an send_later() übergeben wurde - eine Coroutine, die niemand ausgeführt hat, tut nichts, und Python meldet das nicht immer laut.
Das Panel antwortet 200, aber es gibt kein Ereignis
Eine Antwort 200 {"success": false} bedeutet, dass das Konto sein monatliches Fehlerkontingent aufgebraucht hat. Die Integration behandelt das nicht als Störung - zu Recht. Das Kontingent siehst du im Konto-Dashboard; bis zum Monatsende wird es aus der erfassten Nutzung berechnet, Fehler zu löschen setzt es also nicht zurück.
Es funktioniert weiterhin nicht
Arbeite die Checkliste zur Fehlerbehebung durch, und wenn das nicht hilft, schreib uns. Nenne den Projektnamen, die Version der Integration und ungefähr die Uhrzeit des Tests: das verkürzt den Weg zur Antwort.