Image de couverture : Monitoring PHP/Symfony : arrêtez de payer Datadog 50 000 €/an pour trois dashboards
tech

Monitoring PHP/Symfony : arrêtez de payer Datadog 50 000 €/an pour trois dashboards

25 May 2026
6 min de lecture
5 vues
Sébastien Muler

Monitoring PHP/Symfony : arrêtez de payer Datadog 50 000 €/an pour trois dashboards

Un CFO pose une question simple à son équipe technique : « Qu'est-ce qu'on utilise vraiment dans Datadog ? » La réponse : trois dashboards et deux alertes. La facture : 57 000 dollars par an. Cette anecdote, rapportée par Gabriel Anhaia sur dev.to, n'est pas un cas isolé — c'est la réalité de dizaines de PME qui ont adopté des outils enterprise sans en avoir ni le besoin ni l'usage.

Dans l'écosystème Symfony/PHP, la situation est identique. Cet article explore comment reprendre le contrôle de votre observabilité sans exploser votre budget, en vous inspirant de l'approche native proposée par Laravel Pulse — et en tirant les enseignements applicables à tout projet PHP sérieux.


Le piège des outils de monitoring enterprise

Datadog, New Relic, Dynatrace : ces plateformes sont excellentes. Elles sont aussi dimensionnées pour des équipes de 200 ingénieurs qui gèrent des architectures distribuées sur trois continents.

Pour une TPE ou une PME qui opère 2 à 10 serveurs, les besoins réels sont en général bien plus modestes :

  • Requêtes SQL lentes : quelles requêtes dégradent les performances ?
  • Endpoints HTTP lents : quelles routes répondent trop tard ?
  • Profondeur des queues : les jobs s'accumulent-ils ?
  • Taux d'exceptions : y a-t-il une régression en production ?
  • Alertes basiques : spike de 5xx, queue bloquée.

Ces cinq besoins ne justifient pas un abonnement à cinq chiffres annuels. Et dans bien des cas, votre framework web peut y répondre nativement — gratuitement.


Ce que Laravel Pulse démontre (et ce qu'on peut en apprendre)

Laravel Pulse (disponible sur Laravel 11+) s'installe en deux commandes :

composer require laravel/pulse
php artisan pulse:install

Vous obtenez immédiatement un dashboard /pulse avec :

  • Slow queries : toutes les requêtes dépassant le seuil configuré (1s par défaut), groupées par pattern SQL avec les bindings et l'action source.
  • Slow requests : endpoints HTTP lents, avec route, nombre d'occurrences, temps moyen et maximum.
  • Slow jobs : même logique pour les jobs en queue.
  • Exceptions : classe d'exception, fichier, compteur, dernière occurrence.
  • Queue depth : profondeur des files d'attente par connexion et par queue.
  • Cache hits/misses : ratio de performance du cache.
  • Server metrics : CPU, mémoire, stockage par serveur.

Tout cela, sans agent externe, sans carte bancaire, sans vendor lock-in.

💡 Ce que cela démontre : un framework mature peut embarquer 80% de l'observabilité dont une PME a besoin. La question n'est pas « quel outil SaaS acheter », mais « qu'est-ce que mon stack peut déjà faire ».


Transposer cette philosophie à Symfony

Symfony ne propose pas de dashboard clé en main équivalent à Pulse, mais l'écosystème offre des briques solides pour construire une observabilité maîtrisée.

1. Le Profiler Symfony et Blackfire

En développement et staging, le Symfony Profiler est un outil de diagnostic puissant : timeline des requêtes, requêtes Doctrine, appels HTTP sortants, événements. C'est votre premier niveau d'analyse, gratuit et intégré.

Pour la production, Blackfire (racheté par Symfony) propose un modèle freemium couvrant le profiling continu. Le plan gratuit suffit souvent pour identifier les régressions de performance avant qu'elles n'impactent les utilisateurs.

2. Logs structurés avec Monolog

Monolog, intégré nativement à Symfony, permet d'émettre des logs structurés en JSON vers n'importe quelle destination : fichier local, Elasticsearch, Loki (stack Grafana open source). Couplé à Grafana + Loki, vous obtenez une interface de consultation des logs comparable à Datadog Logs — pour le coût d'une instance EC2 ou d'un VPS.

# config/packages/monolog.yaml
monolog:
    handlers:
        main:
            type: stream
            path: "%kernel.logs_dir%/%kernel.environment%.log"
            formatter: Monolog\Formatter\JsonFormatter

3. Métriques applicatives avec Prometheus

La librairie promphp/prometheus_client_php ou le bundle artprima/prometheus-exporter-bundle permettent d'exposer des métriques au format Prometheus depuis votre application Symfony. Prometheus + Grafana constitue une stack de monitoring robuste, open source, auto-hébergeable.

Exemple de métriques à instrumenter :

  • Nombre de requêtes HTTP par route et code de statut
  • Durée d'exécution des Messenger handlers
  • Profondeur des transports Messenger
  • Taux d'erreurs Doctrine

4. Alerting avec Grafana ou des webhooks simples

L'alerting Datadog peut être remplacé par les alertes natives Grafana (sur vos métriques Prometheus) ou par des webhooks Symfony déclenchés depuis vos listeners d'événements. Un simple HttpClient POST vers un canal Slack ou une intégration PagerDuty couvre 90% des cas d'usage réels.


Évaluation honnête : ce que vous perdrez (et ce que ça coûte vraiment)

Soyons directs : Datadog a des fonctionnalités irremplaçables pour certains contextes.

Fonctionnalité Solution native/open source Effort
Slow queries Profiler Doctrine / logs Faible
APM basique Blackfire / OpenTelemetry Moyen
Logs centralisés Loki + Grafana Moyen
Métriques infra Prometheus + Node Exporter Moyen
Distributed tracing OpenTelemetry + Jaeger Élevé
Alerting Grafana Alerts Faible
Corrélation logs/traces Stack complète OpenTelemetry Élevé

Pour une PME avec une architecture monolithique ou semi-monolithique, les lignes « Élevé » sont rarement nécessaires. Pour une architecture microservices distribuée, Datadog se justifie davantage — mais c'est précisément là que le coût devient proportionnel à la valeur.


Conclusion : choisir ses outils au bon niveau de maturité

Le message de l'article de Gabriel Anhaia sur dev.to mérite d'être entendu au-delà de l'écosystème Laravel : les frameworks modernes embarquent de l'observabilité. Avant de signer un contrat annuel avec un vendor, posez-vous la question : qu'est-ce que mon stack peut déjà faire ?

Pour les projets Symfony/PHP que nous accompagnons chez MulerTech, notre recommandation est progressive :

  1. Commencez avec le Profiler Symfony et des logs structurés vers un fichier ou Loki.
  2. Ajoutez Prometheus + Grafana quand vous avez besoin de métriques persistantes.
  3. Investissez dans Blackfire ou OpenTelemetry si les performances deviennent un sujet critique.
  4. Évaluez un outil enterprise uniquement si vos besoins dépassent ce que l'open source couvre.

Économiser 40 000 €/an n'est pas un objectif technique — c'est une décision stratégique. Et elle commence par comprendre ce que vous avez déjà.


Source originale : Laravel Pulse Is Free Datadog. Here's How to Make It Replace Yours. par Gabriel Anhaia sur dev.to.

Partager cet article