L'optimisation des performances commence par l'identification des métriques clés, généralement liées à la latence et au débit. L'ajout d'une surveillance pour capturer et suivre ces métriques révèle les points faibles de l'application. Les métriques permettent d'optimiser les métriques de performances.
En outre, de nombreux outils de surveillance vous permettent de configurer des alertes pour vos métriques afin d'être averti lorsqu'un certain seuil est atteint. Par exemple, vous pouvez configurer une alerte pour vous avertir lorsque le pourcentage de requêtes ayant échoué augmente de plus de x% par rapport à la normale. Les outils de surveillance peuvent vous aider à identifier des performances normales ainsi que les pics de latence inhabituels, les quantités d'erreurs et d'autres métriques clés. La possibilité de surveiller ces métriques est particulièrement importante pendant les périodes stratégiques ou après la mise en production du nouveau code.
Identifier les métriques de latence
Assurez-vous que votre interface utilisateur est aussi réactive que possible, en gardant à l'esprit que les utilisateurs s'attendent à des normes encore plus élevées pour les applications mobiles. La latence doit également être mesurée et suivie pour les services de backend, d'autant plus qu'elle peut entraîner des problèmes de débit si elle n'est pas cochée.
Voici quelques suggestions de métriques à suivre:
- Durée de la requête
- Durée de la requête au niveau du sous-système (appels d'API, par exemple)
- Durée du job
Identifier les métriques de débit
Le débit est une mesure du nombre total de requêtes diffusées au cours d'une période donnée. Le débit peut être affecté par la latence des sous-systèmes. Vous devrez donc peut-être optimiser la latence pour améliorer le débit.
Voici quelques suggestions de métriques à suivre:
- Requêtes par seconde
- Volume de données transférées par seconde
- Nombre d'opérations d'E/S par seconde
- Utilisation des ressources, comme l'utilisation du processeur ou de la mémoire
- Taille des tâches en attente de traitement (par exemple, Pub/Sub ou nombre de threads)
Pas seulement la médiocrité
Une erreur courante lors de la mesure des performances consiste à n'examiner que le cas moyen. Bien que ce soit utile, il ne fournit pas d'informations sur la répartition de la latence. Les centiles de performances constituent une meilleure métrique à suivre (par exemple, les centiles 50e, 75e, 90e et 99e centiles d'une métrique).
L'optimisation s'effectue généralement en deux étapes. Tout d'abord, optimisez la latence au 90e centile. Ensuite, considérons le 99e centile, également appelé "latence de queue", c'est-à-dire la petite partie des requêtes dont l'exécution prend beaucoup plus de temps.
Surveillance côté serveur pour des résultats détaillés
Le profilage côté serveur est généralement préférable pour le suivi des métriques. Le côté serveur est généralement beaucoup plus facile à instrumenter, permet d'accéder à des données plus précises et est moins sujet aux perturbations liées aux problèmes de connectivité.
Surveillance des navigateurs pour une visibilité de bout en bout
Le profilage du navigateur peut fournir des insights supplémentaires sur l'expérience de l'utilisateur final. Il peut identifier les pages présentant des requêtes lentes, que vous pouvez ensuite mettre en corrélation avec la surveillance côté serveur pour une analyse plus approfondie.
Google Analytics fournit une surveillance prête à l'emploi des temps de chargement des pages dans le rapport "Temps de chargement des pages". Vous disposez ainsi de plusieurs vues utiles pour comprendre l'expérience utilisateur sur votre site, en particulier:
- Temps de chargement des pages
- Temps de chargement de la redirection
- Temps de réponse du serveur
Surveillance dans le cloud
De nombreux outils vous permettent de capturer et de surveiller les métriques de performances de votre application. Par exemple, vous pouvez utiliser Google Cloud Logging pour enregistrer les métriques de performances dans votre projet Google Cloud, puis configurer des tableaux de bord dans Google Cloud Monitoring pour surveiller et segmenter les métriques consignées.
Consultez le guide de journalisation pour obtenir un exemple de journalisation dans Google Cloud Logging à partir d'un intercepteur personnalisé dans la bibliothèque cliente Python. Lorsque ces données sont disponibles dans Google Cloud, vous pouvez créer des métriques basées sur les données enregistrées pour gagner en visibilité sur votre application via Google Cloud Monitoring. Suivez le guide pour découvrir les métriques basées sur les journaux définies par l'utilisateur afin de créer des métriques à l'aide des journaux envoyés à Google Cloud Logging.
Vous pouvez également utiliser les bibliothèques clientes Monitoring pour définir des métriques dans votre code et les envoyer directement à Monitoring, indépendamment des journaux.
Exemple de métriques basées sur les journaux
Supposons que vous souhaitiez surveiller la valeur is_fault
pour mieux comprendre les taux d'erreur dans votre application. Vous pouvez extraire la valeur is_fault
des journaux dans une nouvelle métrique de compteur, ErrorCount
.
Dans Cloud Logging, les libellés vous permettent de regrouper vos métriques dans des catégories basées sur d'autres données des journaux. Vous pouvez configurer un libellé pour le champ method
envoyé à Cloud Logging afin d'examiner comment le nombre d'erreurs est détaillé par la méthode de l'API Google Ads.
Une fois la métrique ErrorCount
et le libellé Method
configurés, vous pouvez créer un graphique dans un tableau de bord Monitoring pour surveiller les ErrorCount
, regroupés par Method
.
Alertes
Dans Cloud Monitoring et d'autres outils, vous pouvez configurer des règles d'alerte qui spécifient quand et comment vos métriques doivent déclencher des alertes. Pour obtenir des instructions sur la configuration des alertes Cloud Monitoring, suivez le guide des alertes.