Instalacja - Python
Na tej stronie Wymagania
Zanim zaczniesz, utwórz projekt w panelu DockRay. W jego ustawieniach znajdziesz token projektu - publiczny identyfikator, który wchodzi do adresu endpointu - a w zakładce Klucze API wygenerujesz klucz prywatny. Klucz jest pokazywany tylko raz, w momencie generowania: w bazie DockRay leży wyłącznie jego skrót. Jeżeli nie masz jeszcze projektu, zacznij od zakładania konta i pierwszego projektu.
Wymagania
- Python 3.9 lub nowszy,
- środowisko z pętlą zdarzeń
asyncio- aplikacja ASGI, skrypt uruchomiony przezasyncio.run()albo worker z obsługą async, - możliwość wykonywania połączeń wychodzących HTTPS.
Pakiet jest klientem asynchronicznym: każda metoda raportująca jest korutyną, więc jej wywołanie zawsze poprzedza await. Jedyną zależnością jest httpx - instaluje się razem z pakietem.
Instalacja
pip install dock-ray
Utworzenie klienta
W przeciwieństwie do integracji PHP tu nie ma globalnej funkcji init() - tworzysz instancję DockRayClient i przekazujesz ją tam, gdzie ma być użyta:
from dock_ray import DockRayClient
client = DockRayClient(
token="TOKEN_PROJEKTU",
private_key="KLUCZ_PRYWATNY_PROJEKTU",
environment="production",
)
Bez tokenu i klucza konstruktor nie rzuca wyjątku - client.enabled zwraca False, a każde wywołanie raportujące kończy się natychmiast, bez próby połączenia z siecią. Dzięki temu klienta można tworzyć bezwarunkowo, a poświadczenia zostawić poza środowiskiem lokalnym. Pakiet sam nie czyta żadnych zmiennych serwerowych - to Twój kod decyduje, skąd wziąć token i klucz.
Raportowanie
try:
settle(order)
except Exception as error:
await client.capture_exception(error)
Każda metoda raportująca - capture_exception(), capture_message(), capture_transaction() - zwraca bool: True, gdy panel przyjął zdarzenie, False w każdym innym przypadku, łącznie z wyczerpanym limitem błędów konta.
Zamknięcie klienta
Przy zamykaniu aplikacji wywołaj await client.close() - domyka oczekujące zadania w tle i zamyka pulę połączeń httpx. Pominięcie tego kroku w krótko żyjącym skrypcie potrafi urwać wysyłkę w połowie, zanim zdarzenie zdąży opuścić proces.
Pierwszy test
import asyncio
from dock_ray import DockRayClient
async def main():
client = DockRayClient(token="TOKEN_PROJEKTU", private_key="KLUCZ_PRYWATNY_PROJEKTU")
await client.capture_message("Kontrolny komunikat DockRay")
await client.close()
asyncio.run(main())
Komunikat powinien pojawić się w panelu w sekcji Błędy projektu wskazanego przez token.