Monitoring

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 expose les points faibles de l'application. Les métriques permettent d'effectuer des optimisations pour améliorer 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 être averti lorsque le pourcentage de requêtes ayant échoué augmente de plus de x% des niveaux normaux. Les outils de surveillance peuvent vous aider à identifier les performances normales ainsi que les pics inhabituels dans la latence, les quantités d'erreur et d'autres métriques clés. La possibilité de surveiller ces métriques est particulièrement importante pendant les périodes critiques pour l'entreprise ou après la mise en production d'un nouveau code.

Identifier les métriques de latence

Veillez à maintenir votre interface utilisateur aussi réactive que possible, en notant que les utilisateurs s'attendent à des normes encore plus strictes de la part des 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 sur 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
  • Taille des données transférées par seconde
  • Nombre d'opérations d'E/S par seconde
  • L'utilisation des ressources, telles que l'utilisation du processeur ou de la mémoire
  • Taille du traitement en attente (par exemple, Pub/Sub ou nombre de threads)

Au-delà de la moyenne

Une erreur courante lors de la mesure des performances consiste à ne regarder que le cas moyen. Bien que cela soit utile, il ne fournit pas d'informations sur la répartition de la latence. Il est préférable de suivre les centiles de performances (par exemple, les 50e/75e/90e/99e centiles pour une métrique).

En général, l'optimisation s'effectue en deux étapes. Tout d'abord, optimisez la latence au 90e centile. Examinez ensuite le 99e centile, également appelé "latence de la traîne", c'est-à-dire la petite partie des requêtes dont le traitement 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 privilégié pour suivre les 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 dues aux problèmes de connectivité.

Surveillance du navigateur pour une visibilité de bout en bout

Le profilage du navigateur peut fournir des insights supplémentaires sur l'expérience utilisateur. Il peut indiquer les pages dont les requêtes sont lentes, que vous pouvez ensuite corréler à la surveillance côté serveur pour une analyse plus approfondie.

Google Analytics fournit une surveillance prête à l'emploi du temps de chargement des pages dans le rapport "Temps de chargement des pages". Il fournit plusieurs vues utiles pour comprendre l'expérience utilisateur sur votre site, en particulier:

  • Temps de chargement des pages
  • Temps de chargement des redirections
  • 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 journalisées.

Consultez le guide de journalisation pour obtenir un exemple de journalisation dans Google Cloud Logging à partir d'un intercepteur personnalisé de la bibliothèque cliente Python. Grâce à ces données disponibles dans Google Cloud, vous pouvez créer des métriques sur les données enregistrées pour gagner en visibilité sur votre application via Google Cloud Monitoring. Suivez le guide concernant les métriques basées sur les journaux définies par l'utilisateur pour 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.

Configuration des métriques

Filtres et étiquettes dans les métriques

Dans Cloud Logging, les libellés vous permettent de regrouper vos métriques dans des catégories en fonction d'autres données des journaux. Vous pouvez configurer un libellé pour le champ method envoyé à Cloud Logging afin d'examiner la répartition du nombre d'erreurs par la méthode 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.

Tableau de bord ErrorCount

Alertes

Dans Cloud Monitoring et d'autres outils, il est possible de configurer des règles d'alerte qui spécifient quand et comment les alertes doivent être déclenchées par vos métriques. Pour obtenir des instructions sur la configuration des alertes Cloud Monitoring, consultez le guide des alertes.