Le WordPress d'aujourd'hui, décodé pour les développeurs

Extensions

Sentry ou Bugsnag pour la remontée d’erreurs d’une extension WordPress

Deux services de suivi d'erreurs, un même code d'extension à instrumenter : comparaison de l'intégration, du regroupement des incidents et du coût réel à l'échelle d'un parc de sites.

Par Clément Hadrot • 21 août 2025 • 5 min de lecture • Aucun commentaire
Sentry ou Bugsnag pour la remontée d'erreurs d'une extension WordPress

Douze mille erreurs fatales remontées en un mois sur un parc de sites clients : c’est le volume qui a poussé une agence à abandonner son fichier de log maison au profit d’un service de suivi d’erreurs dédié. Le choix s’est vite réduit à deux candidats sérieux pour du PHP : Sentry et Bugsnag. Les deux savent capturer une exception PHP, l’associer à une version de code et alerter une équipe. Les différences se jouent ailleurs.

Cet article compare l’intégration technique dans une extension WordPress, la qualité du regroupement des erreurs et le modèle de coût des deux services, sur la base d’un même code instrumenté avec chacun. Il ne traite pas la solution de journalisation fichier interne, déjà couverte dans un article distinct : ici, l’hypothèse de départ est qu’on envoie les erreurs vers un service tiers.

Installer le SDK sans polluer l’extension

Les deux services distribuent un SDK PHP installable via Composer : sentry/sdk pour Sentry, bugsnag/bugsnag pour Bugsnag. Dans une extension WordPress destinée à être distribuée, charger ces dépendances brutalement expose au conflit si un autre plugin embarque une version différente du même SDK. La pratique recommandée reste de préfixer les espaces de noms avec un outil comme Strauss avant de livrer, pour les deux SDK de façon identique — ce point ne départage donc pas les deux services.

La différence apparaît à l’initialisation. Sentry attend une configuration par DSN unique :

\Sentry\init([
    'dsn' => 'https://exemplecle@o000000.ingest.sentry.io/000000',
    'environment' => wp_get_environment_type(),
    'release' => 'mon-extension@2.4.0',
]);

Bugsnag demande une clé de notifieur et une liste de types d’environnement à exclure explicitement, ce qui oblige à écrire quelques lignes de plus pour ne pas remonter les erreurs d’un environnement de développement local :

$bugsnag = Bugsnag\Client::make('cle-notifieur-ici');
$bugsnag->setReleaseStage(wp_get_environment_type());
$bugsnag->setNotifyReleaseStages(['production', 'staging']);
Bugsnag\Handler::register($bugsnag);

Regroupement des erreurs : le vrai critère

L'essentiel à retenir : Sentry regroupe mieux les erreurs PHP proches ; Bugsnag facture au volume d'événements, Sentry par utilisateur ; Les deux exigent un SDK PHP séparé du cœur WordPress

Sur un parc de sites exécutant la même extension, la même faute de frappe dans un appel à une fonction dépréciée peut générer des centaines d’occurrences par jour. Ce qui distingue vraiment les deux outils, c’est leur capacité à regrouper ces occurrences en un seul incident exploitable plutôt qu’en une liste ingérable.

CritèreSentryBugsnag
Regroupement par empreinte de pileTrès fin, tolère les variations de ligne mineuresCorrect, plus sensible aux petites variations de trace
Suivi de version (release)Intégré nativement, corrélation avec les commits Git possibleDisponible, moins poussé sur la corrélation code
AlertingRègles fines par seuil et par taux de nouveautéRègles simples par seuil de volume
Modèle tarifairePar utilisateur actif et volume d’événementsPrincipalement par volume d’événements
Support WordPress spécifiqueCommunauté active, plugin officiel légerAucun plugin officiel dédié WordPress

Le coût à l’échelle d’un parc de sites

C’est souvent là que la décision bascule. Bugsnag facture principalement au volume d’événements envoyés, ce qui convient bien à un parc de sites nombreux mais peu bavards en erreurs. Sentry facture aussi au volume, mais ajoute une dimension par nombre d’utilisateurs de l’équipe qui accède au tableau de bord — un critère qui pèse peu pour une petite agence, davantage pour un éditeur qui ouvre l’accès à plusieurs clients finaux.

Dans les deux cas, il est indispensable de filtrer les erreurs avant envoi pour ne pas payer pour du bruit : exclure les erreurs de bots connus, dédupliquer les erreurs liées à des thèmes tiers hors du périmètre de l’extension, et échantillonner si le volume dépasse le forfait souscrit.

Ce qu’aucun des deux ne fait à la place de l’extension

Ni Sentry ni Bugsnag ne remplacent une stratégie de gestion des exceptions dans le code lui-même. Un bloc try/catch qui avale silencieusement une erreur sans la relancer ni l’enrichir de contexte produira le même résultat pauvre dans les deux outils : un message générique sans indication de ce que faisait l’utilisateur au moment du plantage. Enrichir le contexte avant l’envoi, avec l’identifiant de la commande ou du formulaire en cours de traitement, reste un travail à faire manuellement dans le code, quel que soit le service choisi.

Le service de suivi d’erreurs ne rend pas un code mal instrumenté meilleur : il rend visible à quel point il l’est, ou ne l’est pas.

Notre verdict

Pour une extension déployée sur un grand nombre de sites peu verbeux en erreurs, Bugsnag reste économiquement plus prévisible. Pour une équipe qui veut corréler les incidents avec les versions de code et affiner l’alerting par taux de nouveauté plutôt que par volume brut, Sentry justifie son coût par utilisateur. Aucun des deux ne dispense d’écrire du code qui documente ses propres échecs.

Partager :

À propos de l'auteur

Clément Hadrot

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi