Profiling PHP
Waays peut activer le profiling continu dans vos déploiements PHP sur Kers. Cela vous donne une visibilité précise sur ce qui consomme du temps dans votre application — sans modifier votre code, sans impact notable sur les performances, directement accessible depuis votre interface Grafana.
Deux outils complémentaires
Le profiling PHP dans Kers repose sur deux outils open-source, intégrés ensemble :
Pyroscope — vue d’ensemble continue
Pyroscope est un outil de profiling continu agrégé. Il collecte des données en permanence et permet de répondre à des questions comme :
-
Quelle fonction PHP consomme le plus de CPU sur les dernières 24 heures ?
-
Y a-t-il eu une régression de performance depuis le dernier déploiement ?
-
Quels chemins de code sont les plus sollicités en production ?
L’interface principale est un flamegraph : une représentation visuelle de la pile d’appels de votre application, pondérée par le temps CPU consommé.
Grafana Tempo — tracing par requête
Grafana Tempo est un outil de tracing distribué. Contrairement à Pyroscope qui agrège sur une période, Tempo permet d’analyser une requête précise en détail :
-
Combien de temps a pris chaque étape de la requête ?
-
Quelle fonction ou quelle requête SQL a causé une lenteur ?
-
Y a-t-il des appels redondants ou des goulots d’étranglement ?
Tempo est directement accessible depuis Grafana, via l’explorateur de traces.
Intégration dans Kers
Extension PHP à faible impact
La collecte des données repose sur Excimer, une extension PHP développée par la Fondation Wikimedia pour les besoins de Wikipedia.
Contrairement aux profilers classiques (xhprof, Xdebug), Excimer fonctionne par échantillonnage statistique : il observe l’exécution de PHP à intervalles réguliers plutôt que d’instrumenter chaque appel de fonction. L’impact sur les performances est ainsi extrêmement faible, compatible avec une activation en production.
Intégration dans votre déploiement
Un sidecar dédié est ajouté à votre déploiement PHP : il récupère les traces collectées par Excimer et les envoie vers Pyroscope et Grafana Tempo. Votre application PHP n’est pas modifiée.
Les données remontent directement dans votre espace Grafana existant dans Kers, via deux datasources pré-configurées : Pyroscope et Tempo.
Activation
Le profiling PHP est une option sur demande. Contactez l’équipe Waays pour l’activer sur votre déploiement.
| Étape | Détail |
|---|---|
Demande |
Contactez Waays (contact@waays.fr ou https://kers.sh) |
Activation |
Waays ajoute le sidecar de profiling à votre déploiement PHP |
Accès |
Vous accédez aux données depuis votre Grafana existant (datasources Pyroscope + Tempo) |
| Aucune modification de votre code applicatif n’est requise. |
Cas d’usage typiques
-
Diagnostiquer une lenteur signalée par un utilisateur sur une page précise
-
Identifier un bottleneck avant une montée en charge prévue
-
Valider une optimisation en comparant les flamegraphs avant/après déploiement
-
Surveiller la dérive progressive des performances au fil des livraisons