Configuración - PrestaShop
Dónde está la configuración
Todo está en una sola pantalla: Módulos → Gestor de módulos → DockRay → Configurar. Arriba hay dos indicadores de estado: si las credenciales están completas y cómo terminó la última prueba de conexión, con su fecha.
| Campo | Significado |
|---|---|
| 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 cliente conectado | envía el identificador y el correo del cliente |
| Enviar dirección IP y user agent | desactivado por defecto |
| Recoger errores de JavaScript | desactivado por defecto |
Una tienda copiada a un servidor de pruebas
Es la trampa clásica de PrestaShop: una tienda copiada a preproducción se lleva su base de datos y con ella las credenciales del proyecto, y los dos entornos empiezan a informar al mismo proyecto. Sobrescribe la clave con una constante en app/config/parameters.php, que no forma parte de un volcado de base de datos:
define('_DOCKRAY_PRIVATE_KEY_', 'clave-privada-del-proyecto-de-pruebas');
La constante gana sobre el valor guardado en la tabla configuration.
Origen de la configuración
El selector Origen de la configuración decide cómo conviven las constantes y el formulario: Auto (predeterminado: una constante definida gana para su campo, el resto viene del formulario), Solo constantes y Solo este formulario. La última opción ayuda cuando un archivo de parámetros compartido fija un proyecto por defecto y una tienda de un multistore debe informar al suyo.
Las demás constantes funcionan igual: _DOCKRAY_TOKEN_, _DOCKRAY_URL_, _DOCKRAY_ENVIRONMENT_, _DOCKRAY_RELEASE_, _DOCKRAY_TRACES_SAMPLE_RATE_, _DOCKRAY_SEND_CUSTOMER_, _DOCKRAY_SEND_DEFAULT_PII_, _DOCKRAY_JS_ERRORS_ y _DOCKRAY_JS_SAMPLE_RATE_.
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.
Datos del cliente y privacidad
Dos interruptores, ambos desactivados por defecto y separados a propósito. Adjuntar el cliente conectado envía el identificador y el correo electrónico: ayuda a reconstruir el recorrido de un pedido, pero introduce datos personales en la monitorización. Enviar dirección IP y user agent es una decisión aparte, porque también afecta a los invitados. Actívalos de forma consciente y recógelo en tu política de privacidad.
Errores de JavaScript en la tienda
Desactivado por defecto. Al activarlo, el módulo carga en la tienda un pequeño recolector que informa de window.onerror y de los rechazos de promesas no gestionados a la tienda, no al panel: autenticarse desde el navegador supondría publicar la clave privada del proyecto en el código de la página. La tienda reenvía cada error con su propia clave.
El receptor es un front controller del módulo (index.php?fc=module&module=dockray&controller=browsererror), protegido por el token de PrestaShop, un límite de 16 kB de cuerpo y 20 informes por dirección IP y minuto. Responde 202 con independencia de si aceptó el informe. El recolector también se limita: un informe por error distinto y por vista de página, como máximo diez por vista, descartando ResizeObserver loop y el Script error. de origen cruzado.
Desde tu propio código de la tienda:
DockRay.captureException(error);
DockRay.captureMessage('Checkout step skipped');
Notificar a mano desde PHP
use Dock\Ray\PrestaShop\Reporter;
try {
$this->syncStock();
} catch (\Throwable $exception) {
Reporter::report($exception);
throw $exception;
}
Reporter::report() nunca lanza excepciones, así que puedes llamarlo dentro del propio manejo del error desde el que informas.
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.
Cuándo salen los eventos
Después de la respuesta. El módulo encola los eventos durante la petición y los vacía desde un manejador de cierre, cuando PHP-FPM ya ha cerrado la conexión con el navegador. Un panel lento no le cuesta nada al comprador.