Pourquoi Stack Trace APM ne suffit pas pour une surveillance complète des applications Web

Il est probablement vrai de dire que si vous demandiez à un utilisateur moyen ce qui fait une grande application Web, ils dise probablement «vitesse». Mais la vitesse est probablement l’aspect le moins important d’un vaste déle temps d’éléments. Des facteurs tels que le développement d’applications et le rendu dans le programme sont probablement plus élevés sur cette liste. Et qu’est-ce qui constitue une application très performante? Et quand quelque chose tourne mal, comment le savez-vous ? Ce sont quelques-unes des questions auxquelles pilent la surveillance des traces et la surveillance synthétique des performances des applications Web. Les deux ont leurs avantages et inconvénients, mais cet article se mettra à expliquer ce qui fait un meilleur outil pour s’assurer que l’expérience de l’utilisateur est mis à l’avant-garde de la détermination de ce qui fait une grande application Web.

 

Qu’est-ce qu’une trace de pile ?

Une trace de pile est un instrument d’investigation utile. Il présente la «pile d’appels», qui sont les piles de fonctionnalités / méthodologies qui ont été appelés à l’état actuel de l’exécution du programme, au moment où un cas spécial inconnu a été rejeté par le compilateur (ou le moment où la traînée de pile a été produite physiquement).

Ceci est exceptionnellement précieux car il ne vous donne pas seulement où l’erreur s’est produite, il peut également vous donner un aperçu de la façon dont le programme s’est retrouvé à cet endroit du programme. Son but est de fournir quelles méthodes ont été appelées jusqu’au point où le programme s’est écrasé et donne un aperçu des appels de méthode que l’application a connu. Il nous aide à donner un sens à la façon dont quelque chose s’est passé comme il l’a fait, et montre une occasion de corriger l’erreur. Sans ce traçage, ces actions resteraient introuvable, et toute erreur se taireait. Par la suite, le service devient ce qu’on appelle bien en évidence une « boîte noire ».

 

Qu’est-ce qu’une exception?

Une exception est la chose que l’état de temps d’exécution utilise pour nous informer qu’une erreur a été rencontrée. Les modèles bien connus sont NullPointerException, IndexOutOfBoundsException, ou ArithmeticException. Chacun d’eux sont causés lorsque vous essayez d’accomplir quelque chose qui est littéralement inimaginable (par l’ordinateur qui est). Par exemple, un NullPointerException sera rejeté une fois que vous tenterez de faire référence à un article invalide

 

Exception

 

L’image ci-dessus représente une trace de pile. Nous commençons vers le début de la descente de »à …«, nous pouvons dire où l’erreur s’est produite. Ce que nous essayons de découvrir est la première rencontre d’un appel de méthode, qui pourrait être un morceau de notre application ou une partie des modules sont utilisés dans l’application. Pour cette situation, le délinquant est «à com.example.myproject.Book.getTitle (Livre.java:16).« Nous pouvons donc ouvrir le Réservez.java et jetez un oeil à la ligne 16. Il s’agit d’un cas de base de ce qui se passe lorsque nous retraçons une pile.

De même, elle peut également être provoquée par une chaîne d’exemptions comme les suivantes :

 

Exemptions

 

Le coupable dans ce cas est l’endroit où il commence à «Causé par: java.lang. NullPointerException sur com.example.myproject. Book.getId (Livre.java:22) à com.example.myproject. Auteur.getBookIds (Auteur.java:36)»

Ce qui est distinctif à propos de celui-ci est le « Causé par » clause. De temps en temps, les exemptions auront diverses «causées par» des zones. Dans certains cas, vous devez rechercher le «pilote sous-jacent», qui peut être l’un des nombreux segments de ce genre à l’intérieur du backtrack.

 

Comment le code tiers influence stack backtrack

Les applications actuelles ont souvent de nombreuses couches d’appel de fonction déclenchées de façon croisée (c.-à-d. une fonction appelant d’autres personnes ou, dans certains cas, elle-même). Pour rendre les choses de plus en plus confuses, nous avons régulièrement de nombreuses couches de code de programmation qui s’ajoutent à la pile d’appels. Le code de nos bibliothèques d’exécution ou importées peut réduire la pureté de notre pile d’appels, rendant difficile la perutilisation ou le démêler tout en fixant des exceptions. Maintenant, vous pourriez penser, «Qu’est-ce que ce bloc de sortie faire pour m’aider à identifier les bugs?»

 

