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.

Complémentarité

Pyroscope Grafana Tempo

Granularité

Agrégée (vue macro)

Par requête (vue micro)

Période

Continue, sur la durée

Trace individuelle

Usage typique

Identifier les fonctions lentes, suivre les régressions

Diagnostiquer une requête précise lente

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