Configuración
El bundle se configura bajo un único árbol monitor, por convención en config/packages/monitor.yaml. Cada valor corresponde directamente a los tipos del núcleo monitor-php que el bundle conecta por usted.
Referencia completa
Opciones
| Clave | Tipo | Por defecto | Descripción |
|---|---|---|---|
enabled | bool | true | Interruptor principal. Los servicios se definen siempre, y false actúa en tiempo de ejecución: no se captura nada y no se envía nada. Esa definición sistemática es lo que permite que config/packages/dev/monitor.yaml ponga enabled: false sin que un monolog.yaml que referencia monitor.log_handler rompa la compilación. |
url | string | null | URL base de su servidor Quiet Guard. Las rutas de los endpoints se añaden a ella; la barra final se elimina. Vacía o ausente equivale al servicio alojado https://quietguard.dev: una aplicación que lo use solo tiene que aportar la clave. |
key | string | null | El token de API por proyecto, enviado como Authorization: Bearer <key>. |
timeout | int | 3 | Tiempo de espera del transporte, por petición, en segundos. |
release | string | null | Identificador de release opcional (por ejemplo un SHA de commit) adjuntado al contexto de las excepciones y de los logs. |
trace_limit | int | 0 | 0 (el valor por defecto) envía la pila de llamadas completa con cada excepción; un valor positivo recorta la carga útil a ese número de frames. El punto de lanzamiento, al principio de la pila desde la versión 0.3, cuenta como un frame. |
code_snippets | bool | true | Envía, con cada frame de la aplicación, las cinco líneas de código a cada lado de la suya, leídas en el archivo que se ejecutó. Nunca para una dependencia; una línea que nombra una clave de scrub y le da un valor se enmascara entera. false envía solo el archivo y la línea. |
environments | lista de string | [] | Reportar únicamente desde estos entornos. Una lista vacía significa "todos los entornos". Se compara con kernel.environment. |
scrub | lista de string | ver más abajo | Claves de contexto cuyos valores se enmascaran antes del envío (recursivo, sin distinción de mayúsculas y minúsculas; a partir de la versión 0.3.1, un guion cuenta como un guion bajo). |
redact | lista de string | email, iban, nir, card, phone | Formas de valor enmascaradas estén donde estén, incluidos el texto de un mensaje y los segmentos de URL. Una lista vacía lo desactiva. |
redact_custom | mapa de string | {} | Sus propias formas, con el formato etiqueta: patrón PCRE. Una etiqueta customer_ref enmascara como [redacted:customer_ref]. |
logs.enabled | bool | false | Activa la transmisión de logs. El servicio handler siempre está registrado mientras el bundle está activado; con false, descarta todos los registros. Todavía debe adjuntarlo a Monolog, vea Uso. |
logs.level | string | warning | Nivel mínimo capturado por el handler (un nombre de nivel de Monolog). |
logs.max_batch | int | 200 | Vacía el búfer de logs hacia el servidor en cuanto alcanza este número de registros. |
Claves de enmascaramiento por defecto
Cuando usted no define scrub, el bundle utiliza:
Definir scrub reemplaza esta lista: recuerde volver a incluir los valores por defecto que desee conservar. A partir de la versión 0.3.1, el enmascaramiento alcanza también la URL reportada con cada excepción, un valor JSON escrito como cadena, y los valores que lleva el mensaje de un log cuando empieza por una URL o es JSON: vea Uso.
Enmascaramiento por la forma del valor
scrub mira el nombre de la clave. Nunca ve una dirección escrita en el texto libre de un mensaje de excepción, en un segmento de URL, o en un campo que alguien llamó reference. redact mira el valor, en su propio servidor, antes de cualquier envío, y está activo por defecto con las cinco formas.
Ese valor por defecto ya se aplicaba antes de estar declarado aquí, y por eso conviene decirlo con claridad: el bundle enmascaraba valores que no documentaba en ninguna parte, y cualquier intento de configurarlo fallaba en la compilación del contenedor con Unrecognized option. Ambas claves forman ya parte del árbol.
Las formas que llevan un dígito de control se verifican y no solo se reconocen: una referencia de pedido de dieciséis dígitos no se toma por un número de tarjeta, y cada máscara nombra lo que ocultó ([redacted:email]), de modo que el mensaje sigue siendo legible.
Variables de entorno
Nada le obliga a usar variables de entorno, pero es el patrón recomendado para mantener los secretos fuera del repositorio. Un cableado típico:
La forma %env(default::MONITOR_RELEASE)% recurre a un valor vacío cuando la variable no está definida, y release queda por tanto simplemente vacío.
Restringir los entornos
Por defecto (environments: []), el bundle reporta desde todos los entornos, incluido dev. Para reportar únicamente desde producción:
Tanto el event subscriber de excepciones como el handler de logs de Monolog comparan esta lista con kernel.environment antes de cualquier envío: en cualquier otro entorno, nada sale de su aplicación, ni excepciones ni logs.
Correspondencia configuración / servicios
| Configuración | Servicio construido |
|---|---|
url, key, timeout, release, environments, trace_limit, code_snippets, redact, redact_custom | monitor.config (Config) |
scrub | monitor.scrubber (Scrubber) |
trace_limit, release, code_snippets | monitor.payload_builder (ExceptionPayloadBuilder) |
enabled | monitor.exception_subscriber, que recibe el interruptor y lo aplica en tiempo de ejecución |
| — | monitor.http_client (CurlHttpClient), monitor.reporter (Reporter), que toma el logger de la aplicación cuando existe |
logs.* | monitor.log_handler (MonitorHandler), siempre registrado mientras el bundle está activado; con logs.enabled: false descarta todos los registros, de modo que un monolog.yaml que lo referencie sigue compilando |
Consulte Uso para conocer el comportamiento de estos servicios en tiempo de ejecución.
Está leyendo la documentación Symfony Bundle v1.0.