Avec la popularité de l'architecture micro-services, divisions de services sur différentes dimensions, une demande ont souvent besoin d'impliquer plusieurs services. applications Internet construites sur un autre ensemble de modules logiciels, des modules logiciels, il peut être mis au point par des équipes différentes, peuvent être mises en uvre en utilisant différents langages de programmation, il est possible tissu en milliers de serveurs à travers plusieurs données différentes centre. Nous avons donc besoin d'une aide à comprendre le comportement du système, des outils d'analyse des problèmes de performance, de sorte que le cas d'échec de localiser rapidement et de résoudre les problèmes.
composante de surveillance de lien complet se pose dans ce contexte du problème. Le plus célèbre est des documents publics Google Dapper Google mentionnés. Vous voulez comprendre le comportement des systèmes distribués dans ce contexte, il est nécessaire de surveiller les applications à travers différentes actions associées entre différents serveurs.
Par conséquent, l'architecture micro-services dans les systèmes complexes, presque toutes les demandes de fin avant sont distribués pour former un lien d'appel de service complexe. Vous pouvez demander une chaîne d'appel complet comme indiqué ci-dessous:
Ainsi, dans l'échelle de l'entreprise augmente, et le nombre croissant de services et de fréquents changements de circonstances, face à un lien d'appel complexe apportera une série de questions:
- Comment trouver rapidement le problème?
- Comment déterminer la portée de l'échec?
- Comment trier le service et le caractère raisonnable de la confiance dépend?
- Comment analyser le lien en temps réel les problèmes de performance et de la planification des capacités?
En même temps, nous sommes préoccupés par les indicateurs de performance au cours du traitement des demandes de chaque appel, comme: Throughput (TPS), le temps de réponse et la journalisation des erreurs.
- Certains topologie calculée composant correspondant, la plate-forme, le dispositif physique en fonction du débit en temps réel.
- Temps de réponse, temps de réponse, y compris le temps de réponse global de chaque appel et de service et ainsi de suite.
- enregistrement d'Erreurs, le rendement par unité de temps en fonction des temps d'exception de services statistiques.
performance lien complet affichage surveillance de la dimension à la dimension locale des indicateurs sera appliquée sur toutes les informations la performance chaîne d'appel expression concentrée, peut facilement mesurer la performance globale et locale, et facile à trouver la source du défaut produit, peut production considérablement raccourcir le temps de dépannage.
Avec l'outil de suivi complet de lien, nous avons pu réaliser:
- Demande de suivi des liens, la localisation rapide des défauts: Vous pouvez localiser rapidement les informations du journal d'erreur en appelant la chaîne de regroupement d'entreprises.
- Visualisation: les différentes étapes du temps et de l'analyse des performances.
- Optimisation dépendante: la disponibilité des différents aspects de l'appel, le cardage et l'optimisation des dépendances de service.
- L'analyse des données, optimiser le lien: l'utilisateur peut obtenir le chemin de comportement, analyse groupée utilisés dans de nombreux scénarios d'entreprise.
Comme mentionné ci-dessus, nous sélectionnons la composante surveillance lien complet qui cible l'exigent? Google Dapper a également mentionné, sont résumés comme suit:
1. Sonde de consommation de performance
APM affectent les composants du service devraient faire assez peu. appel de service Buried lui-même apportera une perte de performance, qui ont besoin d'appeler le traçage à faible perte, mais aussi par la configuration réelle du mode de fréquence d'échantillonnage, sélectionnez la partie de la demande d'analyser le chemin de la requête. Dans un service hautement optimisé, même un peu de perte sera très facile à détecter, et peut forcer l'équipe de déploiement du système de suivi des services en ligne a dû fermer.
2. Code invasif
Qui est aussi un volet commercial, il devrait être peu ou pas d'intrusion d'intrusion que d'autres systèmes d'entreprise pour la transparence des consommateurs, réduire le fardeau des développeurs.
Pour les programmeurs ne demande pas besoin de savoir qu'il ya une telle chose comme un système de suivi. Si vous voulez un système de suivi prenne effet, il est nécessaire de compter sur les développeurs d'applications prendre l'initiative de coopérer, le système de suivi est trop fragile, souvent en raison du système de suivi de négligence ou d'un bogue utilisé dans les implants causent les problèmes de code d'application, ce n'est pas ce système de suivi pour répondre à la demande de « déploiement omniprésent ».
3. Evolutivité
Un système de suivi bon appel doit prendre en charge le déploiement distribué, une bonne évolutivité. Plus le meilleur cours aux composants de soutien. Ou fournir plug-in API de développement pratique, pour certains il n'y a pas de suivi des composants, les développeurs d'applications peuvent également développer leurs propres moyens.
4. Analyse des données
Analyser les données plus rapide, analyse dimensionnelle, autant que possible. Système de suivi peut fournir des informations de retour assez rapide, vous pouvez faire une réponse rapide à une situation anormale dans un environnement de production. Une analyse complète, afin d'éviter le développement secondaire.
plein système général de contrôle des liens, peut être divisé en quatre blocs fonctionnels:
Et générer journal 1. Buried
Enterré dans le cadre du système d'information qui est le nud actuel, il peut être divisé en points enterré client, enterré points d'extrémité de service, ainsi que le point bi-enterré client et le serveur. Buried journal de temps de démarrage contient généralement le traceId suivant, spanId, appel, type de protocole, ip de l'appelant et le port, les demandes de nom de service, appelez le temps, le résultat de l'appel, des informations d'exception, etc., et peut être réservé pour le champ étendu pour l'étape suivante pour se préparer à l'expansion;
- Non Cause frais généraux de performance: une valeur n'a pas été vérifiée, mais elle aura une incidence sur la performance des choses, il est difficile de promouvoir l'entreprise!
- Parce que le journal d'écriture, d'affaires QPS plus, l'impact des performances plus sévères. Résolus par échantillonnage et le journal asynchrone.
2. collecte et enregistre les journaux
Le support principal distribué programme de collecte de journal, tout en augmentant MQ comme une mémoire tampon;
- Il y a un deamon journal pour faire de recueillir sur chaque machine, entreprise traite sa propre trace envoyé au démon, démon d'envoyer une collection Trace;
- collecteur multicellulaires pub similaire / sous architecture, équilibrage de charge;
- L'analyse en temps réel des données agrégées et le stockage hors ligne;
- analyse hors-ligne doit être agrégées ensemble pour connecter une chaîne d'appel du même;
3. Analyse statistique et lien appel de données, et l'actualité
Suivi analyse de la chaîne d'appel: le même TraceID de Span, triées par temps est la ligne de temps. ParentID consiste à enchaîner la pile d'appel.
Jeter une exception ou un délai d'attente, impression TraceID dans le journal. requête TraceID en utilisant la chaîne d'appel, le problème de positionnement.
mesure dépendante:
- La forte dépendance: un appel direct n'a pas réussi à interrompre le flux principal
- dépendant fortement: un lien pour appeler une forte probabilité d'une personne à charge
- Souvent, il repose sur: un lien avec un appel à compter le plus souvent
Analyse hors ligne: résumé de TraceID, par Span ID et appel ParentID restaurer les relations, sous forme d'analyse des liens.
Analyse en temps réel: analyse directe d'un journal unique, pas un résumé, la restructuration. Obtenez le QPS actuel, retard.
4. spectacle et aide à la décision
3.1 Span
L'unité de base de travail, un appel de liaison (qui peut être pas RPC, DB restriction particulière comme) pour créer une période, il est identifié par un ID 64 bits, uuid plus pratique, il existe d'autres données de portée telles que les informations de description, l'horodatage , l'information d'étiquette (Annotation) de paires de valeurs de clé, l'parent_id analogue, dans lequel la durée peut représenter un identifiant de source de liaison parent d'appel.
La figure illustre la portée est en quelque sorte dans un grand processus de suivi. Les noms de portée enregistré dapper, et chaque ID de portée et l'ID de parent, de reconstruire la relation entre la durée différente au cours d'une piste. Si la durée est pas un ID parent est appelé durée de racine. Tous durée sont accrochés sur une piste particulière, partager aussi un identifiant de suivi.
Structure de données Span :
Span de type struct { TraceID int64 // utilisé pour identifier un identifiant de demande complète chaîne nom ID int64 // L'appel en cours span_id ParentID // int64 appel haut span_id du service parent_id de service supérieur est nul Annotation Annotation // pour le timbre marquage bool débogage }3,2 Trace
SIMILAR Span ensemble structure d'arbre Représentant une piste complète, commence par une requête au serveur, le serveur renvoie une fin de la réponse, du temps piste appel rpc à chaque fois il y a un trace_id d'identification unique. Par exemple: un grand stockage de données distribuées, vous exécutez une trace sur votre première demande de la composition.
Chaque note de couleur une durée marquée, un lien est identifié de manière unique par TraceId informations de requête identifiant Span initiée. Le noeud de l'arbre est l'unité de base de la structure entière, et chaque noeud est à son tour une référence à la durée . durée représente la connexion entre le noeud et sa durée parent une relation directe. Alors que la durée dans le fichier journal représente tout simplement le début et la durée de l'heure de fin, leur structure d'arbre entier est relativement indépendante.
3.3 Annotation
Annotation, la demande d'enregistrement d'une information liée à la manifestation particulière (par exemple le temps), il y aura une pluralité de durée d'annotation décrit annotations . composent habituellement de quatre notes des informations:
(1) cs : Démarrer client, représente client envoie une demande (2) sr : Recevoir le serveur, représente le serveur reçoit la demande (3) ss : Serveur Envoyer, représente le serveur de traitement de finition, et envoie les résultats au client (4) cr : Reçu client, représenter le client au serveur pour obtenir des informations de retourstructure de données d'annotation :
Type struct {Annotation timestamp int64 valeur chaîne Point final hôte durée int32 }3.4 Exemple d'appels
1. La demande d'appel exemplaire
2. Processus de suivi des appels
Appelez le suivi de l'ensemble du processus:
- Demande arrive générer une TraceID globale, à travers toute la série de TraceID peut appeler la chaîne, un TraceID au nom d'une demande.
- En plus de TraceID, mais aussi vous devez les relations entre parents et enfants des appels record. Chaque service enregistre id parent et span id, ils peuvent organiser les relations parent-enfant par une chaîne complète d'appel.
- Sans un ID parent de la durée pour devenir durée de la racine, on peut voir que l'entrée de la chaîne d'appel.
- Tous ces éléments sont disponibles ID unique au monde entier de 64 bits;
- Le processus d'appel entier chaque demande doit passer par TraceID et SpanID.
- Les temps pour chaque demande de service et d'accompagnement TraceID accompagnant SpanID comme record id parent, et l'SpanID auto-généré également enregistré.
- Pour afficher un temps d'appel complet pour détecter des appels tant que dossiers selon TraceID, l'appel entier de la relation parent-enfant par ID parent et organisation span id.
5. Agent de déploiement non invasive
AGENT MANDATAIRE par le déploiement non-invasive, la mesure du rendement et la séparation complète de la logique de service, toute méthode permet de mesurer le temps d'exécution de toute classe, de cette façon augmente considérablement l'efficacité de la collecte et de réduire les coûts opérationnels. Selon la durée de service divisé en deux catégories AGENT :
La plupart de suivi complet-Link modèles théoriques sur le marché sont Google Dapper tirage sur papier, ce document se concentre sur les trois éléments suivants APM:
- Zipkin: par Twitter Open Company Source, distribué système de suivi open source pour les services de collecte régulière de données, afin de résoudre le problème de retard microarchitecture-service, y compris: la collecte de données, le stockage, la recherche et du spectacle.
- Pinpoint: outil d'APM pour une grande échelle des systèmes distribués en Java, open source distribué par le composant de suivi coréen.
- Skywalking: APM composants internes en cours, il est suivi, systèmes d'alerte et d'analyse pour clusters application distribuée opération commerciale JAVA.
Ceux-ci doivent comparer les éléments extraits trois programmes de surveillance tout lien:
4,1 sonde de performance
Plus préoccupé par la performance de la sonde, après tout, le positionnement de l'outil APM ou, si un lien est établi pour permettre le suivi, un résultat direct du débit inférieur à la moitié, ce qui est inacceptable. Pour skywalking, Zipkin, la pression ponctuelle a été mesurée, et comparée à la situation de référence (sonde non utilisée).
A choisi un commun des applications à base de printemps, il comprend Spring Boot, Spring MVC, Redis client, mysql. Contrôle de l'application, chacun de la trace, la sonde 5 extractions portée (1 Tomcat, 1 SpringMVC, 2 Jedis, 1 Mysql). Voici les applications de base et de test skywalkingtest presque.
Trois simulé utilisateurs simultanés: 500,750,1000. Jmeter test d'usage, chaque fil 30 transmet des demandes de régler les 10ms de temps de réflexion. Une fréquence d'échantillonnage utilisée, à savoir 100%, et le côté de production peuvent être différents. localiser avec précision la fréquence d'échantillonnage par défaut de 20, à savoir 50%, en réglant le profil de l'agent à 100%. Zipkin défaut est 1. Ensemble, un total de 12 espèces. Le regard de tableau récapitulatif ci-dessous:
Comme on peut le voir dans le tableau, les trois modules de surveillance liaison, avec un impact minimal sur le débit sonde skywalking, centrée débit Zipkin. l'impact sur le débit Pinpoint sonde plus évidente à 500 utilisateurs simultanés, le débit est réduit de services de dépistage 1385-774, un grand impact. Et puis regardez sous l'influence de la CPU et de la mémoire, des mesures de pression effectuées dans la mémoire du serveur et de l'impact du processeur sont similaires à 10%.
Extensibilité de 4,2 collecteur
évolutivité de collecteur, ce qui permet à l'échelle horizontalement pour soutenir les clusters de serveurs à grande échelle.
4.3 Analyse complète de liaison de données d'appel
Une analyse complète de la liaison de données d'appel, en offrant une visibilité du niveau de code afin de localiser facilement le point de défaillance et les goulets d'étranglement.
4.4 pour le développement d'un transparent, facile à changer
Pour le développement de la transparence, facile de changer, ajouter de nouvelles fonctionnalités sans avoir à modifier le code, facilement activé ou désactivé. Nous attendons la fonction avant ne peut pas modifier le code du travail et que vous voulez obtenir la visibilité du niveau de code.
Pour cela, Zipkin utiliser la bibliothèque modifiée et sa propre fonction conteneur (Finagle) pour fournir le suivi des transactions distribuées. Cependant, il nécessite des modifications de code nécessaires. skywalking et sont basées sur l'amélioration bytecode Pinpoint manière, les développeurs ne ont pas besoin de modifier le code, et peut recueillir des messages de données plus précises, car il y a plus de codes d'octets.
4.5 topologie de la chaîne d'appel complète d'application
Détection automatique de la topologie de l'application, pour vous aider à déterminer l'architecture de l'application.
Les trois photos ci-dessus ont été exposées leurs composants APM de la topologie d'appel, peut atteindre une topologie de chaîne d'appel d'application complète. Relativement parlant, les écrans d'interface Pinpoint plus riche, spécifique à l'appel du nom DB, topologie Zipkin un service limité entre le service.
4.6 Pinpoint comparer et affiner Zipkin
4.6.1 Pinpoint les différences Zipkin
4.6.2 similitude avec Pinpoint Zipkin
Pinpoint et Zipkin que le papier reposent sur Google Dapper, donc les fondements théoriques de la même. Les deux sont divisés en plusieurs appels de service Span relation en cascade, la relation entre les appels en cascade dans SpanId et ParentSpanId, puis toutes dernière chaîne d'appel Span passe par une convergence de trace, rapporté au service mettre fin à collecteur pour la collecte et le stockage.
Même à ce stade, le concept adopté par Pinpoint pas tout à fait conforme à ce document. Par exemple, il utilise TransactionId pour remplacer TraceId, alors que le vrai TraceId est une structure qui contient TransactionId, SpanId et ParentSpanId. Dans ce qui suit Pinpoint et Span SpanEvent ajouté une structure utilisée pour enregistrer un appel Span des détails internes (tels que l'appel de méthode particulière, etc.), de sorte enregistrement de données par défaut Pinpoint plus de trace Zipkin.
Mais la théorie n'est pas la taille des particules limitée Span, de sorte qu'un appel de service peut être une période, puis les appels de méthode pour chaque service peut aussi être un Span, donc, en fait, Brave peut aussi être attribuée au niveau d'appel de méthode, mais la mise en uvre spécifique et Je ne le faisais pas.
4.6.3 bytecode vs appels API
Pinpoint a réalisé la sonde Java Agent à base bytecode et Zipkin le cadre Brave ne fournit que l'API niveau de l'application, mais à la réflexion, le problème est loin d'être simple. l'injection de bytecode est une solution simple et brute, en théorie, indépendamment des appels de méthode, d'interception peut être obtenue au moyen d'injection de code, qui est impossible à réaliser, ne pas atteindre. Mais Brave est différent, API niveau d'application qui fournit un cadre pour les facteurs sous-jacents ont également besoin de soutien pour réaliser l'interception.
Par exemple, le pilote JDBC MySQL, il est prévu une méthode injection intercepteur, et donc seulement besoin de mettre en uvre l'interface StatementInterceptor et configurer la chaîne de connexion, vous pouvez la mise en uvre très simple de l'interception pertinente, tandis que d'autre part, la version basse MongoDB conducteur ressort données MongoDB ou la réalisation d'une telle interface ne veulent pas réaliser la fonction aux requêtes d'interception, il est plus difficile.
Donc, à ce stade, Brave est erronée, peu importe la façon dont bytecode difficile, mais au moins il est possible de réaliser, mais il n'y a aucun moyen de démarrer le Brave possible, mais si vous pouvez injecter, dans quelle mesure peut injecter plus en fonction de l'API-cadre au lieu de leurs propres capacités.
4.6.4 difficulté et le coût
Après un simple, lire le code Pinpoint et Brave widget peut être trouvé difficile à obtenir à la fois une grande différence. Dans les deux cas l'absence de toute documentation à l'appui au développement de la prémisse, Brave facile à utiliser que Pinpoint. Brave petite quantité de code, les fonctions de base sont concentrés dans ce module courageux-core, un développeur de niveau intermédiaire, vous pouvez lire son contenu en un jour, et peut avoir une compréhension très claire de la structure de l'API.
paquet de code Pinpoint est également très bon, en particulier pour le paquet supérieur de l'API bytecode est très bon, mais il faut encore du personnel de lire bytecode combien ont une certaine compréhension, bien qu'il utilisé pour injecter du code et l'API de base pas beaucoup, mais à une compréhension approfondie de l'agent de code correspondant probablement la profondeur, comme il est difficile de comprendre un coup d'oeil la différence entre addInterceptor et addScopedInterceptor, qui est situé à environ deux méthodes de type agent.
Parce que l'injection Brave repose sur le cadre sous-jacent fournit une interface pertinente, et n'a donc pas besoin d'avoir une compréhension globale du cadre, il suffit de savoir où injecter en mesure, quelles données peuvent être acquises au moment de l'implantation sur elle. Comme dans l'exemple ci-dessus, on n'a pas besoin de connaître le pilote JDBC MySQL est comment atteindre peut faire pour intercepter les capacités SQL.
Mais PinPoint pas, parce que épinglent tout code peut être injecté en tout lieu, ce qui oblige les promoteurs à base de code inject nécessaire pour obtenir une compréhension approfondie de MySQL en regardant et réaliser Http client plug-in divin bien sûr, cela montre aussi la capacité de Pinpoint peut être très puissant en effet d'une autre dimension, et sa mise en uvre par défaut des plug-ins ont fait beaucoup d'interception à grain très fin.
En l'absence de cadre sous-jacent pour l'API ouverte, en fait, Brave ne fait pas tout à fait rien, on peut prendre le mode AOP, le cas échéant pour intercepter peut être injecté dans un code spécifique et des applications apparemment AOP beaucoup plus simple que bytecode.
Ces coûts directement liés à la réalisation d'un moniteur, dans la documentation technique officielle de Pinpoint, compte tenu des données de référence. Si l'intégration d'un système, les coûts de développement 100 est prise Pinpoint intégré dans le système, le coût de ce plug-in est 0, mais courageux, plug-ins coût de développement seulement 20, 10 et les coûts d'intégration. De ce point, on peut voir que le coût des données de référence est donnée officielle 5: 1.
Mais le fonctionnaire a également souligné que, s'il y a 10 systèmes doivent être intégrés, le coût total est de 10 * 10 + 20 = 120, il est au-delà du frais de développement Pinpoint 100, et plus la nécessité d'intégrer les services, l'écart sera.
4.6.5 polyvalence et évolutivité
De toute évidence, cela est tout à fait un désavantage sur Pinpoint, développé à partir de l'interface d'intégration communautaire peut être vu.
interface de données Pinpoint manque de documentation, mais aussi moins standard (voir le fil du forum de discussion), vous devrez peut-être lire beaucoup de code pour réaliser sa propre sonde (tel que le nud ou PHP). Et l'équipe d'envisager d'utiliser la performance Thrift que les normes de protocole de transmission de données, en termes de HTTP et JSON par rapport à beaucoup plus difficile.
4.6.6 Soutien communautaire
Il est également inutile de dire, Zipkin développé par Twitter, il peut être considéré comme une équipe d'étoiles, alors que l'équipe de Naver est juste une petite équipe inconnue (de la discussion # 1759 peut être vu). Bien que ce projet ne risque pas de disparaître ou la mise à jour d'arrêt à court terme, mais après tout, que le premier est plus à l'aise avec eux.
Et il n'y a pas plus développé plug-in communautaire, laissez l'équipe Pinpoint à ne compter que sur ses propres forces, il est difficile d'achever l'intégration de nombreux cadres, et leur objectif actuel est encore sur l'amélioration des performances et de la stabilité.
4.6.7 Autres
Pinpoint au début pour atteindre un problème de performance, la fin arrière du site www.naver.com certains services et traite plus de 20 milliards de requêtes par jour, donc ils choisiront Thrift longueur variable binaire format de codage, et utiliser UDP comme le transport lien, également possible d'utiliser une référence de dictionnaire de données lors de la transmission constante, au lieu de transmettre directement une transmission numérique comme une chaîne. Ces optimisations augmente également la complexité du système comprennent: la difficulté d'utiliser l'interface Thrift, la transmission de données UDP question et des constantes de données des problèmes d'enregistrement du dictionnaire et ainsi de suite.
En revanche, Zipkin utilisant des interfaces familières Restful, plus JSON, les coûts presque pas d'apprentissage et des difficultés d'intégration, il suffit de savoir que la structure de transmission de données, vous pouvez facilement un nouveau cadre pour développer l'interface appropriée.
De plus Pinpoint manque la possibilité de demander des échantillons, apparemment dans un grand environnement de production de flux, tous les dossiers ne sont pas susceptibles à toutes les demandes, ce qui exige que les échantillons de demande afin de déterminer quelle est ma demande à enregistrer. Pinpoint et Brave soutiennent le pourcentage d'échantillonnage, qui est, quel est le pourcentage de demandes seront enregistrées. Mais en plus Brave fournit également l'interface Sampler, vous pouvez personnaliser la stratégie d'échantillonnage, en particulier quand un test A / B de temps, cette fonction est très significative.
4.6.8 résumé
Dans les objectifs à court terme, Pinpoint n'ont un énorme avantage: pas besoin d'apporter des modifications au code du projet peuvent être des sondes déployées, les données de suivi à grains fins au niveau d'appel de méthode, puissante interface utilisateur et le cadre presque plus complet pour soutenir Java . Mais à long terme, l'apprentissage interface de développement Pinpoint, ainsi que le coût de mise en uvre future de l'interface est différents cadres sont encore inconnus.
Au contraire, il est relativement facile de saisir les braves et les communautés Zipkin plus forte et plus susceptibles de développer des interfaces plus à l'avenir. Dans le pire des cas, on peut aussi ajouter leur propre chemin à travers l'AOP est adapté à la surveillance de notre propre code et n'a pas besoin d'introduire trop de nouvelles technologies et de nouveaux concepts. Et quand les changements d'affaires à l'avenir, si les rapports officiels Pinpoint répondent aux exigences ne disent pas, l'ajout de nouveaux rapports apportera pas de prédire la difficulté du travail et de l'effort.
Le moniteur peut être divisé en surveillance de suivi et d'application. Le système surveille les données telles que la CPU, mémoire, réseau, du disque et de sorte que la charge globale du système, et peut affiner le spécifique de données correspondant à chaque processus. Ce type d'information peut être obtenu directement à partir du système. Applications Surveillance des applications qui nécessitent un soutien, expose les données appropriées.
l'application QPS tels que la demande interne, le retard de traitement de demande, le numéro d'erreur de demandes traitées, la longueur de file d'attente de la file d'attente de messages, des accidents, des informations de procédé de collecte des ordures et analogues. Surveiller l'objectif principal est d'alarme inhabituelle et en temps opportun.
Tracing la base et le coeur de toute la chaîne d'appel. La plupart sont liés au système métrique analyse de la chaîne d'appels pour se déplacer. Tracing principal objectif est d'analyser le système. Avant de trouver des problèmes que pour résoudre les problèmes et ensuite mieux.
Il y a beaucoup de points communs sur le traçage et le niveau d'application pile de technologie Moniteur. Nous avons une acquisition de données, l'analyse, le stockage et la formule d'exposition. Juste différentes dimensions de la collecte de données spécifiques, l'analyse ne sont pas les mêmes.