Comment les piles d’appels et les traces aident à l’exécution

Jusqu’à présent, nous avons surtout parlé de mésaventures de code, pas de l’exécution. Au moment où un bogue apparaît, nous devons isoler les conditions englobant son apparence et les rejouer pour reproduire le bogue. Et dans le cas de la performance, nous avons besoin d’une approche pour accomplir les techniques mentionnées ci-dessus aussi. Nous devons simuler les conditions-cadres actuelles, réexaminer nos circonstances actuelles, apporter les changements nécessaires et rejouer les aperçus des conditions-cadres actuelles pour analyser les résultats.

L’accordage d’exécution commence par la découverte, l’estimation et la mise à niveau pour atténuer d’abord les plus grands goulots d’étranglement. En tant que producteurs de tout module de réglage des performances, nous devons connaître cette procédure de mesure, de mise à jour et d’optimisation trop bonne. C’est le moment où les piles d’appels peuvent nous aider à examiner ce processus. Pour recueillir l’information, nous utilisons essentiellement le profilage général comme pratique. Au moment où le profil se produit, il faut des représentations occasionnelles de l’état actuel de la pile d’appels. Au moment où nous avons notre instantané de l’information, nous sommes prêts à voir les blocs de code qui s’affichent encore et encore, et de cette façon un retracement peut poser une possibilité d’amélioration des performances. Mais pour être tout à fait sûr, nous aurons à comprendre notre procédure pour prendre ces mesures cadre système. Cependant, il y a un problème ici. Le traçage des piles a ses propres limites. Une application de pointe implique de nombreux calculs, et donc, de nombreuses piles d’appels. Alors, comment allons-nous raisonnablement filtrer à travers et comprendre les montagnes d’informations?

 

Limites de traçage de la pile

De temps en temps, vous ne pouvez pas vous assurer que vous n’obtenez pas d’erreur. Par exemple, au hasard que vous 199ez utiliser une application web dans votre programme, vous ne pouvez pas empêcher le PC de perdre son association Web (par exemple, vous ne pouvez pas empêcher le client de désengager le réseau système du PC). Ce qui se passe maintenant, c’est que la bibliothèque du système nous offre une exemption. Dans un monde parfait, c’est à ce moment-là que les ingénieurs «attrapent» le cas spécial et le gèrent. Cela implique que dans le modèle avec l’association réseau, vous devez tenter de relancer l’association ou d’informer le client. L’ingénieur doit se rappeler, tout en obtenant l’exemption, qu’il a saisi le cas qu’il s’attendait à obtenir, de sorte qu’il ne devrait pas utiliser des proclamations de grande envergure comme «Exception e» qui permettrait d’obtenir toutes les exemptions. Cela s’avère être un facteur pivot dans le retracage de la pile. Il n’attrape pas les cas spéciaux qui ont dû être traités d’une certaine manière, mais ont été pris en charge d’une manière totalement différente.

Les outils de traçage de pile ne sont pas les moindres bits infaillibles en termes de surveillance des applications. Le contenu est difficile à compiler, difficile à comprendre et à décomposer, et sujettes à des erreurs exhaustives.

 

Surveillance synthétique

Contrairement aux outils de traçabilité de pile, la surveillance synthétique fonctionne en créant des échanges/transactions d’utilisateurs simulés vers votre application qui usurpe l’identité d’un utilisateur ou d’un client moyen à travers votre application. Il peut être appliqué à l’intérieur du pare-feu, à l’intérieur de l’espace serveur pour garantir que toutes les machines sont en cours d’exécution de manière appropriée, ou en dehors du pare-feu pour donner des données sur l’accessibilité et l’exécution d’un point de vue mondial. Ces appels serveur et le contenu de test deviennent des «instruments» de surveillance en s’exécutant à des fréquences prédéfinis, comme toutes les 5 minutes ou toutes les 3 heures.

