Installation - Python
Erstelle zuerst ein Projekt im DockRay-Panel. In seinen Einstellungen findest du den Projekt-Token - die öffentliche Kennung, die in die Ingest-URL eingeht - und im Tab API-Schlüssel erzeugst du einen privaten Schlüssel. Der Schlüssel wird nur einmal angezeigt, beim Erzeugen: DockRay speichert lediglich seinen Hash. Wenn noch kein Projekt existiert, beginne mit Erste Schritte.
Voraussetzungen
- Python 3.9 oder neuer,
- eine Umgebung mit
asyncio-Event-Loop - eine ASGI-Anwendung, ein überasyncio.run()gestartetes Skript oder ein Worker mit Async-Unterstützung, - ausgehende HTTPS-Verbindungen erlaubt.
Das Paket ist ein asynchroner Client: Jede Reporting-Methode ist eine Coroutine, ihr Aufruf steht also immer hinter await. Einzige Abhängigkeit ist httpx, das zusammen mit dem Paket installiert wird.
Installation
pip install dock-ray
Client erzeugen
Anders als bei den PHP-Integrationen gibt es hier keine globale Funktion init() - du erzeugst eine DockRayClient-Instanz und reichst sie dorthin weiter, wo sie gebraucht wird:
from dock_ray import DockRayClient
client = DockRayClient(
token="PROJEKT_TOKEN",
private_key="PRIVATER_PROJEKTSCHLUESSEL",
environment="production",
)
Fehlen Token und Schlüssel, wirft der Konstruktor nichts - client.enabled liefert False, und jeder Reporting-Aufruf endet sofort, ohne einen Verbindungsversuch. Der Client lässt sich also bedingungslos erzeugen, die Zugangsdaten bleiben einfach aus der lokalen Umgebung. Das Paket liest selbst keine Servervariable - dein eigener Code entscheidet, woher Token und Schlüssel kommen.
Melden
try:
settle(order)
except Exception as error:
await client.capture_exception(error)
Jede Reporting-Methode - capture_exception(), capture_message(), capture_transaction() - liefert ein bool: True, wenn das Panel das Ereignis angenommen hat, sonst False - auch dann, wenn das Konto sein Fehlerkontingent aufgebraucht hat.
Client schließen
Rufe beim Herunterfahren der Anwendung await client.close() auf - es leert wartende Hintergrundaufgaben und schließt den httpx-Verbindungspool. Wird das in einem kurzlebigen Skript ausgelassen, kann ein Versand mittendrin abbrechen, bevor das Ereignis den Prozess verlassen hat.
Der erste Test
import asyncio
from dock_ray import DockRayClient
async def main():
client = DockRayClient(token="PROJEKT_TOKEN", private_key="PRIVATER_PROJEKTSCHLUESSEL")
await client.capture_message("DockRay-Kontrollmeldung")
await client.close()
asyncio.run(main())
Die Meldung sollte im Panel unter Fehler des Projekts erscheinen, auf das der Token zeigt.