Konfiguracja - Joomla
Na tej stronie Gdzie jest konfiguracja
Gdzie jest konfiguracja
Wszystko jest w System → Wtyczki → System - DockRay → Opcje. Ekran pokazuje bieżący status konfiguracji, wynik ostatniego testu i przycisk Wyślij zdarzenie testowe, który sprawdza połączenie bez opuszczania strony.
| Pole | Znaczenie |
|---|---|
| Źródło konfiguracji | ten ekran albo stałe z configuration.php - patrz niżej |
| Adres serwera | instancja DockRay, do której idą zdarzenia |
| Token projektu | publiczny identyfikator, część adresu endpointu |
| Klucz prywatny | sekret projektu, pokazywany raz przy generowaniu |
| Środowisko, wersja wydania | kolumny w panelu |
| Próbkowanie transakcji | 0 wyłącza pomiar czasu żądań |
| Dołącz zalogowanego użytkownika | wysyła identyfikator, nazwę i adres e-mail |
| Wysyłaj adres IP i user agenta | domyślnie wyłączone |
| Zbieraj błędy JavaScript | domyślnie wyłączone |
Bez tokenu i klucza prywatnego wtyczka pozostaje bezczynna.
Źródło konfiguracji
Wartości mogą pochodzić z tego ekranu albo ze stałych PHP zdefiniowanych w configuration.php:
define('DOCKRAY_TOKEN', 'token-projektu');
define('DOCKRAY_PRIVATE_KEY', 'klucz-prywatny-projektu');
| Źródło | Zachowanie |
|---|---|
| Auto (domyślne) | zdefiniowana stała wygrywa dla swojego jednego pola, resztę bierzemy z tego ekranu |
| Tylko configuration.php | pola połączenia na tym ekranie są ukryte; pole bez odpowiadającej stałej spada na wartość domyślną, a nie na ekran |
| Tylko ten ekran | stałe są ignorowane, choćby były zdefiniowane - przydatne, gdy wspólny configuration.php zaszywa domyślny projekt, a jedna witryna ma mieć własny |
Pozostałe stałe nadpisują odpowiadające im pola w ten sam sposób: DOCKRAY_URL, DOCKRAY_ENVIRONMENT, DOCKRAY_RELEASE, DOCKRAY_TRACES_SAMPLE_RATE, DOCKRAY_SEND_DEFAULT_USER, DOCKRAY_SEND_DEFAULT_PII, DOCKRAY_JS_ERRORS i DOCKRAY_JS_SAMPLE_RATE. Obszar statusu wypisuje dokładnie te, które są w danym momencie aktywne.
Środowiska
Każde środowisko powinno raportować pod jednoznaczną nazwą - production, staging, preview. Nazwa jest kolumną w panelu i filtrem na liście błędów, więc bez niej awaria z produkcji wygląda dokładnie tak samo jak błąd wywołany w testach. Środowisko lokalne zostaw bez poświadczeń: bez tokenu i klucza integracja ładuje się i milczy, więc nie musisz jej wyłączać osobnym warunkiem.
Na jakie zdarzenia wtyczka nasłuchuje
| Zdarzenie Joomli | Co robi |
|---|---|
onAfterInitialise | buduje klienta, dołącza użytkownika, otwiera transakcję |
onError | raportuje wyjątek, dla którego Joomla ma właśnie wyrenderować stronę błędu |
onAfterRespond | zamyka transakcję statusem odpowiedzi |
onAjaxDockray | odbiera błąd JavaScriptu ze strony, gdy kolektor jest włączony |
onError nigdy nie jest zatrzymywane - obsługa błędu pozostaje zadaniem Joomli, a DockRay tylko o nim mówi. Nic nie wychodzi w trakcie żądania: zdarzenia czekają w kolejce i idą z uchwytu zamknięcia, kiedy odpowiedź została już odesłana.
Dane użytkownika i prywatność
Dwa niezależne przełączniki. Dołącz zalogowanego użytkownika wysyła identyfikator, nazwę i adres e-mail - przydaje się przy błędach zaplecza, ale wprowadza dane osobowe do monitoringu. Wysyłaj adres IP i user agenta jest osobną decyzją i domyślnie jest wyłączone.
Błędy JavaScript
Domyślnie wyłączone. Po włączeniu strona ładuje kolektor, który raportuje window.onerror i nieobsłużone odrzucenia obietnic do Joomli, a nie do panelu: przeglądarka nie może uwierzytelnić się w DockRayu bez klucza prywatnego projektu, a ten byłby wtedy czytelny w źródle strony. Joomla przekazuje każdy błąd dalej własnym kluczem.
Zgłoszenia trafiają do com_ajax (index.php?option=com_ajax&group=system&plugin=dockray) z limitem 16 kB na zgłoszenie. Kolektor jest wstawiany do strony w treści, a nie linkowany, bo katalog wtyczki nie jest w Joomli katalogiem zasobów.
Ręczne raportowanie
use function Dock\Ray\captureException;
try {
$model->save($data);
} catch (\Throwable $exception) {
captureException($exception);
throw $exception;
}
Wtyczka instaluje swój hub jako bieżący hub SDK, więc globalne funkcje działają w dowolnym miejscu żądania po jej zainicjowaniu.
Ochrona klucza prywatnego
Klucz prywatny jest sekretem projektu, a nie identyfikatorem. Trzymaj go w zmiennych środowiskowych, w menedżerze sekretów albo w konfiguracji serwera - nigdy w repozytorium, w logach, na zrzucie ekranu ani w kodzie wysyłanym do przeglądarki. Jeden projekt może mieć wiele kluczy, więc produkcja i środowisko testowe powinny dostać osobne: każdy odwołuje się niezależnie, bez przerywania raportowania z pozostałych. Podejrzenie ujawnienia klucza jest wystarczającym powodem, aby go odwołać i wygenerować nowy.