Ce type de surveillance peut être fondamental pour votre entreprise car il vous permet de distinguer les problèmes et d’examiner si votre site ou applications ont besoin d’être peaufinés avant que les clients finaux soient vraiment touchés. Étant donné que ce type de vérification ne dépend pas du trafic Web réel, une application web ou une page peut être surveillée à tout moment, de n’importe où, et les agents de surveillance peuvent être mis en place avant que les applications entrent en production. C’est pourquoi beaucoup de développeurs se penchent vers la surveillance synthétique, car il donne une visibilité 24/7 et fournit l’effet de levier à l’organisation pour corriger les erreurs avant que les clients tombent sur elle.

 

Avez-vous besoin d’une surveillance synthétique?

La réponse la moins complexe à cette question est que vous avez besoin d’aide pour garantir que votre application ou site est prêt à passer à l’action. Mais sur une note beaucoup plus technique, la véritable réponse à cette enquête va beaucoup plus loin que cela. Un agent de surveillance de la qualité ne se contente pas de ping sur votre site pour s’assurer qu’il est disponible. Les administrations de qualité vérifieront les enregistrements-cadres des noms de zone, la vitesse de transfert, la base de données, ainsi que la disponibilité du système, la charge du Processeur, le stockage du lecteur, les événements, la RAM et d’autres facteurs de base. Bien que le temps de disponibilité et le temps de réaction soient incontestablement des choses importantes à quantifier, la fiabilité et la cohérence de votre application ou page sont en outre vitales et des mesures et doivent être mis en place pour dépister ces choses.

En outre, il suffit de vérifier l’accessibilité et la disponibilité de vos API et applications à partir de votre pare-feu n’est pas suffisant lorsque vous cherchez à fournir une expérience de premier ordre. Les utilisateurs peuvent accéder à vos applications de n’importe où dans le monde, à partir de différents appareils, navigateurs et réseaux. La surveillance synthétique vous permet d’imiter ces procédures commerciales ou les échanges de clients, par exemple, de vous connecter, de chercher des articles, de remplir des formulaires ou des sondages, d’ajouter des choses aux paniers d’achat, de signer des processus, etc., de divers endroits à travers le monde, et d’examiner leur rendement. Vous seriez alors en mesure d’analyser les détails d’exécution entre les emplacements géographiques et les étapes des échanges et commencer à définir vos plans d’amélioration.

 

Trace de pile et surveillance synthétique : Conclusion

La surveillance synthétique adopte une approche proactive externe pour aider à découvrir les problèmes avant vos clients. Dans le cas où les procédures correctes sont utilisées, la surveillance synthétique peut vous donner le même point de vue de vos utilisateurs finaux et clients, sans parler de la façon dont ils fonctionnent – et si les clients seront satisfaits de l’expérience. Ce n’est pas le cas avec le traçage de pile. Il s’agit sans aucun doute d’un protocole d’analyse très fiable et compétent, mais il ne peut retracer les étapes d’un événement raté que de la manière précédente. Cela nous amène à une compréhension très ferme que le traçage des piles, combiné avec la surveillance synthétique, peut aider à lier ensemble l’ensemble de la pile et de fournir une solution puissante de surveillance des performances. Essayez la plate-forme Dotcom-Monitor gratuite pendant 30 jours.

 

Latest Web Performance Articles​

Top 25 des outils de surveillance des serveurs

Dans cet article, nous donnons à nos experts des 25 meilleurs outils de surveillance des serveurs pour vous aider à surveiller la disponibilité de votre site Web et offrir à vos utilisateurs la meilleure expérience, en commençant par notre propre solution chez Dotcom-Monitor. Découvrez pourquoi la surveillance des serveurs est un élément essentiel de toute stratégie de surveillance.

Top 20 des outils de surveillance synthétique

La surveillance synthétique permet aux équipes de surveiller et de mesurer les performances des sites Web et des applications Web en permanence à partir de tous les points de vue imaginables, et de recevoir des alertes avant que les problèmes ne commencent à avoir un impact sur les utilisateurs réels. Voici nos meilleurs choix pour les outils de surveillance synthétique, en tête avec les nôtres chez Dotcom-Monitor.

Start Dotcom-Monitor for free today​

No Credit Card Required