Configuration

Le bundle se configure sous une unique arborescence monitor, par convention dans config/packages/monitor.yaml. Chaque valeur correspond directement aux types du cœur monitor-php que le bundle câble pour vous.

Référence complète

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 = trace complète (défaut) ; une valeur positive tronque
    environments: []
    scrub: ['password', 'passphrase', 'token', 'secret', 'authorization', 'cookie', 'referer', 'referrer', 'api_key']
    logs:
        enabled: false
        level: warning
        max_batch: 200

Options

CléTypeDéfautDescription
enabledbooltrueInterrupteur principal. À false, le bundle n'enregistre aucun service, rien n'est capturé.
urlstringnullURL de base de votre serveur Quiet Guard. Les chemins d'endpoint y sont ajoutés ; un slash final est retiré.
keystringnullLe jeton d'API par projet, envoyé en Authorization: Bearer <key>.
timeoutint3Délai d'expiration du transport, par requête, en secondes.
releasestringnullIdentifiant de release optionnel (par ex. un SHA de commit) attaché au contexte des exceptions et des logs.
trace_limitint00 (le défaut) envoie la pile d'appels complète avec chaque exception ; une valeur positive tronque la charge utile à ce nombre de frames.
environmentsliste de string[]Ne remonter que depuis ces environnements. Une liste vide signifie « tous les environnements ». Comparé à kernel.environment.
scrubliste de stringvoir ci-dessousClés de contexte dont les valeurs sont masquées avant l'envoi (récursif, insensible à la casse).
logs.enabledboolfalseActive la transmission des logs. Le service handler est toujours enregistré tant que le bundle est activé ; à false, il ignore tous les enregistrements. Vous devez encore l'attacher à Monolog, voir Usage.
logs.levelstringwarningNiveau minimal capturé par le handler (un nom de niveau Monolog).
logs.max_batchint200Vide le tampon de logs vers le serveur dès qu'il atteint ce nombre d'enregistrements.

Clés de masquage par défaut

Lorsque vous ne définissez pas scrub, le bundle utilise :

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

Définir scrub remplace cette liste : pensez à y réinclure les valeurs par défaut que vous souhaitez conserver.

Variables d'environnement

Rien ne vous oblige à utiliser des variables d'environnement, mais c'est le motif recommandé pour garder les secrets hors du dépôt. Un câblage typique :

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=votre-jeton-de-projet
MONITOR_RELEASE=

La forme %env(default::MONITOR_RELEASE)% retombe sur une valeur vide quand la variable n'est pas définie, et release reste donc simplement vide.

Restreindre les environnements

Par défaut (environments: []), le bundle remonte depuis tous les environnements, y compris dev. Pour ne remonter que depuis la production :

yaml
monitor:
    environments: ['prod']

L'event subscriber d'exception comme le handler de logs Monolog vérifient cette liste contre kernel.environment avant tout envoi : dans tout autre environnement, rien ne quitte votre application, ni exceptions ni logs.

Correspondance configuration / services

ConfigurationService construit
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), toujours enregistré tant que le bundle est activé ; avec logs.enabled: false, il ignore tous les enregistrements, et un monolog.yaml qui le référence continue donc de compiler

Consultez Usage pour le comportement de ces services à l'exécution.

Vous lisez la documentation Symfony Bundle v1.0.