Changelog
phil/monitoring-bundlePas encore traduite
Cette page n’est pas encore traduite en français ; elle est montrée en anglais.
All notable changes to phil/monitoring-bundle will be documented in this file.
Updates should follow the Keep a CHANGELOG principles.
0.1.0-alpha - 2026-11-11
Added
PhilMonitoringBundleand thephil_monitoringconfiguration: the clock, the cache pool, the checks and the token ofhealth, the store and allow-lists ofmaintenance, the tasks, store and alerts ofheartbeats, and the role, limit and layout ofqueues.HealthStatus,CheckOutcome,CheckResultandHealthReport: the status of a check — up, degraded or down —, its summary on one line of 200 characters, its duration, and a round of checks as healthy as its worst.HealthCheck, taggedphil_monitoring.health_checkby autoconfiguration, andHealthChecker, which runs the checks in order, times them on the clock, and counts a check that throws as down, naming only the class of its exception.- The checks of the configuration:
DatabaseCheckfor DBAL connections,CachePoolCheckfor PSR-6 pools, Valkey or Redis among them,MessengerTransportCheckwith a threshold of messages,FilesystemCheckwith a threshold of free space,FlysystemCheckfor storages, through a probe file of its own deleted whatever happens, andHeartbeatsCheck, degraded while a task is late. HealthControllerand the routes ofconfig/routes/health.php: liveness without a check, readiness answering503when a check is down, and the detailed view for the bearer of the token,404without one; JSON, never cached.- The maintenance mode:
MaintenanceState,MaintenanceStore,FileMaintenanceStorefor a flag file — an empty file counting —,CacheMaintenanceStorefor a key of a pool,Maintenance, andMaintenanceListener, which answers503withRetry-Afterin JSON, from the template@PhilMonitoring/maintenance.html.twigor in plain text, but to the allowed routes, addresses, networks and roles; the health endpoints are always served. - The heartbeats:
ExpectedTask,HeartbeatState,HeartbeatStatus,HeartbeatStore,CacheHeartbeatStore, andHeartbeats, which records the beats of declared tasks only;HeartbeatStatus::lateSince(), the moment a late task was due. HeartbeatTaskandHeartbeatOnScheduledRun: a message of Symfony Scheduler beats its task once its handler returned.DeadManSwitch,WatchHeartbeatsandWatchHeartbeatsHandler: a task late is alerted once through Symfony Notifier, to the admin recipients when the notifier has them, until it beats again; an alert that cannot be sent is logged and tried again. Each task is alerted under a lock of Symfony Lock, from theLockFactoryofheartbeats.lock, held a bounded time and released once the round is done: two workers or two servers never alert the same lateness twice.Queues,QueueSummary,FailedMessage,QueuesController, the routes ofconfig/routes/queues.phpand the template@PhilMonitoring/queues.html.twig: the messages of each transport, the failed messages of each failure transport without their content nor the text of their errors, and their retry or removal, posted with a CSRF token, for one role.MonitoringPass: the transports of the queues read from the receivers of Messenger, the queues removed without a bus, and their page without Twig, the router, the authorization checker or the CSRF token manager.- The commands
phil:monitoring:health,phil:monitoring:heartbeat,phil:monitoring:watchandphil:monitoring:maintenance. MonitoringStatusandMonitoring: the read model of the checks, the tasks and the maintenance, for another bundle to show.- The documentation in
doc/, one file per topic, indexed by the README. CONTRIBUTING.md,SECURITY.mdandCODE_OF_CONDUCT.md.