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

yaml
# config/packages/monitor.yaml
monitor:
    enabled: true
    url: '%env(MONITOR_URL)%'
    key: '%env(MONITOR_KEY)%'
    timeout: 3
    release: '%env(default::MONITOR_RELEASE)%'
    trace_limit: 0    # 0 = traza completa (por defecto); un valor positivo recorta
    environments: []
    scrub: ['password', 'passphrase', 'token', 'secret', 'authorization', 'cookie', 'referer', 'referrer', 'api_key']
    logs:
        enabled: false
        level: warning
        max_batch: 200

Opciones

ClaveTipoPor defectoDescripción
enabledbooltrueInterruptor principal. Con false, el bundle no registra ningún servicio, no se captura nada.
urlstringnullURL base de su servidor Quiet Guard. Las rutas de los endpoints se añaden a ella; la barra final se elimina.
keystringnullEl token de API por proyecto, enviado como Authorization: Bearer <key>.
timeoutint3Tiempo de espera del transporte, por petición, en segundos.
releasestringnullIdentificador de release opcional (por ejemplo un SHA de commit) adjuntado al contexto de las excepciones y de los logs.
trace_limitint00 (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.
environmentslista de string[]Reportar únicamente desde estos entornos. Una lista vacía significa "todos los entornos". Se compara con kernel.environment.
scrublista de stringver más abajoClaves de contexto cuyos valores se enmascaran antes del envío (recursivo, sin distinción de mayúsculas y minúsculas).
logs.enabledboolfalseActiva 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.levelstringwarningNivel mínimo capturado por el handler (un nombre de nivel de Monolog).
logs.max_batchint200Vací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:

password, passphrase, token, secret, authorization, cookie, referer,
referrer, api_key

Definir scrub reemplaza esta lista: recuerde volver a incluir los valores por defecto que desee conservar.

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:

yaml
# config/packages/monitor.yaml
monitor:
    url: '%env(MONITOR_URL)%'
    key: '%env(MONITOR_KEY)%'
    release: '%env(default::MONITOR_RELEASE)%'
    environments: ['prod']
dotenv
# .env.local
MONITOR_URL=https://monitor.example.com
MONITOR_KEY=su-token-de-proyecto
MONITOR_RELEASE=

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:

yaml
monitor:
    environments: ['prod']

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ónServicio construido
url, key, timeout, release, environments, trace_limitmonitor.config (Config)
scrubmonitor.scrubber (Scrubber)
trace_limit, releasemonitor.payload_builder (ExceptionPayloadBuilder)
monitor.http_client (CurlHttpClient), monitor.reporter (Reporter), monitor.exception_subscriber
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.