Configuración - Joomla
Dónde está la configuración
Todo está en Sistema → Plugins → System - DockRay → Opciones. La pantalla muestra el estado actual de la configuración, el resultado de la última prueba y un botón Enviar evento de prueba que comprueba la conexión sin salir de la página.
| Campo | Significado |
|---|---|
| Origen de la configuración | esta pantalla o constantes de configuration.php: ver más abajo |
| URL del servidor | la instancia de DockRay a la que van los eventos |
| Token del proyecto | identificador público, parte de la URL de ingesta |
| Clave privada | secreto del proyecto, mostrado una vez al generarlo |
| Entorno, versión | columnas del panel |
| Muestreo de transacciones | 0 desactiva la medición de peticiones |
| Adjuntar el usuario conectado | envía identificador, nombre de usuario y correo |
| Enviar dirección IP y user agent | desactivado por defecto |
| Recoger errores de JavaScript | desactivado por defecto |
Sin token ni clave privada el plugin permanece inactivo.
Origen de la configuración
Los valores pueden venir de esta pantalla o de constantes de PHP definidas en configuration.php:
define('DOCKRAY_TOKEN', 'token-del-proyecto');
define('DOCKRAY_PRIVATE_KEY', 'clave-privada-del-proyecto');
| Origen | Comportamiento |
|---|---|
| Auto (predeterminado) | una constante definida gana para su propio campo; el resto viene de esta pantalla |
| Solo configuration.php | los campos de conexión de esta pantalla se ocultan; un campo sin constante correspondiente vuelve a su valor predeterminado, no a esta pantalla |
| Solo esta pantalla | las constantes se ignoran aunque estén definidas: útil cuando un configuration.php compartido fija un proyecto por defecto y un sitio necesita el suyo |
Las demás constantes sobrescriben sus campos igual: DOCKRAY_URL, DOCKRAY_ENVIRONMENT, DOCKRAY_RELEASE, DOCKRAY_TRACES_SAMPLE_RATE, DOCKRAY_SEND_DEFAULT_USER, DOCKRAY_SEND_DEFAULT_PII, DOCKRAY_JS_ERRORS y DOCKRAY_JS_SAMPLE_RATE. El área de estado enumera exactamente las que están en vigor.
Entornos
Cada entorno debería informar con un nombre inequívoco: production, staging, preview. El nombre es una columna del panel y un filtro de la lista de errores, así que sin él una caída de producción se ve igual que un error provocado en una prueba. Deja el entorno local sin credenciales: sin token ni clave la integración se carga y permanece en silencio, de modo que no necesitas desactivarla con una condición aparte.
Qué eventos escucha el plugin
| Evento de Joomla | Qué hace |
|---|---|
onAfterInitialise | construye el cliente, adjunta el usuario, abre la transacción |
onError | informa de la excepción para la que Joomla va a renderizar una página de error |
onAfterRespond | cierra la transacción con el estado de la respuesta |
onAjaxDockray | recibe un error de JavaScript de la página cuando el recolector está activo |
onError nunca se detiene: gestionar el error sigue siendo tarea de Joomla, DockRay solo lo informa. Nada sale durante la petición: los eventos se encolan y salen desde un manejador de cierre una vez enviada la respuesta.
Datos del usuario y privacidad
Dos interruptores independientes. Adjuntar el usuario conectado envía identificador, nombre de usuario y correo: útil para errores del back end, pero introduce datos personales en la monitorización. Enviar dirección IP y user agent es una decisión aparte y está desactivada por defecto.
Errores de JavaScript
Desactivado por defecto. Al activarlo, el sitio carga un recolector que informa de window.onerror y de los rechazos de promesas no gestionados a Joomla, no al panel: un navegador no puede autenticarse ante DockRay sin la clave privada del proyecto, y esta quedaría legible en el código de la página. Joomla reenvía cada error con su propia clave.
Los informes van a com_ajax (index.php?option=com_ajax&group=system&plugin=dockray), con un límite de 16 kB por informe. El recolector se inserta en la página en lugar de enlazarse, porque en Joomla el directorio del plugin no es un directorio de recursos.
Notificar a mano
use function Dock\Ray\captureException;
try {
$model->save($data);
} catch (\Throwable $exception) {
captureException($exception);
throw $exception;
}
El plugin instala su hub como el hub actual del SDK, así que las funciones globales funcionan en cualquier punto de la petición una vez inicializado.
Proteger la clave privada
La clave privada es un secreto del proyecto, no un identificador. Guárdala en variables de entorno, en un gestor de secretos o en la configuración del servidor: nunca en el repositorio, en los registros, en una captura de pantalla ni en código que llegue al navegador. Un proyecto puede tener varias claves, así que producción y preproducción deberían tener la suya: cada una se revoca por separado sin interrumpir a las demás. La sospecha de que una clave se ha filtrado ya es motivo suficiente para revocarla y generar otra.