Konfiguration - Joomla
Wo die Konfiguration liegt
Alles steht unter System → Plugins → System - DockRay → Optionen. Der Bildschirm zeigt den aktuellen Konfigurationsstatus, das Ergebnis des letzten Tests und eine Schaltfläche Testereignis senden, die die Verbindung ohne Seitenwechsel prüft.
| Feld | Bedeutung |
|---|---|
| Konfigurationsquelle | dieser Bildschirm oder Konstanten aus der configuration.php - siehe unten |
| Server-URL | die DockRay-Instanz, an die Ereignisse gehen |
| Projekt-Token | öffentliche Kennung, Teil der Ingest-URL |
| Privater Schlüssel | Projektgeheimnis, einmalig beim Erzeugen angezeigt |
| Umgebung, Release | Spalten im Panel |
| Transaktions-Stichprobenrate | 0 deaktiviert die Zeitmessung |
| Angemeldeten Benutzer anhängen | sendet ID, Benutzernamen und E-Mail-Adresse |
| IP-Adresse und User-Agent senden | standardmäßig aus |
| JavaScript-Fehler sammeln | standardmäßig aus |
Ohne Token und privaten Schlüssel bleibt das Plugin untätig.
Konfigurationsquelle
Die Werte können von diesem Bildschirm oder aus PHP-Konstanten in der configuration.php kommen:
define('DOCKRAY_TOKEN', 'projekt-token');
define('DOCKRAY_PRIVATE_KEY', 'privater-projektschluessel');
| Quelle | Verhalten |
|---|---|
| Auto (Standard) | eine definierte Konstante gewinnt für ihr eigenes Feld, alles andere kommt von diesem Bildschirm |
| Nur configuration.php | die Verbindungsfelder dieses Bildschirms sind verborgen; ein Feld ohne passende Konstante fällt auf seinen Standardwert zurück, nicht auf diesen Bildschirm |
| Nur dieser Bildschirm | Konstanten werden ignoriert, selbst wenn sie definiert sind - nützlich, wenn eine gemeinsame configuration.php ein Standardprojekt festschreibt und eine Website ihr eigenes braucht |
Die übrigen Konstanten überschreiben ihre Felder auf dieselbe Weise: DOCKRAY_URL, DOCKRAY_ENVIRONMENT, DOCKRAY_RELEASE, DOCKRAY_TRACES_SAMPLE_RATE, DOCKRAY_SEND_DEFAULT_USER, DOCKRAY_SEND_DEFAULT_PII, DOCKRAY_JS_ERRORS und DOCKRAY_JS_SAMPLE_RATE. Der Statusbereich listet genau die gerade wirksamen auf.
Umgebungen
Jede Umgebung sollte unter einem eindeutigen Namen berichten - production, staging, preview. Der Name ist eine Spalte im Panel und ein Filter in der Fehlerliste; ohne ihn sieht ein Produktionsausfall genauso aus wie ein Fehler, den jemand im Test ausgelöst hat. Lass die lokale Umgebung ohne Zugangsdaten: ohne Token und Schlüssel lädt die Integration und bleibt still - ein eigener Schalter ist nicht nötig.
Auf welche Ereignisse das Plugin hört
| Joomla-Ereignis | Wirkung |
|---|---|
onAfterInitialise | baut den Client, hängt den Benutzer an, öffnet die Transaktion |
onError | meldet die Ausnahme, für die Joomla gerade eine Fehlerseite rendern will |
onAfterRespond | schließt die Transaktion mit dem Antwortstatus |
onAjaxDockray | empfängt einen JavaScript-Fehler der Seite, wenn der Kollektor aktiv ist |
onError wird nie gestoppt - die Fehlerbehandlung bleibt Joomlas Aufgabe, DockRay berichtet nur darüber. Während der Anfrage geht nichts hinaus: Ereignisse sammeln sich in einer Warteschlange und verlassen sie aus einem Shutdown-Handler, sobald die Antwort ausgeliefert ist.
Benutzerdaten und Datenschutz
Zwei unabhängige Schalter. Angemeldeten Benutzer anhängen sendet ID, Benutzernamen und E-Mail-Adresse - hilfreich bei Backend-Fehlern, bringt aber personenbezogene Daten ins Monitoring. IP-Adresse und User-Agent senden ist eine eigene Entscheidung und standardmäßig aus.
JavaScript-Fehler
Standardmäßig aus. Nach dem Aktivieren lädt die Website einen Kollektor, der window.onerror und unbehandelte Promise-Rejections an Joomla meldet, nicht an das Panel: ein Browser kann sich ohne den privaten Projektschlüssel nicht bei DockRay authentifizieren, und dieser wäre dann im Seitenquelltext lesbar. Joomla leitet jeden Fehler mit seinem eigenen Schlüssel weiter.
Die Meldungen gehen an com_ajax (index.php?option=com_ajax&group=system&plugin=dockray), begrenzt auf 16 kB pro Meldung. Der Kollektor wird in die Seite eingebettet statt verlinkt, weil das Plugin-Verzeichnis in Joomla kein Asset-Verzeichnis ist.
Melden aus eigenem Code
use function Dock\Ray\captureException;
try {
$model->save($data);
} catch (\Throwable $exception) {
captureException($exception);
throw $exception;
}
Das Plugin installiert seinen Hub als den aktuellen des SDK, die globalen Funktionen wirken also überall in der Anfrage, sobald das Plugin initialisiert ist.
Den privaten Schlüssel schützen
Der private Schlüssel ist ein Projektgeheimnis, keine Kennung. Bewahre ihn in Umgebungsvariablen, in einem Secret-Manager oder in der Serverkonfiguration auf - niemals im Repository, in Logs, auf einem Screenshot oder in Code, der an den Browser geht. Ein Projekt kann mehrere Schlüssel haben, deshalb sollten Produktion und Staging je eigene bekommen: jeder lässt sich einzeln widerrufen, ohne die übrigen zu unterbrechen. Der Verdacht, dass ein Schlüssel abgeflossen ist, genügt, um ihn zu widerrufen und einen neuen zu erzeugen.