Meilleures pratiques pour la surveillance des applications cloudBest practices for monitoring cloud applications

Les applications et services distribués, exécutés dans le cloud sont, par leur nature, les parties complexes des logiciels comprenant de nombreux éléments mobiles.Distributed applications and services running in the cloud are, by their nature, complex pieces of software that comprise many moving parts. Dans un environnement de production, il est important de pouvoir suivre la façon dont les utilisateurs utilisent votre système, de retracer l’utilisation des ressources et, en général, de surveiller la santé et les performances de votre système.In a production environment, it's important to be able to track the way in which users use your system, trace resource utilization, and generally monitor the health and performance of your system. Vous pouvez utiliser ces informations comme aide au diagnostic pour détecter et corriger les problèmes, et également aider à identifier des problèmes potentiels et les empêcher de se produire.You can use this information as a diagnostic aid to detect and correct issues, and also to help spot potential problems and prevent them from occurring.

Scénarios de surveillance et de diagnosticMonitoring and diagnostics scenarios

Vous pouvez utiliser la surveillance pour mieux comprendre le fonctionnement d’un système.You can use monitoring to gain an insight into how well a system is functioning. La surveillance est un élément essentiel du maintien des objectifs de qualité de service.Monitoring is a crucial part of maintaining quality-of-service targets. Les scénarios courants pour la collecte des données de surveillance sont les suivants :Common scenarios for collecting monitoring data include:

  • S’assurer que le système reste sain.Ensuring that the system remains healthy.
  • Suivre la disponibilité du système et de ses composants.Tracking the availability of the system and its component elements.
  • Maintenir les performances pour s’assurer que le débit du système ne se dégrade pas inopinément à mesure que le volume de travail augmente.Maintaining performance to ensure that the throughput of the system does not degrade unexpectedly as the volume of work increases.
  • Garantir que le système satisfait aux contrats de niveau de service (SLA) établis avec les clients.Guaranteeing that the system meets any service-level agreements (SLAs) established with customers.
  • Protéger la confidentialité et la sécurité du système, des utilisateurs et de leurs données.Protecting the privacy and security of the system, users, and their data.
  • Suivre les opérations qui sont effectuées à des fins d’audit ou de réglementation.Tracking the operations that are performed for auditing or regulatory purposes.
  • Surveiller l’utilisation quotidienne du système et identifier les tendances qui peuvent entraîner des problèmes si elles ne sont pas traitées.Monitoring the day-to-day usage of the system and spotting trends that might lead to problems if they're not addressed.
  • Suivre les problèmes qui surviennent, à partir d’un rapport initial via l’analyse des causes possibles, de la rectification, des mises à jour logicielles consécutives et du déploiement.Tracking issues that occur, from initial report through to analysis of possible causes, rectification, consequent software updates, and deployment.
  • Suivre les opérations et les versions de débogage.Tracing operations and debugging software releases.

Notes

Cette liste n’est pas exhaustive.This list is not intended to be comprehensive. Ce document porte essentiellement sur les scénarios correspondant aux situations les plus courantes de surveillance.This document focuses on these scenarios as the most common situations for performing monitoring. Il peut en exister d’autres moins courantes ou propres à votre environnement.There might be others that are less common or are specific to your environment.

Les sections suivantes décrivent ces scénarios plus en détail.The following sections describe these scenarios in more detail. Les informations pour chaque scénario sont décrites selon le format suivant :The information for each scenario is discussed in the following format:

  1. Un bref aperçu du scénario.A brief overview of the scenario.
  2. Les exigences typiques de ce scénario.The typical requirements of this scenario.
  3. Les données brutes d’instrumentation qui sont nécessaires pour soutenir le scénario, et les sources possibles de cette information.The raw instrumentation data that's required to support the scenario, and possible sources of this information.
  4. Comment ces données brutes peuvent être analysées et combinées pour générer des informations diagnostiques significatives.How this raw data can be analyzed and combined to generate meaningful diagnostic information.

Surveillance de l’intégritéHealth monitoring

Un système est sain s’il est en cours d’exécution et capable de traiter les demandes.A system is healthy if it is running and capable of processing requests. L’objectif de la surveillance de l’intégrité consiste à générer un instantané de l’intégrité actuelle du système pour vous permettre de vérifier que tous les composants du système fonctionnent comme prévu.The purpose of health monitoring is to generate a snapshot of the current health of the system so that you can verify that all components of the system are functioning as expected.

Conditions requises pour la surveillance de l’intégritéRequirements for health monitoring

Un opérateur doit être averti rapidement (en quelques secondes) si une partie du système est considérée comme défectueuse.An operator should be alerted quickly (within a matter of seconds) if any part of the system is deemed to be unhealthy. L’opérateur doit être en mesure de déterminer les parties du système qui fonctionnent normalement et celles qui rencontrent des problèmes.The operator should be able to ascertain which parts of the system are functioning normally, and which parts are experiencing problems. L’intégrité du système est mise en évidence via un système de feux de signalisation :System health can be highlighted through a traffic-light system:

  • Un feu rouge indique un état défectueux (le système est arrêté).Red for unhealthy (the system has stopped)
  • Un feu jaune indique un état d’intégrité partiellement normal (le système s’exécute avec des fonctionnalités réduites).Yellow for partially healthy (the system is running with reduced functionality)
  • Un feu vert indique un état d’intégrité tout à fait normal.Green for completely healthy

Un système complet de surveillance de l’intégrité permet à un opérateur d’explorer le système pour afficher l’état d’intégrité des sous-systèmes et des composants.A comprehensive health-monitoring system enables an operator to drill down through the system to view the health status of subsystems and components. Par exemple, si l’ensemble du système est représenté comme partiellement sain, l’opérateur doit être en mesure de zoomer et de déterminer la fonctionnalité qui est actuellement indisponible.For example, if the overall system is depicted as partially healthy, the operator should be able to zoom in and determine which functionality is currently unavailable.

Sources de données, instrumentation et conditions de collecte de donnéesData sources, instrumentation, and data-collection requirements

Les données brutes requises pour la surveillance de l’intégrité peuvent être générées après les opérations suivantes :The raw data that's required to support health monitoring can be generated as a result of:

  • Le suivi de l’exécution des demandes utilisateur.Tracing execution of user requests. Ces informations peuvent être utilisées pour déterminer les demandes qui ont réussi, celles qui ont échoué et le temps de réponse pour chaque demande.This information can be used to determine which requests have succeeded, which have failed, and how long each request takes.
  • La surveillance des utilisateurs synthétiques.Synthetic user monitoring. Ce processus simule les étapes effectuées par un utilisateur et suit une série d’étapes prédéfinie.This process simulates the steps performed by a user and follows a predefined series of steps. Les résultats de chaque étape doivent être capturés.The results of each step should be captured.
  • L’enregistrement des exceptions, erreurs et avertissements.Logging exceptions, faults, and warnings. Ces informations peuvent être capturées en résultat du suivi des instructions intégrées dans le code d’application, et de la récupération des informations des journaux des événements des services référencés par le système.This information can be captured as a result of trace statements embedded into the application code, as well as retrieving information from the event logs of any services that the system references.
  • La surveillance de l’intégrité de tous les services tiers utilisés par le système.Monitoring the health of any third-party services that the system uses. Cette surveillance peut nécessiter la récupération et l’analyse des données d’intégrité fournies par ces services.This monitoring might require retrieving and parsing health data that these services supply. Ces informations peuvent prendre différents formats.This information might take a variety of formats.
  • La surveillance de point de terminaison.Endpoint monitoring. Ce mécanisme est décrit plus en détail dans la section « Surveillance de la disponibilité ».This mechanism is described in more detail in the "Availability monitoring" section.
  • La collecte des informations de performances ambiantes, telles que l’utilisation du processeur d’arrière-plan ou l’activité E/S (y compris le réseau).Collecting ambient performance information, such as background CPU utilization or I/O (including network) activity.

Analyse des données d’intégritéAnalyzing health data

Le principal objectif de la surveillance d’intégrité est d’indiquer rapidement si le système est en cours d’exécution.The primary focus of health monitoring is to quickly indicate whether the system is running. L’analyse à chaud des données immédiates peut déclencher une alerte si un composant critique est détecté comme défectueux,Hot analysis of the immediate data can trigger an alert if a critical component is detected as unhealthy. (Il ne répond pas à une série consécutive de pings, par exemple.) L’opérateur peut alors prendre les mesures correctives appropriées.(It fails to respond to a consecutive series of pings, for example.) The operator can then take the appropriate corrective action.

Un système plus avancé peut inclure un élément prédictif qui effectue une analyse à froid des charges de travail récentes et en cours.A more advanced system might include a predictive element that performs a cold analysis over recent and current workloads. Une telle analyse permet d’identifier des tendances et de déterminer si le système est susceptible de rester dans un état d’intégrité normal ou s’il nécessite des ressources supplémentaires.A cold analysis can spot trends and determine whether the system is likely to remain healthy or whether the system will need additional resources. Cet élément prédictif doit s’appuyer sur des métriques de performance critiques, par exemple :This predictive element should be based on critical performance metrics, such as:

  • La fréquence des requêtes dirigées vers chaque service ou sous-système.The rate of requests directed at each service or subsystem.
  • Les temps de réponse de ces requêtes.The response times of these requests.
  • Le volume des données échangées avec chaque service.The volume of data flowing into and out of each service.

Si la valeur d’une métrique dépasse un seuil défini, le système peut déclencher une alerte pour permettre à un opérateur ou à la mise à l’échelle automatique (si disponible) de prendre les mesures préventives nécessaires pour maintenir l’intégrité du système.If the value of any metric exceeds a defined threshold, the system can raise an alert to enable an operator or autoscaling (if available) to take the preventative actions necessary to maintain system health. Ces actions peuvent impliquer l’ajout de ressources, le redémarrage d’un ou de plusieurs services défectueux, ou l’application d’une limitation aux demandes de faible priorité.These actions might involve adding resources, restarting one or more services that are failing, or applying throttling to lower-priority requests.

Surveillance de la disponibilitéAvailability monitoring

Un système véritablement sain nécessite la disponibilité des composants et des sous-systèmes qui constituent le système.A truly healthy system requires that the components and subsystems that compose the system are available. La surveillance de la disponibilité est étroitement liée à la surveillance de l’intégrité.Availability monitoring is closely related to health monitoring. Néanmoins, alors que la surveillance de l’intégrité fournit une vue immédiate de l’intégrité actuelle du système, la surveillance de la disponibilité concerne la disponibilité du système et de ses composants afin de générer des statistiques relatives au temps d’activité du système.But whereas health monitoring provides an immediate view of the current health of the system, availability monitoring is concerned with tracking the availability of the system and its components to generate statistics about the uptime of the system.

Dans de nombreux systèmes, certains composants (par exemple, une base de données) sont configurés avec une redondance intégrée pour permettre un basculement rapide en cas d’erreur grave ou d’une perte de connectivité.In many systems, some components (such as a database) are configured with built-in redundancy to permit rapid failover in the event of a serious fault or loss of connectivity. Dans l’idéal, les utilisateurs ne doivent pas être conscients qu’une telle défaillance s’est produite,Ideally, users should not be aware that such a failure has occurred. mais du point de vue de la surveillance de la disponibilité, il est nécessaire de recueillir autant d’informations que possible sur ces défaillances pour en déterminer la cause et prendre les mesures correctives adéquates pour empêcher qu’elles se reproduisent.But from an availability monitoring perspective, it's necessary to gather as much information as possible about such failures to determine the cause and take corrective actions to prevent them from recurring.

Les données requises pour le suivi de la disponibilité peuvent dépendre de plusieurs facteurs de niveau inférieur.The data that's required to track availability might depend on a number of lower-level factors. Nombre de ces facteurs peuvent être propres à l’application, au système et à l’environnement.Many of these factors might be specific to the application, system, and environment. Un système de surveillance efficace capture les données de disponibilité qui correspondent à ces facteurs de niveau inférieur, puis les agrège afin de donner une vue d’ensemble du système.An effective monitoring system captures the availability data that corresponds to these low-level factors and then aggregates them to give an overall picture of the system. Par exemple, dans un système de commerce électronique, la fonctionnalité d’entreprise qui permet à un client de passer des commandes peut dépendre du référentiel dans lequel les détails de la commande sont stockés et du système de paiement qui gère les transactions monétaires pour le paiement de ces commandes.For example, in an e-commerce system, the business functionality that enables a customer to place orders might depend on the repository where order details are stored and the payment system that handles the monetary transactions for paying for these orders. La disponibilité de la partie du système liée à la passation des commandes est donc fonction de la disponibilité du référentiel et du sous-système de paiement.The availability of the order-placement part of the system is therefore a function of the availability of the repository and the payment subsystem.

Conditions requises pour la surveillance de la disponibilitéRequirements for availability monitoring

Un opérateur doit également être en mesure d’afficher la disponibilité historique de chaque système et sous-système et d’utiliser ces informations pour identifier les tendances susceptibles de provoquer des défaillances régulières d’un ou de plusieurs sous-systèmes.An operator should also be able to view the historical availability of each system and subsystem, and use this information to spot any trends that might cause one or more subsystems to periodically fail. (Les défaillances des services commencent-elles à un moment précis de la journée qui correspond aux heures de traitement de pointe ?)(Do services start to fail at a particular time of day that corresponds to peak processing hours?)

Une solution de supervision doit fournir une vue immédiate et historique de la disponibilité ou de l’indisponibilité de chaque sous-système.A monitoring solution should provide an immediate and historical view of the availability or unavailability of each subsystem. Elle doit également être en mesure d’alerter rapidement un opérateur en cas d’échec d’un ou de plusieurs services ou si les utilisateurs ne peuvent pas se connecter aux services.It should also be capable of quickly alerting an operator when one or more services fail or when users can't connect to services. Il ne s’agit pas uniquement de surveiller chaque service, mais également d’examiner les actions effectuées par chaque utilisateur en cas d’échec de ces actions lorsqu’il tente de communiquer avec un service.This is a matter of not only monitoring each service, but also examining the actions that each user performs if these actions fail when they attempt to communicate with a service. Dans une certaine mesure, un degré de problème de connectivité est normal et peut être dû à des erreurs temporaires.To some extent, a degree of connectivity failure is normal and might be due to transient errors. Cependant il peut être utile d’autoriser le système à déclencher une alerte pour un nombre d’échecs de connectivité à un sous-système spécifié se produisant au cours d’une période spécifique.But it might be useful to allow the system to raise an alert for the number of connectivity failures to a specified subsystem that occur during a specific period.

Sources de données, instrumentation et conditions de collecte de donnéesData sources, instrumentation, and data-collection requirements

Comme pour la surveillance de l’intégrité, les données brutes requises pour prendre en charge la surveillance de la disponibilité peuvent être générées suite à la surveillance d’utilisateurs synthétiques et à l’enregistrement de l’ensemble des exceptions, erreurs et avertissements pouvant se produire.As with health monitoring, the raw data that's required to support availability monitoring can be generated as a result of synthetic user monitoring and logging any exceptions, faults, and warnings that might occur. En outre, les données de disponibilité peuvent être obtenues à partir de la surveillance de point de terminaison.In addition, availability data can be obtained from performing endpoint monitoring. L’application peut exposer un ou plusieurs points de terminaison d’intégrité, chacun d’entre eux testant l’accès à une zone fonctionnelle du système.The application can expose one or more health endpoints, each testing access to a functional area within the system. Le système de surveillance peut envoyer une commande ping sur chaque point de terminaison en suivant un calendrier défini, et collecter les résultats (réussite ou échec).The monitoring system can ping each endpoint by following a defined schedule and collect the results (success or fail).

Tous les délais d’attente, les échecs de connectivité au réseau et les nouvelles tentatives de connexion doivent être enregistrés.All timeouts, network connectivity failures, and connection retry attempts must be recorded. Toutes les données doivent être enregistrées dans le temps.All data should be timestamped.

Analyse des données de disponibilitéAnalyzing availability data

Les données d’instrumentation doivent être agrégées et corrélées pour prendre en charge les types d’analyse suivants :The instrumentation data must be aggregated and correlated to support the following types of analysis:

  • La disponibilité immédiate du système et des sous-systèmes.The immediate availability of the system and subsystems.
  • Les taux d’échec de la disponibilité du système et des sous-systèmes.The availability failure rates of the system and subsystems. Dans l’idéal, un opérateur doit être en mesure de mettre en corrélation les défaillances avec des activités spécifiques : que s’est-il passé lors de l’échec du système ?Ideally, an operator should be able to correlate failures with specific activities: what was happening when the system failed?
  • Une vue historique des taux d’échecs du système ou des sous-systèmes sur une période spécifiée et la charge sur le système (nombre de demandes utilisateur par exemple) lorsqu’une erreur s’est produite.A historical view of failure rates of the system or any subsystems across any specified period, and the load on the system (number of user requests, for example) when a failure occurred.
  • Les raisons de l’indisponibilité du système ou des sous-systèmes.The reasons for unavailability of the system or any subsystems. Les raisons peuvent être par exemple les suivantes : service n’étant pas en cours d’exécution, connectivité perdue, connecté mais expiration du délai d’attente et connecté mais renvoyant des erreurs.For example, the reasons might be service not running, connectivity lost, connected but timing out, and connected but returning errors.

Vous pouvez calculer le pourcentage de disponibilité d’un service sur une période de temps à l’aide de la formule suivante :You can calculate the percentage availability of a service over a period of time by using the following formula:

%Availability =  ((Total Time – Total Downtime) / Total Time ) * 100

Cette formule est utile dans le cadre des contrats SLA.This is useful for SLA purposes. (La surveillance de l’ALS est décrite plus en détail plus tard dans cette directive.) La définition des temps d’arrêt dépend du service.(SLA monitoring is described in more detail later in this guidance.) The definition of downtime depends on the service. Par exemple, le service de build de Visual Studio Team Services définit les temps d’arrêt comme la période (total des minutes cumulées) pendant laquelle le service de Build n’est pas disponible.For example, Visual Studio Team Services Build Service defines downtime as the period (total accumulated minutes) during which Build Service is unavailable. Une minute est considérée comme indisponible si l’ensemble des requêtes HTTP continues auprès du service de build pour exécuter des opérations demandées par le client dans la minute entraînent un code d’erreur ou ne renvoient aucune réponse.A minute is considered unavailable if all continuous HTTP requests to Build Service to perform customer-initiated operations throughout the minute either result in an error code or do not return a response.

analyse des performances.Performance monitoring

Comme le système est placé sous contrainte croissante (en augmentant le volume d’utilisateurs), la taille des jeux de données auxquels ces utilisateurs accèdent augmente, et l’échec d’un ou de plusieurs composants devient de plus en plus probable.As the system is placed under more and more stress (by increasing the volume of users), the size of the datasets that these users access grows and the possibility of failure of one or more components becomes more likely. Fréquemment, la défaillance d’un composant est précédée par une baisse des performances.Frequently, component failure is preceded by a decrease in performance. Si vous êtes en mesure de détecter cette baisse, vous pouvez prendre des mesures proactives pour y remédier.If you're able detect such a decrease, you can take proactive steps to remedy the situation.

Les performances du système dépendent de plusieurs facteurs.System performance depends on a number of factors. Chaque facteur est généralement mesuré via des indicateurs de performance clé (KPI) tels que le nombre de transactions de base de données par seconde ou le volume de requêtes réseau traitées avec succès dans une période spécifiée.Each factor is typically measured through key performance indicators (KPIs), such as the number of database transactions per second or the volume of network requests that are successfully serviced in a specified time frame. Certains de ces indicateurs peuvent être disponibles en tant que mesures de performances spécifiques, tandis que d’autres peuvent être dérivés d’une combinaison de métriques.Some of these KPIs might be available as specific performance measures, whereas others might be derived from a combination of metrics.

Notes

La détermination des bonnes ou mauvaises performances nécessite que vous compreniez le niveau de performance auquel le système doit être capable de fonctionner.Determining poor or good performance requires that you understand the level of performance at which the system should be capable of running. Ceci implique d’observer le système pendant qu’il fonctionne sous une charge normale et de capturer les données de chaque indicateur KPI sur une période donnée.This requires observing the system while it's functioning under a typical load and capturing the data for each KPI over a period of time. Cela peut impliquer de faire fonctionner le système sous une charge simulée dans un environnement de test et de collecter les données appropriées avant de déployer le système dans un environnement de production.This might involve running the system under a simulated load in a test environment and gathering the appropriate data before deploying the system to a production environment.

Vous devez également vous assurer que la surveillance de la performance ne devient pas une charge sur le système.You should also ensure that monitoring for performance purposes does not become a burden on the system. Vous pouvez ajuster dynamiquement le niveau de détail des données que le processus de surveillance des performances rassemble.You might be able to dynamically adjust the level of detail for the data that the performance monitoring process gathers.

Conditions requises pour la surveillance des performancesRequirements for performance monitoring

Pour examiner les performances du système, un opérateur doit généralement consulter les informations suivantes :To examine system performance, an operator typically needs to see information that includes:

  • Les taux de réponse pour les demandes utilisateur.The response rates for user requests.
  • Le nombre de demandes utilisateur simultanées.The number of concurrent user requests.
  • Le volume du trafic réseau.The volume of network traffic.
  • Les vitesses auxquelles les transactions sont terminées.The rates at which business transactions are being completed.
  • Le temps de traitement moyen des demandes.The average processing time for requests.

Il peut également être utile de fournir des outils qui permettent à un opérateur de repérer des corrélations, par exemple :It can also be helpful to provide tools that enable an operator to help spot correlations, such as:

  • Le nombre d’utilisateurs simultanés par rapport au temps de latence des requêtes (temps nécessaire au démarrage du traitement d’une requête une fois que l’utilisateur l’a envoyée).The number of concurrent users versus request latency times (how long it takes to start processing a request after the user has sent it).
  • Le nombre d’utilisateurs simultanés par rapport au temps de réponse moyen (temps nécessaire pour effectuer une requête après le début du traitement).The number of concurrent users versus the average response time (how long it takes to complete a request after it has started processing).
  • Le volume de demandes par rapport au nombre d’erreurs de traitement.The volume of requests versus the number of processing errors.

Avec ces informations fonctionnelles de haut niveau, un opérateur doit être capable d’obtenir une vue détaillée des performances de chaque composant du système.Along with this high-level functional information, an operator should be able to obtain a detailed view of the performance for each component in the system. Ces données sont généralement fournies via des compteurs de performances de niveau inférieur qui suivent les informations indiquées ci-dessous :This data is typically provided through low-level performance counters that track information such as:

  • L’utilisation de la mémoire.Memory utilization.
  • Le nombre de threads.Number of threads.
  • Le temps de traitement du processeur.CPU processing time.
  • La longueur de la file d’attente de la requête.Request queue length.
  • Les taux et erreurs d’E/S disque ou réseau.Disk or network I/O rates and errors.
  • Le nombre d’octets écrits ou lus.Number of bytes written or read.
  • Les indicateurs d’intergiciel, tels que la longueur de la file d’attente.Middleware indicators, such as queue length.

Toutes les visualisations doivent permettre à un opérateur de spécifier une période de temps.All visualizations should allow an operator to specify a time period. Les données affichées peuvent être un instantané de la situation actuelle et/ou une vue historique des performances.The displayed data might be a snapshot of the current situation and/or a historical view of the performance.

Un opérateur doit être en mesure de déclencher une alerte basée sur une mesure des performances pour toute valeur spécifiée durant n’importe quel intervalle de temps spécifié.An operator should be able to raise an alert based on any performance measure for any specified value during any specified time interval.

Sources de données, instrumentation et conditions de collecte de donnéesData sources, instrumentation, and data-collection requirements

Vous pouvez collecter les données de performances de haut niveau (débit, nombre d’utilisateurs simultanés, nombre de transactions commerciales, taux d’erreur, etc.) en surveillant la progression des requêtes des utilisateurs lorsqu’elles arrivent et passent par le système.You can gather high-level performance data (throughput, number of concurrent users, number of business transactions, error rates, and so on) by monitoring the progress of users' requests as they arrive and pass through the system. Cela implique d’incorporer des instructions de suivi à des points clés dans le code d’application ainsi que des informations de minutage.This involves incorporating tracing statements at key points in the application code, together with timing information. L’ensemble des erreurs, exceptions et avertissements doit être capturé avec des données suffisantes pour leur mise en corrélation avec les requêtes qui les ont générés.All faults, exceptions, and warnings should be captured with sufficient data for correlating them with the requests that caused them. Le journal des services IIS (Internet Information Services) est une autre source utile.The Internet Information Services (IIS) log is another useful source.

Vous devez également capturer, si possible, les données de performances pour les systèmes externes que l’application utilise.If possible, you should also capture performance data for any external systems that the application uses. Ces systèmes externes peuvent fournir leurs propres compteurs de performances ou d’autres fonctionnalités pour demander des données de performances.These external systems might provide their own performance counters or other features for requesting performance data. Si ce n’est pas possible, enregistrez des informations telles que l’heure de début et de fin de chaque requête adressée à un système externe, ainsi que l’état (réussite, échec ou avertissement) de l’opération.If this is not possible, record information such as the start time and end time of each request made to an external system, together with the status (success, fail, or warning) of the operation. Par exemple, vous pouvez utiliser une approche de type chronomètre pour chronométrer les requêtes : démarrer un minuteur au démarrage de la requête, puis l’arrêter lorsque la requête est terminée.For example, you can use a stopwatch approach to time requests: start a timer when the request starts and then stop the timer when the request finishes.

Les données de performances de niveau inférieur pour les composants individuels d’un système peuvent être disponibles via des fonctionnalités et des services tels que les compteurs de performances Windows et les Diagnostics Azure.Low-level performance data for individual components in a system might be available through features and services such as Windows performance counters and Azure Diagnostics.

Analyse des données de performancesAnalyzing performance data

L’essentiel du travail d’analyse consiste à agréger les données de performances par type de requête utilisateur et/ou en fonction du sous-système ou du service auquel chaque requête est envoyée.Much of the analysis work consists of aggregating performance data by user request type and/or the subsystem or service to which each request is sent. L’ajout d’un article à un panier ou l’exécution du processus de validation dans un système de commerce électronique constituent des exemples de requête utilisateur.An example of a user request is adding an item to a shopping cart or performing the checkout process in an e-commerce system.

Une autre exigence commune est de synthétiser les données de performances dans les centiles sélectionnés.Another common requirement is summarizing performance data in selected percentiles. Par exemple, un opérateur peut déterminer les temps de réponse pour 99 %, 95 % et 70 % des requêtes.For example, an operator might determine the response times for 99 percent of requests, 95 percent of requests, and 70 percent of requests. Il peut exister des cibles de contrats SLA ou d’autres objectifs définis pour chaque centile.There might be SLA targets or other goals set for each percentile. Les résultats en cours doivent être indiqués en temps quasi réel afin de détecter les problèmes immédiats.The ongoing results should be reported in near real time to help detect immediate issues. Ils doivent également être agrégés sur une plus longue période à des fins statistiques.The results should also be aggregated over the longer time for statistical purposes.

Dans le cas de problèmes de latence ayant un impact sur les performances, un opérateur doit être rapidement en mesure d’identifier la cause du goulot d’étranglement en examinant la latence de chaque étape effectuée pour chaque requête.In the case of latency issues affecting performance, an operator should be able to quickly identify the cause of the bottleneck by examining the latency of each step that each request performs. Les données de performances doivent donc fournir un moyen de mettre en corrélation des mesures de performances pour chaque étape afin de les associer à une demande spécifique.The performance data must therefore provide a means of correlating performance measures for each step to tie them to a specific request.

Selon les spécifications de la visualisation, il peut être utile de générer et de stocker un cube de données contenant les vues des données brutes.Depending on the visualization requirements, it might be useful to generate and store a data cube that contains views of the raw data. Ce cube de données peut autoriser des requêtes ad hoc complexes et l’analyse des informations de performances.This data cube can allow complex ad hoc querying and analysis of the performance information.

Surveillance de la sécuritéSecurity monitoring

Tous les systèmes commerciaux qui contiennent des données sensibles doivent implémenter une structure de sécurité.All commercial systems that include sensitive data must implement a security structure. La complexité du mécanisme de sécurité est généralement fonction de la sensibilité des données.The complexity of the security mechanism is usually a function of the sensitivity of the data. Dans un système qui requiert l’authentification des utilisateurs, vous devez enregistrer les éléments suivants :In a system that requires users to be authenticated, you should record:

  • Toutes les tentatives de connexion, qu’elles échouent ou réussissent.All sign-in attempts, whether they fail or succeed.
  • Toutes les—opérations effectuées par et les—détails de toutes les ressources consultées par un utilisateur authentifié.All operations performed by—and the details of all resources accessed by—an authenticated user.
  • Lorsqu’un utilisateur termine une session et se déconnecte.When a user ends a session and signs out.

La surveillance peut aider à détecter les attaques visant le système.Monitoring might be able to help detect attacks on the system. Par exemple, un grand nombre de tentatives de connexion en échec peut indiquer une attaque par force brute.For example, a large number of failed sign-in attempts might indicate a brute-force attack. Un bond inattendu du nombre de requêtes peut être le résultat d’une attaque de déni de service distribué (DDoS).An unexpected surge in requests might be the result of a distributed denial-of-service (DDoS) attack. Vous devez être prêt à surveiller toutes les requêtes effectuées vers toutes les ressources indépendamment de la source de ces requêtes.You must be prepared to monitor all requests to all resources regardless of the source of these requests. Un système présentant un problème de connexion peut exposer accidentellement des ressources au monde extérieur sans nécessiter la connexion réelle d’un utilisateur.A system that has a sign-in vulnerability might accidentally expose resources to the outside world without requiring a user to actually sign in.

Conditions requises pour la surveillance de la sécuritéRequirements for security monitoring

Les aspects les plus critiques de surveillance de la sécurité doivent rapidement permettre à un opérateur d’effectuer les actions suivantes :The most critical aspects of security monitoring should enable an operator to quickly:

  • Détecter les tentatives d’intrusion par une entité non authentifiée.Detect attempted intrusions by an unauthenticated entity.
  • Identifier les tentatives des entités d’effectuer des opérations sur les données auxquelles aucun accès ne leur a été accordé.Identify attempts by entities to perform operations on data for which they have not been granted access.
  • Déterminer si tout ou partie du système subit une attaque externe ou interne.Determine whether the system, or some part of the system, is under attack from outside or inside. (Par exemple, un utilisateur authentifié malveillant peut tenter d’arrêter le système.)(For example, a malicious authenticated user might be attempting to bring the system down.)

Pour tenir ces exigences, un exploitant doit être avisé si :To support these requirements, an operator should be notified if:

  • Un compte fait des tentatives répétées de connexion échouée dans un délai spécifié.One account makes repeated failed sign-in attempts within a specified period.
  • Un compte authentifié tente à plusieurs reprises d’accéder à une ressource interdite au cours d’une période déterminée.One authenticated account repeatedly tries to access a prohibited resource during a specified period.
  • Un grand nombre de demandes non autorisées ou non autorisées ont lieu au cours d’une période déterminée.A large number of unauthenticated or unauthorized requests occur during a specified period.

Les informations fournies à un opérateur doivent inclure l’adresse hôte de la source correspondant à chaque requête.The information that's provided to an operator should include the host address of the source for each request. Si des violations de sécurité se produisent régulièrement à partir d’une plage spécifique d’adresses, ces hôtes risquent alors d’être bloqués.If security violations regularly arise from a particular range of addresses, these hosts might be blocked.

Une partie essentielle du maintien de la sécurité d’un système est de pouvoir détecter rapidement les actions qui s’écartent du modèle habituel.A key part in maintaining the security of a system is being able to quickly detect actions that deviate from the usual pattern. Des informations comme le nombre de demandes de connexion en échec et/ou réussies peuvent être affichées visuellement pour aider à détecter la présence d’un pic d’activité à un moment inhabituel.Information such as the number of failed and/or successful sign-in requests can be displayed visually to help detect whether there is a spike in activity at an unusual time. (Des utilisateurs se connectant à 3 h 00 et effectuant un grand nombre d’opérations alors que leur journée de travail commence à 9 h 00 en constituent un bon exemple).(An example of this activity is users signing in at 3:00 AM and performing a large number of operations when their working day starts at 9:00 AM). Ces informations permettent également de configurer une mise à l’échelle automatique à durée définie.This information can also be used to help configure time-based autoscaling. Par exemple, si un opérateur observe que de nombreux utilisateurs se connectent régulièrement à un moment précis de la journée, il peut mettre en place des services d’authentification supplémentaires pour gérer le volume de travail, puis les arrêter à la fin du pic.For example, if an operator observes that a large number of users regularly sign in at a particular time of day, the operator can arrange to start additional authentication services to handle the volume of work, and then shut down these additional services when the peak has passed.

Sources de données, instrumentation et conditions de collecte de donnéesData sources, instrumentation, and data-collection requirements

La sécurité est un aspect global de la plupart des systèmes distribués.Security is an all-encompassing aspect of most distributed systems. Les données pertinentes sont susceptibles d’être générées en plusieurs points d’un système.The pertinent data is likely to be generated at multiple points throughout a system. Vous devez envisager d’adopter une approche SIEM pour rassembler les informations relatives à la sécurité résultant des événements déclenchés par l’application, l’équipement réseau, les serveurs, les pare-feu, les logiciels antivirus et d’autres éléments de prévention des intrusions.You should consider adopting a Security Information and Event Management (SIEM) approach to gather the security-related information that results from events raised by the application, network equipment, servers, firewalls, antivirus software, and other intrusion-prevention elements.

La surveillance de la sécurité peut intégrer des données d’outils qui ne font pas partie de votre application.Security monitoring can incorporate data from tools that are not part of your application. Ces outils peuvent inclure des utilitaires qui identifient les activités d’analyse de port par des agences externes ou des filtres réseau qui détectent les tentatives d’accès non authentifié à votre application et à vos données.These tools can include utilities that identify port-scanning activities by external agencies, or network filters that detect attempts to gain unauthenticated access to your application and data.

Dans tous les cas, les données collectées doivent permettre à un administrateur de déterminer la nature d’une attaque et de prendre les contre-mesures appropriées.In all cases, the gathered data must enable an administrator to determine the nature of any attack and take the appropriate countermeasures.

Analyse des données de sécuritéAnalyzing security data

Une fonctionnalité de la surveillance de la sécurité concerne la variété des sources à partir desquelles les données émanent.A feature of security monitoring is the variety of sources from which the data arises. Les différents formats et le niveau de détail nécessitent souvent une analyse complexe des données capturées pour les relier à un thread d’informations cohérent.The different formats and level of detail often require complex analysis of the captured data to tie it together into a coherent thread of information. Hormis les cas les plus simples (comme la détection d’un grand nombre de connexions en échec ou des tentatives répétées d’accès non autorisé à des ressources critiques), il peut s’avérer impossible d’effectuer un traitement automatisé complexe des données de sécurité.Apart from the simplest of cases (such as detecting a large number of failed sign-ins, or repeated attempts to gain unauthorized access to critical resources), it might not be possible to perform any complex automated processing of security data. Au lieu de cela, il pourrait être préférable d’écrire ces données, timestamped mais autrement sous sa forme originale, à un référentiel sécurisé pour permettre une analyse manuelle experte.Instead, it might be preferable to write this data, timestamped but otherwise in its original form, to a secure repository to allow for expert manual analysis.

Surveillance des contrats SLASLA monitoring

De nombreux systèmes commerciaux qui prennent en charge les clients payants garantissent les performances du système sous la forme de contrats SLA.Many commercial systems that support paying customers make guarantees about the performance of the system in the form of SLAs. Pour l’essentiel, les contrats SLA stipulent que le système peut gérer un volume de travail défini au cours d’une période convenue, sans perdre les informations critiques.Essentially, SLAs state that the system can handle a defined volume of work within an agreed time frame and without losing critical information. La surveillance des contrats SLA vise à garantir que le système peut respecter les contrats SLA mesurables.SLA monitoring is concerned with ensuring that the system can meet measurable SLAs.

Notes

La surveillance des contrats SLA est étroitement liée à la surveillance des performances.SLA monitoring is closely related to performance monitoring. Cependant, alors que la surveillance des performances s’attache à veiller à ce que le système fonctionne de manière optimale, la surveillance des contrats SLA est régie par une obligation contractuelle qui définit ce que le terme optimal signifie réellement.But whereas performance monitoring is concerned with ensuring that the system functions optimally, SLA monitoring is governed by a contractual obligation that defines what optimally actually means.

Les contrats SLA sont souvent définis en termes de :SLAs are often defined in terms of:

  • Disponibilité générale du système.Overall system availability. Par exemple, une organisation peut garantir que le système sera disponible pendant 99,9 % du temps.For example, an organization might guarantee that the system will be available for 99.9 percent of the time. Cela revient à un temps d’arrêt inférieur ou égal à 9 heures par an, soit environ 10 minutes par semaine.This equates to no more than 9 hours of downtime per year, or approximately 10 minutes a week.
  • Débit opérationnel.Operational throughput. Cet aspect est souvent exprimé en une ou plusieurs bornes hautes telles que la garantie que le système peut prendre en charge jusqu’à 100 000 requêtes utilisateur simultanées ou gérer 10 000 transactions commerciales simultanées.This aspect is often expressed as one or more high-water marks, such as guaranteeing that the system can support up to 100,000 concurrent user requests or handle 10,000 concurrent business transactions.
  • Temps de réponse opérationnel.Operational response time. Le système peut également donner des garanties pour la vitesse de traitement des requêtes.The system might also make guarantees for the rate at which requests are processed. En voici un exemple : 99 % de toutes les transactions commerciales seront terminées en 2 secondes, et aucune transaction ne prendra plus de 10 secondes.An example is that 99 percent of all business transactions will finish within 2 seconds, and no single transaction will take longer than 10 seconds.

Notes

Certains contrats correspondant à des systèmes commerciaux peuvent également inclure des contrats SLA pour le service clientèle.Some contracts for commercial systems might also include SLAs for customer support. Un exemple est que toutes les demandes de guichet d’assistance susciteront une réponse dans les cinq minutes, et que 99 pour cent de tous les problèmes seront entièrement traités dans un délai d’une journée ouvrable.An example is that all help-desk requests will elicit a response within five minutes, and that 99 percent of all problems will be fully addressed within 1 working day. Un suivi des problèmes efficace (décrit plus loin de cette section) est essentiel au respect des contrats SLA de ce type.Effective issue tracking (described later in this section) is key to meeting SLAs such as these.

Conditions requises pour la surveillance des contrats SLARequirements for SLA monitoring

Au niveau le plus élevé, un opérateur doit être en mesure de déterminer d’un coup d’œil si le système respecte ou non les contrats SLA adoptés.At the highest level, an operator should be able to determine at a glance whether the system is meeting the agreed SLAs or not. Dans le cas contraire, l’opérateur doit être à même d’explorer et d’examiner les facteurs sous-jacents afin de déterminer les raisons conduisant à des performances inférieures aux normes.And if not, the operator should be able to drill down and examine the underlying factors to determine the reasons for substandard performance.

Les indicateurs de niveau supérieur classiques pouvant être représentés visuellement sont les suivants :Typical high-level indicators that can be depicted visually include:

  • Le pourcentage de disponibilité du service.The percentage of service uptime.
  • Le débit de l’application (mesuré en matière de transactions réussies et/ou opérations par seconde).The application throughput (measured in terms of successful transactions and/or operations per second).
  • Le nombre de demandes d’application réussies/échouées.The number of successful/failing application requests.
  • Le nombre d’erreurs, d’exceptions et d’avertissements de l’application et du système.The number of application and system faults, exceptions, and warnings.

Tous ces indicateurs doivent pouvoir être filtrés par une période de temps spécifiée.All of these indicators should be capable of being filtered by a specified period of time.

Une application cloud sera probablement constituée de plusieurs sous-systèmes et composants.A cloud application will likely comprise a number of subsystems and components. Un opérateur doit être en mesure de sélectionner un indicateur de niveau supérieur et de connaître sa composition à partir de l’intégrité des éléments sous-jacents.An operator should be able to select a high-level indicator and see how it's composed from the health of the underlying elements. Par exemple, si le temps d’activité de l’ensemble du système tombe en dessous d’une valeur acceptable, un opérateur doit être en mesure de faire un zoom avant et d’identifier les éléments qui contribuent à cette défaillance.For example, if the uptime of the overall system falls below an acceptable value, an operator should be able to zoom in and determine which elements are contributing to this failure.

Notes

La disponibilité du système doit être définie avec précaution.System uptime needs to be defined carefully. Dans un système qui utilise la redondance pour garantir une disponibilité maximale, des instances individuelles d’éléments peuvent échouer, mais le système peut rester fonctionnel.In a system that uses redundancy to ensure maximum availability, individual instances of elements might fail, but the system can remain functional. La disponibilité du système, telle que présentée par la surveillance de l’intégrité, doit indiquer la disponibilité agrégée de chaque élément et pas nécessairement si le système s’est en réalité arrêté.System uptime as presented by health monitoring should indicate the aggregate uptime of each element and not necessarily whether the system has actually halted. En outre, les défaillances peuvent être isolées.Additionally, failures might be isolated. Par conséquent, même si un système spécifique n’est pas disponible, le reste du système peut le rester, mais avec des fonctionnalités réduites.So even if a specific system is unavailable, the remainder of the system might remain available, although with decreased functionality. (Dans un système de commerce électronique, une défaillance dans le système peut empêcher un client de passer des commandes, mais ce dernier peut toujours être en mesure de parcourir le catalogue de produits.)(In an e-commerce system, a failure in the system might prevent a customer from placing orders, but the customer might still be able to browse the product catalog.)

À des fins d’alerte, le système doit être en mesure de déclencher un événement si l’un des indicateurs de niveau supérieur dépasse un seuil spécifié.For alerting purposes, the system should be able to raise an event if any of the high-level indicators exceed a specified threshold. Les détails de niveau inférieur des différents facteurs qui composent l’indicateur de niveau supérieur doivent être disponibles en tant que données contextuelles pour le système d’alerte.The lower-level details of the various factors that compose the high-level indicator should be available as contextual data to the alerting system.

Sources de données, instrumentation et conditions de collecte de donnéesData sources, instrumentation, and data-collection requirements

Les données brutes requises pour prendre en charge la surveillance des contrats SLA sont semblables à celles qui sont requises pour la surveillance des performances, ainsi qu’à certains aspects de la surveillance de l’intégrité et de la disponibilité.The raw data that's required to support SLA monitoring is similar to the raw data that's required for performance monitoring, together with some aspects of health and availability monitoring. (Voir ces sections pour plus de détails.) Vous pouvez capturer ces données en :(See those sections for more details.) You can capture this data by:

  • La surveillance de point de terminaison.Performing endpoint monitoring.
  • L’enregistrement des exceptions, erreurs et avertissements.Logging exceptions, faults, and warnings.
  • Le suivi de l’exécution des requêtes utilisateur.Tracing the execution of user requests.
  • La surveillance de la disponibilité des services tiers utilisés par le système.Monitoring the availability of any third-party services that the system uses.
  • L’utilisation des métriques et des compteurs de performances.Using performance metrics and counters.

Toutes les données doivent être chronométrées et chronométrées.All data must be timed and timestamped.

Analyse des données des contrats SLAAnalyzing SLA data

Les données d’instrumentation doivent être agrégées pour générer une image des performances globales du système.The instrumentation data must be aggregated to generate a picture of the overall performance of the system. Les données agrégées doivent également prendre en charge le zoom avant pour permettre l’examen des performances des sous-systèmes sous-jacents.Aggregated data must also support drill-down to enable examination of the performance of the underlying subsystems. Par exemple, vous devez pouvoir :For example, you should be able to:

  • Calculer le nombre total de requêtes utilisateur pendant une période spécifiée, et déterminer le taux de réussite et d’échec de ces requêtes.Calculate the total number of user requests during a specified period and determine the success and failure rate of these requests.
  • Combiner les temps de réponse des demandes utilisateur pour générer une vue d’ensemble des temps de réponse.Combine the response times of user requests to generate an overall view of system response times.
  • Analyser la progression des requêtes utilisateur pour décomposer le temps de réponse global d’une requête en temps de réponse des éléments de travail individuels de cette requête.Analyze the progress of user requests to break down the overall response time of a request into the response times of the individual work items in that request.
  • Déterminer la disponibilité générale du système comme pourcentage de temps d’activité pour une période spécifique.Determine the overall availability of the system as a percentage of uptime for any specific period.
  • Analyser le pourcentage de temps de disponibilité des composants individuels et des services du système.Analyze the percentage time availability of the individual components and services in the system. Cela peut impliquer l’analyse des journaux d’activité générés par des services tiers.This might involve parsing logs that third-party services have generated.

De nombreux systèmes commerciaux doivent rapporter les chiffres réels de performances par rapport à ceux convenus dans les contrats SLA pour une période spécifiée, en général un mois.Many commercial systems are required to report real performance figures against agreed SLAs for a specified period, typically a month. Ces informations peuvent être utilisées pour calculer les crédits ou autres formes de remboursement si les contrats SLA ne sont pas respectés pendant cette période.This information can be used to calculate credits or other forms of repayments for customers if the SLAs are not met during that period. Vous pouvez calculer la disponibilité d’un service à l’aide de la technique décrite dans la section Analyse des données de disponibilité.You can calculate availability for a service by using the technique described in the section Analyzing availability data.

À des fins internes, une organisation peut également suivre le nombre et la nature des incidents ayant provoqué la défaillance des services.For internal purposes, an organization might also track the number and nature of incidents that caused services to fail. Apprendre à résoudre ces problèmes rapidement ou à les éliminer complètement contribue à réduire les temps d’arrêt et à respecter les stipulations des contrats SLA.Learning how to resolve these issues quickly, or eliminate them completely, will help to reduce downtime and meet SLAs.

AuditAuditing

Selon la nature de l’application, il peut exister des réglementations statutaires ou d’autres réglementations légales qui spécifient les conditions requises pour l’audit des opérations des utilisateurs et l’enregistrement de toutes les données d’accès.Depending on the nature of the application, there might be statutory or other legal regulations that specify requirements for auditing users' operations and recording all data access. L’audit peut prouver l’existence de liens entre des clients et des requêtes spécifiques.Auditing can provide evidence that links customers to specific requests. La non-administration est un facteur important dans de nombreux systèmes d’affaires électroniques pour aider à maintenir la confiance entre un client et l’organisation responsable de l’application ou du service.Nonrepudiation is an important factor in many e-business systems to help maintain trust be between a customer and the organization that's responsible for the application or service.

Conditions requises pour l’auditRequirements for auditing

Un analyste doit pouvoir suivre la séquence des opérations commerciales réalisées par les utilisateurs afin que vous puissiez reconstruire leurs actions.An analyst must be able to trace the sequence of business operations that users are performing so that you can reconstruct users' actions. Cela peut être nécessaire simplement à des fins d’enregistrement ou dans le cadre d’une investigation.This might be necessary simply as a matter of record, or as part of a forensic investigation.

Les informations d’audit sont très sensibles.Audit information is highly sensitive. Elles incluent probablement des données qui identifient les utilisateurs du système, ainsi que les tâches qu’ils effectuent.It will likely include data that identifies the users of the system, together with the tasks that they're performing. Pour cette raison, les informations d’audit sont, de préférence, affichées sous la forme de rapports qui sont disponibles uniquement pour les analystes approuvés plutôt que sous la forme d’un système interactif prenant en charge l’exploration des opérations graphiques.For this reason, audit information will most likely take the form of reports that are available only to trusted analysts rather than as an interactive system that supports drill-down of graphical operations. Un analyste doit pouvoir générer une série de rapports.An analyst should be able to generate a range of reports. Par exemple, les rapports peuvent répertorier toutes les activités des utilisateurs se produisant pendant une période spécifiée, détailler la chronologie de l’activité d’un seul utilisateur ou répertorier la séquence des opérations exécutées sur une ou plusieurs ressources.For example, reports might list all users' activities occurring during a specified time frame, detail the chronology of activity for a single user, or list the sequence of operations performed against one or more resources.

Sources de données, instrumentation et conditions de collecte de donnéesData sources, instrumentation, and data-collection requirements

Les principales sources d’informations d’audit peuvent inclure :The primary sources of information for auditing can include:

  • Le système de sécurité qui gère l’authentification des utilisateurs.The security system that manages user authentication.
  • Les journaux d’activité de suivi qui enregistrent l’activité utilisateur.Trace logs that record user activity.
  • Les journaux d’activité de sécurité qui suivent toutes les requêtes réseau identifiables et non identifiables.Security logs that track all identifiable and unidentifiable network requests.

Le format des données d’audit et la manière dont elles sont stockées peuvent être dictés par des exigences réglementaires.The format of the audit data and the way in which it's stored might be driven by regulatory requirements. Par exemple, il peut s’avérer impossible de nettoyer les données d’une quelconque façon.For example, it might not be possible to clean the data in any way. (Il doit être enregistré dans son format d’origine.) L’accès au dépôt où il est tenu doit être protégé pour éviter la falsification.(It must be recorded in its original format.) Access to the repository where it's held must be protected to prevent tampering.

Analyse des données d’auditAnalyzing audit data

Un analyste doit être en mesure d’accéder aux données brutes dans leur intégralité et dans leur forme d’origine.An analyst must be able to access the raw data in its entirety, in its original form. En plus de la nécessité de générer des rapports d’audit courants, les outils permettant d’analyser ces données sont susceptibles d’être spécialisés et maintenus à l’extérieur du système.Aside from the requirement to generate common audit reports, the tools for analyzing this data are likely to be specialized and kept external to the system.

Surveillance de l’utilisationUsage monitoring

La surveillance de l’utilisation suit la manière dont les fonctionnalités et les composants d’une application sont utilisés.Usage monitoring tracks how the features and components of an application are used. Un opérateur peut utiliser les données collectées pour :An operator can use the gathered data to:

  • Déterminer les fonctionnalités qui sont massivement utilisées et déterminer les zones réactives potentielles dans le système.Determine which features are heavily used and determine any potential hotspots in the system. Les éléments à trafic élevé peuvent tirer parti du partitionnement fonctionnel, voire de la réplication pour répartir la charge de manière plus uniforme.High-traffic elements might benefit from functional partitioning or even replication to spread the load more evenly. Un opérateur peut également utiliser ces informations pour déterminer les fonctionnalités rarement utilisées qui sont des candidats possibles à la suppression ou au remplacement dans une future version du système.An operator can also use this information to ascertain which features are infrequently used and are possible candidates for retirement or replacement in a future version of the system.

  • Obtenir des informations sur les événements opérationnels du système dans le cadre d’un fonctionnement normal.Obtain information about the operational events of the system under normal use. Par exemple, dans un site de commerce électronique, vous pouvez enregistrer les informations statistiques sur le nombre de transactions et le volume des clients qui en sont responsables.For example, in an e-commerce site, you can record the statistical information about the number of transactions and the volume of customers that are responsible for them. Ces informations peuvent être utilisées pour la planification de la capacité lorsque le nombre de clients augmente.This information can be used for capacity planning as the number of customers grows.

  • Détecter (peut-être indirectement) la satisfaction des utilisateurs grâce aux performances ou à la fonctionnalité du système.Detect (possibly indirectly) user satisfaction with the performance or functionality of the system. Par exemple, dans un système de commerce électronique, l’abandon régulier du panier par un grand nombre d’utilisateurs peut être dû à un problème lié à la fonctionnalité de validation.For example, if a large number of customers in an e-commerce system regularly abandon their shopping carts, this might be due to a problem with the checkout functionality.

  • Générer des informations de facturation.Generate billing information. Une application commerciale ou un service mutualisé peut facturer les clients pour les ressources qu’ils utilisent.A commercial application or multitenant service might charge customers for the resources that they use.

  • Appliquer des quotas.Enforce quotas. Si un utilisateur dans un système mutualisé dépasse son quota payant de temps de traitement ou d’utilisation de ressources pendant une période spécifiée, leur accès ou le traitement peuvent être limités.If a user in a multitenant system exceeds their paid quota of processing time or resource usage during a specified period, their access can be limited or processing can be throttled.

Conditions requises pour la surveillance de l’utilisationRequirements for usage monitoring

Pour examiner l’utilisation du système, un opérateur doit généralement consulter les informations suivantes :To examine system usage, an operator typically needs to see information that includes:

  • Le nombre de requêtes traitées par chaque sous-système et dirigées vers chaque ressource.The number of requests that are processed by each subsystem and directed to each resource.
  • Le travail effectué par chaque utilisateur.The work that each user is performing.
  • Le volume de stockage de données occupé par chaque utilisateur.The volume of data storage that each user occupies.
  • Les ressources auxquelles accède chaque utilisateur.The resources that each user is accessing.

Un opérateur doit également être en mesure de générer des graphiques.An operator should also be able to generate graphs. Par exemple, un graphique peut indiquer les utilisateurs les plus gourmands en ressources ou bien les ressources ou fonctionnalités système les plus fréquemment sollicitées.For example, a graph might display the most resource-hungry users, or the most frequently accessed resources or system features.

Sources de données, instrumentation et conditions de collecte de donnéesData sources, instrumentation, and data-collection requirements

Le suivi de l’utilisation peut être effectué à un niveau relativement élevé.Usage tracking can be performed at a relatively high level. Il peut indiquer l’heure de début et de fin de chaque requête, ainsi que la nature de la requête (lecture, écriture, etc., en fonction de la ressource en question).It can note the start and end times of each request and the nature of the request (read, write, and so on, depending on the resource in question). Vous pouvez obtenir ces informations en effectuant :You can obtain this information by:

  • Le suivi des activités des utilisateurs.Tracing user activity.
  • La capture des compteurs de performances qui mesurent l’utilisation de chaque ressource.Capturing performance counters that measure the utilization for each resource.
  • La surveillance de la consommation des ressources par chaque utilisateur.Monitoring the resource consumption by each user.

Aux fins de comptage, vous devez également être en mesure d’identifier les utilisateurs responsables de l’exécution des opérations et des ressources que ces opérations utilisent.For metering purposes, you also need to be able to identify which users are responsible for performing which operations, and the resources that these operations use. Les informations collectées doivent être suffisamment détaillées pour permettre une facturation précise.The gathered information should be detailed enough to enable accurate billing.

suivi des problèmesIssue tracking

Les clients et les autres utilisateurs peuvent signaler les problèmes si des événements ou un comportement inattendus se produisent dans le système.Customers and other users might report issues if unexpected events or behavior occurs in the system. Le suivi des problèmes s’attache à gérer ces problèmes, à les associer à des efforts visant à résoudre tous les problèmes sous-jacents dans le système et à informer les clients des résolutions possibles.Issue tracking is concerned with managing these issues, associating them with efforts to resolve any underlying problems in the system, and informing customers of possible resolutions.

Conditions requises pour le suivi des problèmesRequirements for issue tracking

Les opérateurs effectuent souvent le suivi des problèmes à l’aide d’un système distinct qui leur permet d’enregistrer et de rapporter les détails des problèmes signalés par les utilisateurs.Operators often perform issue tracking by using a separate system that enables them to record and report the details of problems that users report. Ces détails peuvent inclure les tâches que l’utilisateur tentait d’effectuer, les symptômes du problème, la séquence des événements et tout message d’erreur ou d’avertissement ayant été émis.These details can include the tasks that the user was trying to perform, symptoms of the problem, the sequence of events, and any error or warning messages that were issued.

Sources de données, instrumentation et conditions de collecte de donnéesData sources, instrumentation, and data-collection requirements

L’utilisateur ayant signalé le problème en premier lieu est la source de données initiale pour les données de suivi des problèmes.The initial data source for issue-tracking data is the user who reported the issue in the first place. Il peut être en mesure de fournir les données supplémentaires suivantes :The user might be able to provide additional data such as:

  • Un vidage sur incident (si l’application inclut un composant qui s’exécute sur le Bureau de l’utilisateur).A crash dump (if the application includes a component that runs on the user's desktop).
  • Un instantané d’écran.A screen snapshot.
  • La date et l’heure auxquelles l’erreur s’est produite, ainsi que toute autre information environnementale comme l’emplacement de l’utilisateur.The date and time when the error occurred, together with any other environmental information such as the user's location.

Ces informations peuvent contribuer aux efforts de débogage et permettre d’établir un backlog pour les versions futures du logiciel.This information can be used to help the debugging effort and help construct a backlog for future releases of the software.

Analyse des données de suivi des problèmesAnalyzing issue-tracking data

Différents utilisateurs peuvent signaler un même problème.Different users might report the same problem. Le système de suivi des problèmes doit associer des rapports communs.The issue-tracking system should associate common reports.

La progression de l’effort de débogage doit être enregistrée dans chaque rapport de problème.The progress of the debugging effort should be recorded against each issue report. Lorsque le problème est résolu, le client peut être informé de la solution.When the problem is resolved, the customer can be informed of the solution.

Si un utilisateur signale un problème dont la solution est connue dans le système de suivi des problèmes, l’opérateur doit pouvoir indiquer immédiatement la solution à l’utilisateur.If a user reports an issue that has a known solution in the issue-tracking system, the operator should be able to inform the user of the solution immediately.

Suivi des opérations et versions logicielles de débogageTracing operations and debugging software releases

Lorsqu’un utilisateur signale un problème, l’utilisateur n’est souvent conscient que de l’effet immédiat qu’il a sur ses opérations.When a user reports an issue, the user is often only aware of the immediate effect that it has on their operations. Il peut uniquement indiquer les résultats de sa propre expérience à un opérateur chargé de la maintenance du système.The user can only report the results of their own experience back to an operator who is responsible for maintaining the system. Ces expériences sont généralement un symptôme visible d’un ou de plusieurs problèmes fondamentaux.These experiences are usually just a visible symptom of one or more fundamental problems. Dans de nombreux cas, un analyste devra examiner en détail la chronologie des opérations sous-jacentes afin d’établir la cause première du problème.In many cases, an analyst will need to dig through the chronology of the underlying operations to establish the root cause of the problem. Ce processus est appelé analyse de la cause première.This process is called root cause analysis.

Notes

L’analyse de la cause première peut révéler des inefficacités dans la conception d’une application.Root cause analysis might uncover inefficiencies in the design of an application. Dans ces situations, il peut être possible de modifier les éléments concernés et de les déployer dans le cadre d’une version ultérieure.In these situations, it might be possible to rework the affected elements and deploy them as part of a subsequent release. Ce processus nécessite un contrôle prudent et les composants mis à jour doivent être étroitement surveillés.This process requires careful control, and the updated components should be monitored closely.

Conditions requises pour le suivi et le débogageRequirements for tracing and debugging

Pour le suivi d’événements inattendus et d’autres problèmes, il est essentiel que les données de surveillance fournissent suffisamment d’informations pour permettre à un analyste de retrouver l’origine de ces problèmes et de reconstruire la séquence des événements qui se sont produits.For tracing unexpected events and other problems, it's vital that the monitoring data provides enough information to enable an analyst to trace back to the origins of these issues and reconstruct the sequence of events that occurred. Ces informations doivent être suffisantes pour permettre à un analyste de diagnostiquer la cause première des problèmes.This information must be sufficient to enable an analyst to diagnose the root cause of any problems. Un développeur peut alors apporter les modifications nécessaires pour les empêcher de se reproduire.A developer can then make the necessary modifications to prevent them from recurring.

Sources de données, instrumentation et conditions de collecte de donnéesData sources, instrumentation, and data-collection requirements

La résolution des problèmes peut impliquer le suivi de toutes les méthodes (et de leurs paramètres) appelées dans le cadre d’une opération de création d’une arborescence illustrant le flux logique à travers le système quand un client effectue une requête spécifique.Troubleshooting can involve tracing all the methods (and their parameters) invoked as part of an operation to build up a tree that depicts the logical flow through the system when a customer makes a specific request. Les exceptions et les avertissements générés par le système en raison de ce flux doivent être capturés et consignés.Exceptions and warnings that the system generates as a result of this flow need to be captured and logged.

Pour prendre en charge le débogage, le système peut fournir des hooks qui permettent à un opérateur de capturer les informations d’état à des moments cruciaux dans le système.To support debugging, the system can provide hooks that enable an operator to capture state information at crucial points in the system. Le système peut également fournir des informations étape par étape détaillées à mesure que les opérations sélectionnées progressent.Or, the system can deliver detailed step-by-step information as selected operations progress. La capture des données à ce niveau de détail peut imposer une charge supplémentaire sur le système et doit être un processus temporaire.Capturing data at this level of detail can impose an additional load on the system and should be a temporary process. Un opérateur utilise ce processus principalement lorsqu’une série d’événements très rares se produit et s’avère difficile à répliquer, ou lorsqu’une publication d’un ou de plusieurs éléments dans un système requiert une surveillance minutieuse pour s’assurer que les éléments fonctionnent comme prévu.An operator uses this process mainly when a highly unusual series of events occurs and is difficult to replicate, or when a new release of one or more elements into a system requires careful monitoring to ensure that the elements function as expected.

Pipeline de surveillance et de diagnosticThe monitoring and diagnostics pipeline

La surveillance d’un système distribué à grande échelle constitue une difficulté importante.Monitoring a large-scale distributed system poses a significant challenge. Il convient de ne pas considérer nécessairement de manière isolée chacun des scénarios décrits dans la section précédente.Each of the scenarios described in the previous section should not necessarily be considered in isolation. Il existera vraisemblablement un chevauchement significatif des données de surveillance et de diagnostic requises pour chaque situation, bien que ces données puissent devoir être traitées et présentées de différentes manières.There is likely to be a significant overlap in the monitoring and diagnostic data that's required for each situation, although this data might need to be processed and presented in different ways. Pour ces raisons, vous devez adopter une approche holistique de la surveillance et du diagnostic.For these reasons, you should take a holistic view of monitoring and diagnostics.

Vous pouvez envisager l’ensemble du processus de surveillance et de diagnostic comme un pipeline qui comprend les étapes présentées à la figure 1.You can envisage the entire monitoring and diagnostics process as a pipeline that comprises the stages shown in Figure 1.

Étapes du pipeline de surveillance et de diagnostic

Figure 1 - Les étapes du pipeline de surveillance et de diagnostic.Figure 1 - The stages in the monitoring and diagnostics pipeline.

La figure 1 montre comment les données de surveillance et de diagnostic peuvent provenir de diverses sources de données.Figure 1 highlights how the data for monitoring and diagnostics can come from a variety of data sources. Les étapes d’instrumentation et de collecte portent sur l’identification des sources à partir desquelles les données doivent être capturées, la détermination des données à capturer, et la capture et la mise en forme de ces données afin de pouvoir les examiner facilement.The instrumentation and collection stages are concerned with identifying the sources from where the data needs to be captured, determining which data to capture, how to capture it, and how to format this data so that it can be easily examined. L’étape d’analyse et de diagnostic prend les données brutes et les utilise pour générer des informations pertinentes pouvant être utilisées par un opérateur afin de déterminer l’état du système.The analysis/diagnosis stage takes the raw data and uses it to generate meaningful information that an operator can use to determine the state of the system. L’opérateur peut utiliser ces informations pour prendre des décisions concernant les actions possibles à effectuer, puis réinjecter les résultats dans les étapes d’instrumentation et de collecte.The operator can use this information to make decisions about possible actions to take, and then feed the results back into the instrumentation and collection stages. L’étape de visualisation et d’alerte présente une vue utilisable de l’état du système.The visualization/alerting stage phase presents a consumable view of the system state. Elle permet d’afficher des informations en temps quasi réel à l’aide d’une série de tableaux de bord.It can display information in near real time by using a series of dashboards. Elle permet également de générer des rapports, des graphiques et des tableaux pour fournir une vue historique des données qui peut contribuer à l’identification des tendances à long terme.And it can generate reports, graphs, and charts to provide a historical view of the data that can help identify long-term trends. Si les informations montrent qu’un indicateur KPI est susceptible de dépasser les limites acceptables, cette étape peut également déclencher une alerte destinée à un opérateur.If information indicates that a KPI is likely to exceed acceptable bounds, this stage can also trigger an alert to an operator. Dans certains cas, une alerte peut également servir à déclencher un processus automatisé qui tente de prendre des mesures correctives, telles que la mise à l’échelle automatique.In some cases, an alert can also be used to trigger an automated process that attempts to take corrective actions, such as autoscaling.

Notez que ces étapes constituent un processus de flux continu dans lequel les étapes s’effectuent en parallèle.Note that these steps constitute a continuous-flow process where the stages are happening in parallel. Dans l’idéal, toutes les étapes doivent être configurables de manière dynamique.Ideally, all the phases should be dynamically configurable. À certains moments, notamment lorsqu’un système a été récemment déployé ou rencontre des problèmes, il peut être nécessaire de rassembler des données étendues plus fréquemment.At some points, especially when a system has been newly deployed or is experiencing problems, it might be necessary to gather extended data on a more frequent basis. À d’autres moments, il doit être possible de revenir à la capture d’un niveau de base d’informations essentielles pour vérifier que le système fonctionne correctement.At other times, it should be possible to revert to capturing a base level of essential information to verify that the system is functioning properly.

En outre, l’ensemble du processus de surveillance doit être considéré comme une solution dynamique et continue soumise à des ajustements et à des améliorations à la suite de commentaires.Additionally, the entire monitoring process should be considered a live, ongoing solution that's subject to fine-tuning and improvements as a result of feedback. Par exemple, vous pouvez commencer par mesurer de nombreux facteurs pour déterminer l’intégrité du système.For example, you might start with measuring many factors to determine system health. Au fil du temps, l’analyse peut entraîner un perfectionnement alors que vous ignorez les mesures qui ne sont pas pertinentes, ce qui vous permet de vous consacrer plus précisément aux données dont vous avez besoin tout en réduisant les bruits de fond.Analysis over time might lead to a refinement as you discard measures that aren't relevant, enabling you to more precisely focus on the data that you need while minimizing background noise.

Sources des données de surveillance et de diagnosticSources of monitoring and diagnostic data

Les informations utilisées par le processus de surveillance peuvent provenir de plusieurs sources, comme illustré dans la figure 1.The information that the monitoring process uses can come from several sources, as illustrated in Figure 1. Au niveau de l’application, les informations proviennent des journaux d’activité de suivi incorporés au code du système.At the application level, information comes from trace logs incorporated into the code of the system. Les développeurs doivent suivre une approche standard pour effectuer le suivi du flux de contrôle via leur code.Developers should follow a standard approach for tracking the flow of control through their code. Par exemple, une entrée dans une méthode peut émettre un message de suivi qui spécifie le nom de la méthode, l’heure actuelle, la valeur de chaque paramètre et toute autre information pertinente.For example, an entry to a method can emit a trace message that specifies the name of the method, the current time, the value of each parameter, and any other pertinent information. Enregistrer l’heure d’entrée et de sortie peut également s’avérer utile.Recording the entry and exit times can also prove useful.

Vous devez consigner l’ensemble des exceptions et avertissements, et veiller à conserver une trace complète des exceptions et avertissements imbriqués.You should log all exceptions and warnings, and ensure that you retain a full trace of any nested exceptions and warnings. Dans l’idéal, vous devez également capturer les informations permettant d’identifier l’utilisateur qui exécute le code, ainsi que les informations de corrélation d’activité (pour suivre les requêtes lorsqu’elles passent par le système).Ideally, you should also capture information that identifies the user who is running the code, together with activity correlation information (to track requests as they pass through the system). Vous devez également consigner les tentatives d’accès à toutes les ressources telles que les files d’attente de messages, les bases de données, les fichiers et les autres services dépendants.And you should log attempts to access all resources such as message queues, databases, files, and other dependent services. Ces informations peuvent être utilisées à des fins d’audit et de contrôle.This information can be used for metering and auditing purposes.

De nombreuses applications utilisent des bibliothèques et des cadres pour effectuer des tâches courantes telles que l’accès à un magasin de données ou la communication sur un réseau.Many applications use libraries and frameworks to perform common tasks such as accessing a data store or communicating over a network. Ces infrastructures peuvent être configurables pour renvoyer leurs propres messages de suivi et les informations de diagnostic brutes, comme les taux de transactions ainsi que les réussites et échecs de transmission de données.These frameworks might be configurable to provide their own trace messages and raw diagnostic information, such as transaction rates and data transmission successes and failures.

Notes

Nombre d’infrastructures modernes publient automatiquement les événements de performances et de suivi.Many modern frameworks automatically publish performance and trace events. La capture de ces informations dépend simplement de la mise à disposition d’un moyen de les récupérer et de les stocker où elles pourront ensuite être traitées et analysées.Capturing this information is simply a matter of providing a means to retrieve and store it where it can be processed and analyzed.

Le système d’exploitation sur lequel s’exécute l’application peut être une source d’informations de niveau inférieur à l’échelle du système, telle que les compteurs de performances qui indiquent les vitesses d’E/S, ainsi que l’utilisation de la mémoire et du processeur.The operating system where the application is running can be a source of low-level system-wide information, such as performance counters that indicate I/O rates, memory utilization, and CPU usage. Les erreurs du système d’exploitation (par exemple, l’impossibilité d’ouvrir un fichier correctement) peuvent également être signalées.Operating system errors (such as the failure to open a file correctly) might also be reported.

Vous devez également tenir compte de l’infrastructure et des composants sous-jacents sur lesquels s’exécute le système.You should also consider the underlying infrastructure and components on which your system runs. Les machines virtuelles, les réseaux virtuels et les services de stockage peuvent tous être des sources importantes de données de compteurs de performances au niveau de l’infrastructure et d’autres données de diagnostic.Virtual machines, virtual networks, and storage services can all be sources of important infrastructure-level performance counters and other diagnostic data.

Si votre application utilise d’autres services externes, tels qu’un serveur web ou un système de gestion de base de données, ces services peuvent publier leurs propres informations de suivi, journaux d’activité et compteurs de performance.If your application uses other external services, such as a web server or database management system, these services might publish their own trace information, logs, and performance counters. Les exemples incluent des vues de gestion dynamique SQL Server pour le suivi des opérations effectuées sur une base de données SQL Server et les journaux d’activité de suivi IIS pour l’enregistrement des requêtes adressées à un serveur web.Examples include SQL Server Dynamic Management Views for tracking operations performed against a SQL Server database, and IIS trace logs for recording requests made to a web server.

Comme les composants d’un système sont modifiés et que de nouvelles versions sont déployées, il est important de pouvoir attribuer des problèmes, des événements et des métriques à chaque version.As the components of a system are modified and new versions are deployed, it's important to be able to attribute issues, events, and metrics to each version. Ces informations doivent être liées au pipeline de version afin que les problèmes avec une version spécifique d’un composant puissent être suivis rapidement et corrigés.This information should be tied back to the release pipeline so that problems with a specific version of a component can be tracked quickly and rectified.

Des problèmes de sécurité peuvent se produire à tout moment dans le système.Security issues might occur at any point in the system. Par exemple, un utilisateur peut tenter de se connecter avec un identifiant utilisateur ou un mot de passe non valides.For example, a user might attempt to sign in with an invalid user ID or password. Un utilisateur authentifié peut essayer d’obtenir un accès non autorisé à une ressourceAn authenticated user might try to obtain unauthorized access to a resource. ou un utilisateur peut fournir une clé non valide ou obsolète pour accéder à des informations chiffrées.Or a user might provide an invalid or outdated key to access encrypted information. Des informations relatives à la sécurité pour les demandes réussies et échouées doivent toujours être consignées.Security-related information for successful and failing requests should always be logged.

La section Instrumentation d’une application contient davantage de conseils sur les informations que vous devez capturer,The section Instrumenting an application contains more guidance on the information that you should capture. mais vous pouvez utiliser de nombreuses stratégies pour rassembler ces informations :But you can use a variety of strategies to gather this information:

  • Surveillance de l’application/du système.Application/system monitoring. Cette stratégie utilise des sources internes au sein de l’application, l’infrastructure de l’application, le système d’exploitation et l’infrastructure.This strategy uses internal sources within the application, application frameworks, operating system, and infrastructure. Le code de l’application peut générer ses propres données de surveillance à des points notables pendant le cycle de vie d’une requête client.The application code can generate its own monitoring data at notable points during the lifecycle of a client request. L’application peut inclure des instructions de suivi qui peuvent être activées ou désactivées de manière sélective selon les cas.The application can include tracing statements that might be selectively enabled or disabled as circumstances dictate. Il peut être également possible d’injecter des diagnostics dynamiquement à l’aide d’une infrastructure de diagnostics.It might also be possible to inject diagnostics dynamically by using a diagnostics framework. Ces infrastructures fournissent généralement des plug-in qui peuvent se fixer à divers points d’instrumentation de votre code et capturer les données de suivi à ces points.These frameworks typically provide plug-ins that can attach to various instrumentation points in your code and capture trace data at these points.

    En outre, votre code et/ou l’infrastructure sous-jacente peuvent déclencher des événements à des points critiques.Additionally, your code and/or the underlying infrastructure might raise events at critical points. Les agents de surveillance configurés pour écouter ces événements peuvent enregistrer les informations sur ces événements.Monitoring agents that are configured to listen for these events can record the event information.

  • Surveillance des utilisateurs réels.Real user monitoring. Cette approche enregistre les interactions entre un utilisateur et l’application, et observe le flux de chaque demande et réponse.This approach records the interactions between a user and the application and observes the flow of each request and response. Ces informations peuvent avoir un objectif double : elles peuvent servir pour l’utilisation du contrôle par chaque utilisateur et pour déterminer si les utilisateurs reçoivent une qualité de service satisfaisante (par exemple, temps de réponse rapides, faible latence et erreurs minimales).This information can have a two-fold purpose: it can be used for metering usage by each user, and it can be used to determine whether users are receiving a suitable quality of service (for example, fast response times, low latency, and minimal errors). Vous pouvez utiliser les données capturées pour identifier les zones préoccupantes dans lesquelles les échecs se produisent le plus souvent.You can use the captured data to identify areas of concern where failures occur most often. Vous pouvez également les utiliser pour identifier les éléments dans lesquels le système ralentit, probablement en raison de points d’accès dans l’application ou d’une autre forme de goulot d’étranglement.You can also use the data to identify elements where the system slows down, possibly due to hotspots in the application or some other form of bottleneck. Si vous implémentez cette approche avec soin, il peut être possible de reconstruire les flux des utilisateurs via l’application à des fins de débogage et de test.If you implement this approach carefully, it might be possible to reconstruct users' flows through the application for debugging and testing purposes.

    Important

    Vous devez savoir que les données capturées en surveillant les utilisateurs réels peuvent être très sensibles, car elles peuvent contenir des éléments confidentiels.You should consider the data that's captured by monitoring real users to be highly sensitive because it might include confidential material. Si vous enregistrez des données capturées, stockez-les en toute sécurité.If you save captured data, store it securely. Si vous souhaitez utiliser les données à des fins de surveillance des performances ou de débogage, commencez par supprimer toutes les informations d’identification personnelle.If you want to use the data for performance monitoring or debugging purposes, strip out all personally identifiable information first.

  • Surveillance des utilisateurs synthétiques.Synthetic user monitoring. Avec cette approche, vous écrivez votre propre client de test qui simule un utilisateur et exécute une série configurable, mais classique, d’opérations.In this approach, you write your own test client that simulates a user and performs a configurable but typical series of operations. Vous pouvez suivre les performances du client de test afin de déterminer l’état du système.You can track the performance of the test client to help determine the state of the system. Vous pouvez également utiliser plusieurs instances du client de test dans le cadre d’une opération de test de charge pour définir la réponse du système en situation de contrainte et le type de sortie de surveillance généré dans ces conditions.You can also use multiple instances of the test client as part of a load-testing operation to establish how the system responds under stress, and what sort of monitoring output is generated under these conditions.

    Notes

    Vous pouvez implémenter une surveillance des utilisateurs réels et synthétiques en incluant du code qui suit et chronomètre l’exécution des appels de méthode et des autres parties critiques d’une application.You can implement real and synthetic user monitoring by including code that traces and times the execution of method calls and other critical parts of an application.

  • Profilage.Profiling. Cette approche est principalement destinée à la surveillance et l’amélioration des performances de l’application.This approach is primarily targeted at monitoring and improving application performance. Au lieu d’opérer au niveau fonctionnel de la surveillance des utilisateurs réels et synthétiques, elle capture des informations de niveau inférieur pendant l’exécution de l’application.Rather than operating at the functional level of real and synthetic user monitoring, it captures lower-level information as the application runs. Vous pouvez implémenter le profilage en utilisant un échantillonnage périodique de l’état d’exécution d’une application (en déterminant la partie du code exécutée par l’application à un moment donné dans le temps).You can implement profiling by using periodic sampling of the execution state of an application (determining which piece of code that the application is running at a given point in time). Vous pouvez également utiliser l’instrumentation qui insère des sondes dans le code aux moments importants (par exemple, au début et à la fin d’un appel de méthode) et enregistre les méthodes qui ont été appelées, l’heure des appels ainsi que leur durée.You can also use instrumentation that inserts probes into the code at important junctures (such as the start and end of a method call) and records which methods were invoked, at what time, and how long each call took. Vous pouvez ensuite analyser ces données pour déterminer les parties de l’application qui peuvent causer des problèmes de performances.You can then analyze this data to determine which parts of the application might cause performance problems.

  • Surveillance des points de terminaison.Endpoint monitoring. Cette technique utilise un ou plusieurs points de terminaison de diagnostics exposés par l’application spécifiquement pour permettre la surveillance.This technique uses one or more diagnostic endpoints that the application exposes specifically to enable monitoring. Un point de terminaison fournit un chemin d’accès au code de l’application et peut renvoyer des informations sur l’intégrité du système.An endpoint provides a pathway into the application code and can return information about the health of the system. Des points de terminaison différents peuvent se concentrer sur divers aspects de la fonctionnalité.Different endpoints can focus on various aspects of the functionality. Vous pouvez écrire votre propre client de diagnostic qui envoie des demandes périodiques à ces points de terminaison et assimiler les réponses.You can write your own diagnostics client that sends periodic requests to these endpoints and assimilate the responses. Pour plus d’informations, consultez le modèle de surveillance des points d’end dela santé .For more information, see the Health Endpoint Monitoring pattern.

Pour une couverture maximale, vous devez utiliser une combinaison de ces techniques.For maximum coverage, you should use a combination of these techniques.

Instrumentation d’une applicationInstrumenting an application

L’instrumentation est un élément essentiel du processus de surveillance.Instrumentation is a critical part of the monitoring process. Vous pouvez prendre des décisions judicieuses sur les performances et l’intégrité d’un système uniquement si vous capturez tout d’abord les données qui vous permettent de prendre ces décisions.You can make meaningful decisions about the performance and health of a system only if you first capture the data that enables you to make these decisions. Les informations que vous collectez à l’aide de l’instrumentation doivent être suffisantes pour vous permettre d’évaluer les performances, de diagnostiquer les problèmes et de prendre des décisions sans avoir besoin de vous connecter à un serveur de production distant pour effectuer manuellement le suivi (et le débogage).The information that you gather by using instrumentation should be sufficient to enable you to assess performance, diagnose problems, and make decisions without requiring you to sign in to a remote production server to perform tracing (and debugging) manually. Les données d’instrumentation comprennent généralement des métriques et des informations écrites dans les journaux d’activité de suivi.Instrumentation data typically comprises metrics and information that's written to trace logs.

Le contenu d’un journal de suivi peut être le résultat des données textuelles écrites par l’application ou des données binaires qui sont créées à la suite d’un événement de suivi (si l’application utilise Suivi d’événements pour Windows [ETW]).The contents of a trace log can be the result of textual data that's written by the application or binary data that's created as the result of a trace event (if the application is using Event Tracing for Windows--ETW). Il peut également être généré à partir des journaux d’activité système qui enregistrent les événements provenant des parties de l’infrastructure, un serveur web par exemple.They can also be generated from system logs that record events arising from parts of the infrastructure, such as a web server. Les messages textuels du journal sont souvent conçus pour être lisibles, mais ils doivent également être écrits dans un format facilement analysable par un système automatisé.Textual log messages are often designed to be human-readable, but they should also be written in a format that enables an automated system to parse them easily.

Vous devez également classer les journaux d’activité.You should also categorize logs. N’écrivez pas toutes les données de suivi dans un seul journal, mais utilisez des journaux d’activité distincts pour enregistrer la sortie de suivi des différents aspects opérationnels du système.Don't write all trace data to a single log, but use separate logs to record the trace output from different operational aspects of the system. Vous pouvez alors filtrer rapidement les messages du journal par lecture du journal approprié au lieu de traiter un seul fichier long.You can then quickly filter log messages by reading from the appropriate log rather than having to process a single lengthy file. Ne jamais consigner des informations ayant des exigences de sécurité différentes (telles que les informations d’audit et les données de débogage) dans le même journal.Never write information that has different security requirements (such as audit information and debugging data) to the same log.

Notes

Un journal peut être implémenté en tant que fichier dans le système de fichiers. Il peut également être conservé dans un autre format comme un objet blob dans le stockage d’objets blob.A log might be implemented as a file on the file system, or it might be held in some other format, such as a blob in blob storage. Les informations du journal peuvent également être conservées dans un stockage structuré, comme des lignes dans un tableau.Log information might also be held in more structured storage, such as rows in a table.

Généralement, les métriques sont une mesure ou un nombre d’aspects ou de ressources dans le système à un moment donné avec une ou plusieurs balises ou dimensions associées (parfois appelées échantillon).Metrics will generally be a measure or count of some aspect or resource in the system at a specific time, with one or more associated tags or dimensions (sometimes called a sample). Une seule instance d’une métrique n’est généralement pas utile isolément.A single instance of a metric is usually not useful in isolation. Les métriques doivent plutôt être capturées au fil du temps.Instead, metrics have to be captured over time. La question clé à examiner concerne le choix des métriques à enregistrer et la fréquence d’enregistrement.The key issue to consider is which metrics you should record and how frequently. Trop souvent, la génération des données pour les métriques impose une charge supplémentaire importante sur le système, alors que la capture des métriques vous fera rarement manquer les circonstances qui entraînent un événement important.Generating data for metrics too often can impose a significant additional load on the system, whereas capturing metrics infrequently might cause you to miss the circumstances that lead to a significant event. Cet examen varie d’une métrique à l’autre.The considerations will vary from metric to metric. Par exemple, l’utilisation du processeur sur un serveur peut varier considérablement d’une seconde à l’autre, mais une utilisation élevée ne devient un problème que lorsqu’elle se prolonge sur plusieurs minutes.For example, CPU utilization on a server might vary significantly from second to second, but high utilization becomes an issue only if it's long-lived over a number of minutes.

Informations pour la corrélation des donnéesInformation for correlating data

Vous pouvez facilement surveiller les compteurs de performances individuels au niveau du système, capturer les métriques correspondant aux ressources et obtenir des informations de traçage d’application à partir de différents fichiers journaux.You can easily monitor individual system-level performance counters, capture metrics for resources, and obtain application trace information from various log files. Néanmoins, certaines formes de surveillance nécessitent la phase d’analyse et de diagnostic dans le pipeline de surveillance pour mettre en corrélation les données récupérées à partir de plusieurs sources.But some forms of monitoring require the analysis and diagnostics stage in the monitoring pipeline to correlate the data that's retrieved from several sources. Ces données peuvent prendre plusieurs formes dans les données brutes, et le processus d’analyse doit être fourni avec des données d’instrumentation suffisantes pour pouvoir mapper ces différentes formes.This data might take several forms in the raw data, and the analysis process must be provided with sufficient instrumentation data to be able to map these different forms. Par exemple, au niveau de l’infrastructure d’application, une tâche peut être identifiée par un ID de thread.For example, at the application framework level, a task might be identified by a thread ID. Dans une application, la même tâche peut être associée à l’identifiant de l’utilisateur qui l’effectue.Within an application, the same work might be associated with the user ID for the user who is performing that task.

D’autre part, un mappage 1:1 entre les threads et les requêtes utilisateur est peu probable, car les opérations asynchrones peuvent réutiliser les mêmes threads pour effectuer des opérations pour le compte de plusieurs utilisateurs.Also, there's unlikely to be a 1:1 mapping between threads and user requests, because asynchronous operations might reuse the same threads to perform operations on behalf of more than one user. Pour compliquer davantage les choses, une seule requête peut être gérée par plusieurs threads durant le déroulement de l’exécution dans le système.To complicate matters further, a single request might be handled by more than one thread as execution flows through the system. Si possible, associez chaque requête à un ID d’activité unique qui est propagé dans le système dans le contexte de la requête.If possible, associate each request with a unique activity ID that's propagated through the system as part of the request context. (La technique utilisée pour générer et inclure des ID d’activité dans les informations de traçage dépend de la technologie utilisée pour la capture des données de suivi).(The technique for generating and including activity IDs in trace information depends on the technology that's used to capture the trace data.)

Toutes les données de surveillance doivent être réduits en temps de la même manière.All monitoring data should be timestamped in the same way. Pour des raisons de cohérence, il est nécessaire d’enregistrer toutes les dates et heures en utilisant le temps universel coordonné.For consistency, record all dates and times by using Coordinated Universal Time. Cela vous permettra de suivre plus facilement des séquences d’événements.This will help you more easily trace sequences of events.

Notes

Il se peut que les ordinateurs qui fonctionnent dans différents fuseaux horaires et réseaux ne soient pas synchronisés.Computers operating in different time zones and networks might not be synchronized. Ne dépendez pas de l’utilisation de timestamps seul pour corréler les données d’instrumentation qui s’étend sur plusieurs machines.Don't depend on using timestamps alone for correlating instrumentation data that spans multiple machines.

Informations à inclure dans les données d’instrumentationInformation to include in the instrumentation data

Lorsque vous décidez des données d’instrumentation à collecter, tenez compte des points suivants :Consider the following points when you're deciding which instrumentation data you need to collect:

  • Vérifiez que les informations capturées par les événements de suivi sont lisibles par l’homme et la machine.Make sure that information captured by trace events is machine and human readable. Adoptez des schémas clairement définis pour ces informations afin de faciliter le traitement automatisé des données des journaux d’activité entre les systèmes, et d’assurer la cohérence pour le personnel des opérations et technique qui lit les journaux d’activité.Adopt well-defined schemas for this information to facilitate automated processing of log data across systems, and to provide consistency to operations and engineering staff reading the logs. Inclure des informations environnementales, telles que l’environnement de déploiement, l’ordinateur sur lequel le processus s’exécute, les détails du processus et la pile des appels.Include environmental information, such as the deployment environment, the machine on which the process is running, the details of the process, and the call stack.

  • Activez le profilage uniquement en cas de nécessité, car il peut imposer une surcharge significative sur le système.Enable profiling only when necessary because it can impose a significant overhead on the system. Le profilage effectué à l’aide de l’instrumentation enregistre un événement (tel qu’un appel de méthode) chaque fois qu’il se produit, tandis que l’échantillonnage n’enregistre que les événements sélectionnés.Profiling by using instrumentation records an event (such as a method call) every time it occurs, whereas sampling records only selected events. La sélection peut être basée sur le temps (une fois toutes les n secondes) ou sur la fréquence (une fois toutes les n requêtes).The selection can be time-based (once every n seconds), or frequency-based (once every n requests). Si des événements se produisent très fréquemment, le profilage par instrumentation peut occasionner une charge trop lourde et affecter les performances globales.If events occur very frequently, profiling by instrumentation might cause too much of a burden and itself affect overall performance. Dans ce cas, l’approche par échantillonnage peut être préférable.In this case, the sampling approach might be preferable. Toutefois, si les événements se produisent peu fréquemment, l’échantillonnage risque de les manquer.However, if the frequency of events is low, sampling might miss them. Le cas échéant, l’instrumentation peut constituer la meilleure approche.In this case, instrumentation might be the better approach.

  • Fournir un contexte suffisant pour permettre à un développeur ou un administrateur de déterminer la source de chaque demande.Provide sufficient context to enable a developer or administrator to determine the source of each request. Cela peut inclure une forme d’ID d’activité qui identifie une instance spécifique d’une requête.This might include some form of activity ID that identifies a specific instance of a request. Cela peut également contenir des informations qui permettent de mettre en corrélation cette activité avec le travail de calcul effectué et les ressources utilisées.It might also include information that can be used to correlate this activity with the computational work performed and the resources used. Notez que ce travail peut franchir les limites de processus et d’ordinateur.Note that this work might cross process and machine boundaries. Pour le contrôle, le contexte doit également inclure (directement ou indirectement via d’autres informations mises en corrélation) une référence au client qui a provoqué la formulation de la requête.For metering, the context should also include (either directly or indirectly via other correlated information) a reference to the customer who caused the request to be made. Ce contexte fournit de précieuses informations sur l’état de l’application au moment de la capture des données de surveillance.This context provides valuable information about the application state at the time that the monitoring data was captured.

  • Enregistrer toutes les demandes, ainsi que les emplacements ou les régions à partir desquels ces demandes sont effectuées.Record all requests, and the locations or regions from which these requests are made. Ces informations peuvent aider à déterminer s’il existe des points d’accès propres à l’emplacement.This information can assist in determining whether there are any location-specific hotspots. Elles peuvent également être utiles pour déterminer s’il convient de repartitionner une application ou les données qu’elle utilise.This information can also be useful in determining whether to repartition an application or the data that it uses.

  • Enregistrer et capturer les détails des exceptions avec soin.Record and capture the details of exceptions carefully. Les informations critiques de débogage sont souvent perdues à la suite d’une mauvaise gestion des exceptions.Often, critical debug information is lost as a result of poor exception handling. Capturez les détails complets des exceptions levées par l’application, notamment les exceptions internes et autres informations de contexte.Capture the full details of exceptions that the application throws, including any inner exceptions and other context information. Incluez si possible la pile des appels.Include the call stack if possible.

  • Soyez cohérent dans les données que les différents éléments de votre application capturent, car cela peut vous permettre d’analyser les événements et de les mettre en corrélation avec les requêtes utilisateur.Be consistent in the data that the different elements of your application capture, because this can assist in analyzing events and correlating them with user requests. Préférez recourir à un package de journalisation complet et configurable pour collecter des informations plutôt que de dépendre de développeurs adoptant la même approche lorsqu’ils implémentent différentes parties du système.Consider using a comprehensive and configurable logging package to gather information, rather than depending on developers to adopt the same approach as they implement different parts of the system. Collecter les données à partir des compteurs de performance clés, tels que le volume d’E/S effectué, l’utilisation du réseau, le nombre de demandes, l’utilisation de la mémoire et du processeur.Gather data from key performance counters, such as the volume of I/O being performed, network utilization, number of requests, memory use, and CPU utilization. Certains services d’infrastructure peuvent fournir leurs propres compteurs de performances spécifiques, comme le nombre de connexions à une base de données, la vitesse à laquelle les transactions sont effectuées et le nombre de transactions qui réussissent ou échouent.Some infrastructure services might provide their own specific performance counters, such as the number of connections to a database, the rate at which transactions are being performed, and the number of transactions that succeed or fail. Les applications peuvent également définir leurs propres compteurs de performance spécifiques.Applications might also define their own specific performance counters.

  • Consignez tous les appels effectués vers des services externes, comme les systèmes de base de données, les services web ou d’autres services au niveau du système qui font partie de l’infrastructure.Log all calls made to external services, such as database systems, web services, or other system-level services that are part of the infrastructure. Enregistrer les informations sur le temps nécessaire pour réaliser chaque appel et la réussite ou l’échec de l’appel.Record information about the time taken to perform each call, and the success or failure of the call. Si possible, capturer les informations sur toutes les nouvelles tentatives et les échecs pour toutes les erreurs temporaires se produisant.If possible, capture information about all retry attempts and failures for any transient errors that occur.

Garantir la compatibilité avec les systèmes de télémétrieEnsuring compatibility with telemetry systems

Dans de nombreux cas, les informations générées par l’instrumentation le sont sous la forme d’une série d’événements, puis transmises à un système de télémétrie distinct pour le traitement et l’analyse.In many cases, the information that instrumentation produces is generated as a series of events and passed to a separate telemetry system for processing and analysis. Un système de télémétrie est généralement indépendant de toute application ou technologie spécifique, mais s’attend à ce que les informations respectent un format spécifique, généralement défini par un schéma.A telemetry system is typically independent of any specific application or technology, but it expects information to follow a specific format that's usually defined by a schema. Le schéma spécifie en fait un contrat qui définit les champs et les types de données que peut recevoir le système de télémétrie.The schema effectively specifies a contract that defines the data fields and types that the telemetry system can ingest. Le schéma doit être généralisé pour autoriser les données reçues à partir de diverses plates-formes et périphériques.The schema should be generalized to allow for data arriving from a range of platforms and devices.

Un schéma commun doit inclure les champs qui sont communs à tous les événements d’instrumentation, tels que le nom de l’événement, l’heure de l’événement, l’adresse IP de l’expéditeur et les détails nécessaires pour la mise en corrélation avec d’autres événements (par exemple un identifiant utilisateur, un ID de périphérique et un ID de l’application).A common schema should include fields that are common to all instrumentation events, such as the event name, the event time, the IP address of the sender, and the details that are required for correlating with other events (such as a user ID, a device ID, and an application ID). N’oubliez pas qu’un nombre quelconque de périphériques peut déclencher des événements ; le schéma ne doit donc dépendre du type de périphérique.Remember that any number of devices might raise events, so the schema should not depend on the device type. En outre, différents périphériques peuvent déclencher des événements pour une même application. L’application peut prendre en charge l’itinérance ou toute autre forme de distribution inter-périphériques.Additionally, various devices might raise events for the same application; the application might support roaming or some other form of cross-device distribution.

Le schéma peut également inclure des champs de domaine qui sont pertinents pour un scénario particulier commun entre différentes applications.The schema might also include domain fields that are relevant to a particular scenario that's common across different applications. Il peut s’agir d’informations sur les exceptions, sur les événements de début et de fin d’application et sur la réussite et/ou l’échec des appels d’API de service web.This might be information about exceptions, application start and end events, and success and/or failure of web service API calls. Toutes les applications qui utilisent le même ensemble de champs de domaine doivent émettre le même jeu d’événements, permettant de créer un ensemble de rapports et d’analyses communs.All applications that use the same set of domain fields should emit the same set of events, enabling a set of common reports and analytics to be built.

Enfin, un schéma peut contenir des champs personnalisés pour capturer les détails des événements propres à l’application.Finally, a schema might contain custom fields for capturing the details of application-specific events.

Meilleures pratiques pour l’instrumentation d’applicationsBest practices for instrumenting applications

La liste suivante récapitule les meilleures pratiques pour l’instrumentation d’une application distribuée fonctionnelle dans le cloud.The following list summarizes best practices for instrumenting a distributed application running in the cloud.

  • Faciliter la lecture et l’analyse des journaux d’activité.Make logs easy to read and easy to parse. Utiliser une journalisation structurée dès que possible.Use structured logging where possible. Être concis et descriptif dans les messages de journal.Be concise and descriptive in log messages.

  • Dans tous les journaux d’activité, identifier la source et fournir le contexte et les informations de minutage à mesure que chaque enregistrement est écrit.In all logs, identify the source and provide context and timing information as each log record is written.

  • Utilisez le même fuseau horaire et le même format pour tous les timetamps.Use the same time zone and format for all timestamps. Cela vous aidera à mettre en corrélation des événements pour les opérations qui s’étendent sur le matériel et les services fonctionnant dans différentes régions géographiques.This will help to correlate events for operations that span hardware and services running in different geographic regions.

  • Classer les journaux d’activité et écrire des messages dans le fichier journal approprié.Categorize logs and write messages to the appropriate log file.

  • Ne pas divulguer d’informations sensibles sur le système ou les informations personnelles des utilisateurs.Do not disclose sensitive information about the system or personal information about users. Nettoyer ces informations avant qu’elles ne soient consignées, mais s’assurer que les détails pertinents sont conservés.Scrub this information before it's logged, but ensure that the relevant details are retained. Par exemple, supprimer l’ID et le mot de passe des chaînes de connexion des base de données, mais écrire les informations restantes dans le journal afin qu’un analyste puisse déterminer que le système accède correctement à la base de données.For example, remove the ID and password from any database connection strings, but write the remaining information to the log so that an analyst can determine that the system is accessing the correct database. Enregistrer toutes les exceptions critiques, mais permettre à l’administrateur d’activer et de désactiver la journalisation pour les niveaux inférieurs d’exceptions et d’avertissements.Log all critical exceptions, but enable the administrator to turn logging on and off for lower levels of exceptions and warnings. En outre, capturer et enregistrer toutes les informations de logique de nouvelle tentative.Also, capture and log all retry logic information. Ces données peuvent être utiles pour la surveillance de l’intégrité temporaire du système.This data can be useful in monitoring the transient health of the system.

  • Suivre les appels hors processus, comme les requêtes vers des services web externes ou des bases de données.Trace out of process calls, such as requests to external web services or databases.

  • Ne pas associer des messages de journal ayant des exigences de sécurité différentes dans un même fichier journal.Don't mix log messages with different security requirements in the same log file. Par exemple, ne pas écrire d’informations de débogage et d’audit dans le même journal.For example, don't write debug and audit information to the same log.

  • À l’exception des événements d’audit, s’assurer que tous les appels de journalisation sont des opérations de type fire-and-forget qui ne bloquent pas la progression des opérations de l’entreprise.With the exception of auditing events, make sure that all logging calls are fire-and-forget operations that do not block the progress of business operations. Les événements d’audit sont exceptionnels, car ils sont essentiels pour l’entreprise et peuvent être classés comme un élément fondamental des opérations de l’entreprise.Auditing events are exceptional because they are critical to the business and can be classified as a fundamental part of business operations.

  • Vérifier que la journalisation est extensible et qu’elle n’a aucune dépendance directe vis-à-vis d’une cible concrète.Make sure that logging is extensible and does not have any direct dependencies on a concrete target. Par exemple, plutôt que d’écrire des informations à l’aide de System.Diagnostics.Trace, définir une interface abstraite (telle que ILogger) qui expose des méthodes de journalisation et qui peut être implémentée par tout moyen approprié.For example, rather than writing information by using System.Diagnostics.Trace, define an abstract interface (such as ILogger) that exposes logging methods and that can be implemented through any appropriate means.

  • S’assurer que la journalisation est valide et ne déclenche pas d’erreurs en cascade.Make sure that all logging is fail-safe and never triggers any cascading errors. La journalisation ne doit lancer aucune exception.Logging must not throw any exceptions.

  • Traiter l’instrumentation comme un processus itératif continu et examiner régulièrement les journaux d’activité, pas uniquement en cas de problème.Treat instrumentation as an ongoing iterative process and review logs regularly, not just when there is a problem.

Collecte et stockage des donnéesCollecting and storing data

La phase de collecte du processus de surveillance vise à récupérer les informations générées par l’instrumentation, à formater ces données afin de les rendre plus faciles à utiliser lors de la phase d’analyse/de diagnostic et à enregistrer les données transformées dans un stockage fiable.The collection stage of the monitoring process is concerned with retrieving the information that instrumentation generates, formatting this data to make it easier for the analysis/diagnosis stage to consume, and saving the transformed data in reliable storage. Les données d’instrumentation que vous collectez à partir des différentes parties d’un système distribué peuvent être conservées dans divers emplacements et avec des formats différents.The instrumentation data that you gather from different parts of a distributed system can be held in a variety of locations and with varying formats. Par exemple, votre code d’application peut générer des fichiers journaux de suivi et générer des données de journal des événements d’application, tandis que les compteurs de performances qui surveillent les principaux aspects de l’infrastructure utilisés par votre application peuvent être capturés via d’autres technologies.For example, your application code might generate trace log files and generate application event log data, whereas performance counters that monitor key aspects of the infrastructure that your application uses can be captured through other technologies. Les composants et services tiers utilisés par votre application peuvent fournir des informations d’instrumentation dans différents formats, à l’aide de fichiers de trace distincts, de stockage d’objets blob, voire d’un magasin de données personnalisé.Any third-party components and services that your application uses might provide instrumentation information in different formats, by using separate trace files, blob storage, or even a custom data store.

La collecte de données est souvent effectuée via un service de collecte qui peut s’exécuter de manière autonome à partir de l’application qui génère les données d’instrumentation.Data collection is often performed through a collection service that can run autonomously from the application that generates the instrumentation data. La figure 2 illustre un exemple de cette architecture en mettant en évidence le sous-système de collecte des données d’instrumentation.Figure 2 illustrates an example of this architecture, highlighting the instrumentation data-collection subsystem.

Exemple de collecte des données d’instrumentation

Figure 2 - Collecte de données d’instrumentation.Figure 2 - Collecting instrumentation data.

Notez qu’il s’agit d’une vue simplifiée.Note that this is a simplified view. Le service de collecte n’est pas nécessairement un processus unique et peut comporter plusieurs parties constituantes s’exécutant sur différents ordinateurs, comme le décrivent les sections suivantes.The collection service is not necessarily a single process and might comprise many constituent parts running on different machines, as described in the following sections. En outre, si l’analyse de certaines données de télémétrie doit être effectuée rapidement (analyse à chaud, comme décrit dans la section Prise en charge de l’analyse à chaud, modérée et à froid plus loin dans ce document), des composants locaux fonctionnant en dehors du service de collecte peuvent effectuer les tâches d’analyse immédiatement.Additionally, if the analysis of some telemetry data must be performed quickly (hot analysis, as described in the section Supporting hot, warm, and cold analysis later in this document), local components that operate outside the collection service might perform the analysis tasks immediately. La figure 2 illustre cette situation pour les événements sélectionnés.Figure 2 depicts this situation for selected events. Les résultats du traitement analytique peuvent être envoyés directement au sous-système de visualisation et d’alerte.After analytical processing, the results can be sent directly to the visualization and alerting subsystem. Les données soumises aux analyses modérée ou à froid sont stockées pendant qu’elles attendent le traitement.Data that's subjected to warm or cold analysis is held in storage while it awaits processing.

Pour les applications et services Azure, les diagnostics Azure fournissent une solution possible de capture des données.For Azure applications and services, Azure Diagnostics provides one possible solution for capturing data. Les diagnostics Azure collectent des données à partir des sources suivantes pour chaque nœud de calcul, les agrègent, puis les chargent vers Azure Storage :Azure Diagnostics gathers data from the following sources for each compute node, aggregates it, and then uploads it to Azure Storage:

  • Journaux d’activité IISIIS logs
  • Journaux d’activité d’échecs de requête IISIIS Failed Request logs
  • Journaux des événements WindowsWindows event logs
  • Compteurs de performancePerformance counters
  • Vidages sur incidentCrash dumps
  • Journaux d’activité d’infrastructure de diagnostics AzureAzure Diagnostics infrastructure logs
  • Journaux d’activité d’erreurs personnalisésCustom error logs
  • .NET EventSource.NET EventSource
  • Suivi d’événements pour Windows basé sur les manifestesManifest-based ETW

Pour plus d’informations, voir l’article Azure: Telemetry Basics and Troubleshooting(Azure : Concepts de base de la télémétrie et résolution des problèmes).For more information, see the article Azure: Telemetry Basics and Troubleshooting.

Stratégies de collecte des données d’instrumentationStrategies for collecting instrumentation data

Considérant la nature évolutive du cloud et pour éviter la nécessité de récupérer manuellement les données de télémétrie de chaque nœud du système, vous devez faire en sorte que les données soient transférées vers un emplacement central et consolidé.Considering the elastic nature of the cloud, and to avoid the necessity of manually retrieving telemetry data from every node in the system, you should arrange for the data to be transferred to a central location and consolidated. Dans un système qui s’étend sur plusieurs centres de données, il peut être utile de commencer par collecter, consolider et stocker des données sur une base régionale, puis d’agréger les données régionales dans un système central unique.In a system that spans multiple datacenters, it might be useful to first collect, consolidate, and store data on a region-by-region basis, and then aggregate the regional data into a single central system.

Pour optimiser l’utilisation de la bande passante, vous pouvez choisir de transférer les données moins urgentes en blocs, en tant que lots.To optimize the use of bandwidth, you can elect to transfer less urgent data in chunks, as batches. Toutefois, les données de ne doivent pas être retardées indéfiniment, surtout si elles contiennent des informations soumises à une contrainte de temps.However, the data must not be delayed indefinitely, especially if it contains time-sensitive information.

Extraction et transmission des données d’instrumentationPulling and pushing instrumentation data

Le sous-système de collecte des données d’instrumentation peut récupérer activement les données d’instrumentation à partir de divers journaux d’activité et d’autres sources pour chaque instance de l’application ( modèle d’extraction).The instrumentation data-collection subsystem can actively retrieve instrumentation data from the various logs and other sources for each instance of the application (the pull model). Il peut également servir de récepteur passif qui attend que les données soient envoyées à partir des composants qui constituent chaque instance de l’application ( modèle d’émission).Or, it can act as a passive receiver that waits for the data to be sent from the components that constitute each instance of the application (the push model).

Une approche de l’implémentation du modèle d’extraction consiste à utiliser des agents de surveillance s’exécutant localement avec chaque instance de l’application.One approach to implementing the pull model is to use monitoring agents that run locally with each instance of the application. Un agent de surveillance est un processus distinct qui récupère (extrait) régulièrement les données de télémétrie collectées au niveau du nœud local et écrit ces informations directement dans le stockage centralisé qui est partagé par toutes les instances de l’application.A monitoring agent is a separate process that periodically retrieves (pulls) telemetry data collected at the local node and writes this information directly to centralized storage that all instances of the application share. Il s’agit du mécanisme implémenté par les diagnostics Azure.This is the mechanism that Azure Diagnostics implements. Chaque instance d’un rôle web ou d’un rôle de travail Azure peut être configurée pour capturer le diagnostic et d’autres informations de traçage stockées localement.Each instance of an Azure web or worker role can be configured to capture diagnostic and other trace information that's stored locally. L’agent de surveillance qui s’exécute avec chaque instance copie les données spécifiées dans Azure Storage.The monitoring agent that runs alongside each instance copies the specified data to Azure Storage. L’article Activation des diagnostics Azure dans Azure Cloud Services fournit plus d’informations sur ce processus.The article Enabling Diagnostics in Azure Cloud Services and Virtual Machines provides more details on this process. Certains éléments comme les journaux d’activité IIS, les vidages sur incident et les journaux d’activité d’erreurs personnalisés sont écrits dans le stockage d’objets blob.Some elements, such as IIS logs, crash dumps, and custom error logs, are written to blob storage. Les données du journal des événements Windows, des événements ETW et des compteurs de performances sont enregistrées dans un stockage de table.Data from the Windows event log, ETW events, and performance counters is recorded in table storage. La figure 3 illustre ce mécanisme.Figure 3 illustrates this mechanism.

Illustration de l’utilisation d’un agent de surveillance pour extraire des informations et les écrire dans un stockage partagé

Figure 3 - Utilisation d’un agent de surveillance pour extraire des informations et écrire au stockage partagé.Figure 3 - Using a monitoring agent to pull information and write to shared storage.

Notes

L’utilisation d’un agent de surveillance convient idéalement à la capture des données d’instrumentation qui sont naturellement extraites d’une source de données.Using a monitoring agent is ideally suited to capturing instrumentation data that's naturally pulled from a data source. Les informations des vues de gestion dynamique SQL Server ou la longueur d’une file d’attente Azure Service Bus en sont un bon exemple.An example is information from SQL Server Dynamic Management Views or the length of an Azure Service Bus queue.

Il est possible d’utiliser l’approche qui vient d’être décrite pour stocker les données de télémétrie pour une application à petite échelle qui s’exécute sur un nombre limité de nœuds dans un emplacement unique.It's feasible to use the approach just described to store telemetry data for a small-scale application running on a limited number of nodes in a single location. Toutefois, une application cloud globale, hautement évolutive et complexe peut générer d’énormes volumes de données provenant de centaines de rôles web et de rôles de travail, de partitionnements de base de données et d’autres services.However, a complex, highly scalable, global cloud application might generate huge volumes of data from hundreds of web and worker roles, database shards, and other services. Ce flux de données peut facilement surcharger la bande passante d’E/S disponible avec un emplacement central unique.This flood of data can easily overwhelm the I/O bandwidth available with a single, central location. Par conséquent, votre solution de télémétrie doit être évolutive afin de l’empêcher de se comporter comme un goulot d’étranglement lorsque le système se développe.Therefore, your telemetry solution must be scalable to prevent it from acting as a bottleneck as the system expands. Dans l’idéal, votre solution doit incorporer un degré de redondance pour réduire les risques de perdre des informations de surveillance importantes (telles que les données d’audit ou de facturation) si une partie du système tombe en panne.Ideally, your solution should incorporate a degree of redundancy to reduce the risks of losing important monitoring information (such as auditing or billing data) if part of the system fails.

Pour résoudre ces problèmes, vous pouvez implémenter un mécanisme de mise en file d’attente, comme indiqué figure 4.To address these issues, you can implement queuing, as shown in Figure 4. Dans cette architecture, l’agent de surveillance local (s’il peut être configuré de manière appropriée) ou un service de collecte des données personnalisé (sinon) envoie les données vers une file d'attente.In this architecture, the local monitoring agent (if it can be configured appropriately) or custom data-collection service (if not) posts data to a queue. Un processus distinct s’exécutant de façon asynchrone (service d’écriture dans le stockage de la figure 4) prend les données de cette file d’attente et les écrit dans le stockage partagé.A separate process running asynchronously (the storage writing service in Figure 4) takes the data in this queue and writes it to shared storage. Une file d’attente de message est adaptée à ce scénario, car elle fournit la sémantique « au moins une fois » assurant qu’une fois publiées, les données mises en file d’attente ne sont pas perdues.A message queue is suitable for this scenario because it provides "at least once" semantics that help ensure that queued data will not be lost after it's posted. Vous pouvez implémenter le service d’écriture dans le stockage en utilisant un rôle de travail distinct.You can implement the storage writing service by using a separate worker role.

Illustration de l’utilisation d’une file d’attente pour mettre en mémoire tampon les données d’instrumentation

Figure 4 - Utilisation d’une file d’attente pour tamponner les données d’instrumentation.Figure 4 - Using a queue to buffer instrumentation data.

Le service de collecte des données local peut ajouter des données à une file d’attente dès leur réception.The local data-collection service can add data to a queue immediately after it's received. La file d’attente agit comme une mémoire tampon et le service d’écriture dans le stockage peut récupérer et écrire les données à son propre rythme.The queue acts as a buffer, and the storage writing service can retrieve and write the data at its own pace. Par défaut, une file d’attente fonctionne sur la base du premier entré, premier sorti.By default, a queue operates on a first-in, first-out basis. Cependant, vous pouvez hiérarchiser les messages pour accélérer leur avancée dans la file d’attente s’ils contiennent des données qui doivent être traitées plus rapidement.But you can prioritize messages to accelerate them through the queue if they contain data that must be handled more quickly. Pour plus d’informations, consultez le modèle De file d’attente prioritaire.For more information, see the Priority Queue pattern. Vous pouvez également utiliser différents canaux (par exemple, les rubriques Service Bus) pour diriger les données vers différentes destinations en fonction de la forme de traitement analytique nécessaire.Alternatively, you can use different channels (such as Service Bus topics) to direct data to different destinations depending on the form of analytical processing that's required.

À des fins d’évolutivité, vous pouvez exécuter plusieurs instances du service d’écriture dans le stockage.For scalability, you can run multiple instances of the storage writing service. Si le volume d’événements est élevé, vous pouvez utiliser un concentrateur d’événements pour distribuer les données vers des ressources de calcul différentes pour le traitement et le stockage.If there is a high volume of events, you can use an event hub to dispatch the data to different compute resources for processing and storage.

Consolidation des données d’instrumentationConsolidating instrumentation data

Les données d’instrumentation récupérées par le service de collecte des données à partir d’une seule instance d’une application fournissent une vue localisée de l’intégrité et des performances de cette instance.The instrumentation data that the data-collection service retrieves from a single instance of an application gives a localized view of the health and performance of that instance. Pour évaluer l’intégrité globale du système, il est nécessaire de consolider certains aspects des données dans les vues locales.To assess the overall health of the system, it's necessary to consolidate some aspects of the data in the local views. Vous pouvez effectuer cette consolidation une fois que les données ont été stockées, mais dans certains cas, vous pouvez également la réaliser lors de la collecte des données.You can perform this after the data has been stored, but in some cases, you can also achieve it as the data is collected. Au lieu d’être écrites directement dans le stockage partagé, les données d’instrumentation peuvent passer par un service de consolidation de données distinct qui combine les données et agit comme un processus de filtrage et de nettoyage.Rather than being written directly to shared storage, the instrumentation data can pass through a separate data consolidation service that combines data and acts as a filter and cleanup process. Par exemple, les données d’instrumentation qui incluent les mêmes informations de corrélation, par exemple un ID d’activité, peuvent être fusionnées.For example, instrumentation data that includes the same correlation information such as an activity ID can be amalgamated. (Il est possible qu’un utilisateur commence à effectuer une opération commerciale sur un nœud, puis est transféré à un autre nœud en cas de défaillance de nœud, ou en fonction de la façon dont l’équilibrage de charge est configuré.) Ce processus peut également détecter et supprimer toutes les données dupliquées (toujours une possibilité si le service de télémétrie utilise des files d’attente de messages pour pousser les données d’instrumentation à stocker).(It's possible that a user starts performing a business operation on one node and then gets transferred to another node in the event of node failure, or depending on how load balancing is configured.) This process can also detect and remove any duplicated data (always a possibility if the telemetry service uses message queues to push instrumentation data out to storage). La figure 5 illustre un exemple de cette structure.Figure 5 illustrates an example of this structure.

Exemple d’utilisation d’un service pour consolider les données d’instrumentation

Figure 5 - Utilisation d’un service distinct pour consolider et nettoyer les données d’instrumentation.Figure 5 - Using a separate service to consolidate and clean up instrumentation data.

Stockage des données d’instrumentationStoring instrumentation data

Les discussions précédentes ont représenté une vue assez simple du mode de stockage des données d’instrumentation.The previous discussions have depicted a rather simplistic view of the way in which instrumentation data is stored. En réalité, il peut être judicieux de stocker les différents types d’informations à l’aide des technologies les plus appropriées au mode d’utilisation de chacun des types.In reality, it can make sense to store the different types of information by using technologies that are most appropriate to the way in which each type is likely to be used.

Par exemple, le stockage de table et le stockage d’objets blob Azure présentent certaines similitudes dans leur mode d’accès.For example, Azure blob and table storage have some similarities in the way in which they're accessed. Néanmoins, elles connaissent des restrictions dans les opérations que vous pouvez effectuer en les utilisant, et la granularité des données qu’elles conservent est assez différente.But they have limitations in the operations that you can perform by using them, and the granularity of the data that they hold is quite different. Si vous devez effectuer plusieurs opérations analytiques ou si vous avez besoin de fonctionnalités de recherche en texte intégral sur les données, il peut être plus pertinent d’utiliser le stockage de données qui fournit des fonctionnalités optimisées pour des types spécifiques de requêtes et d’accès aux données.If you need to perform more analytical operations or require full-text search capabilities on the data, it might be more appropriate to use data storage that provides capabilities that are optimized for specific types of queries and data access. Par exemple :For example:

  • Les données des compteurs de performances peuvent être stockées dans une base de données SQL pour activer l’analyse ad hoc.Performance counter data can be stored in a SQL database to enable ad hoc analysis.
  • Azure Cosmos DB peut se révéler mieux adapté au stockage des journaux d’activité de suivi.Trace logs might be better stored in Azure Cosmos DB.
  • Les informations sur la sécurité peuvent être écrites dans HDFS.Security information can be written to HDFS.
  • Les informations nécessitant une recherche en texte intégral peuvent être stockées via Elasticsearch (qui peut également accélérer les recherches en utilisant une indexation enrichie).Information that requires full-text search can be stored through Elasticsearch (which can also speed searches by using rich indexing).

Vous pouvez implémenter un service supplémentaire qui extrait régulièrement des données à partir du stockage partagé, partitionne et filtre les données en fonction de leur objectif, puis les écrit dans un ensemble approprié de magasins de données comme illustré à la figure 6.You can implement an additional service that periodically retrieves the data from shared storage, partitions and filters the data according to its purpose, and then writes it to an appropriate set of data stores as shown in Figure 6. Une autre approche consiste à inclure cette fonctionnalité dans le processus de consolidation et de nettoyage, et à écrire les données directement dans ces magasins à mesure qu’elles sont récupérées plutôt que de les enregistrer dans une zone de stockage partagée intermédiaire.An alternative approach is to include this functionality in the consolidation and cleanup process and write the data directly to these stores as it's retrieved rather than saving it in an intermediate shared storage area. Chaque approche a des avantages et des inconvénients.Each approach has its advantages and disadvantages. L’implémentation d’un service distinct de partitionnement réduit la charge sur le service de consolidation et de nettoyage et permet au moins que certaines données partitionnées soient régénérées si nécessaire (en fonction de la quantité de données conservées dans le stockage partagé).Implementing a separate partitioning service lessens the load on the consolidation and cleanup service, and it enables at least some of the partitioned data to be regenerated if necessary (depending on how much data is retained in shared storage). Toutefois, ce service consomme des ressources supplémentaires.However, it consumes additional resources. En outre, il peut y avoir un délai entre la réception des données d’instrumentation à partir de chaque instance d’application et la conversion de ces données en informations utilisables.Also, there might be a delay between the receipt of instrumentation data from each application instance and the conversion of this data into actionable information.

Partitionnement et stockage des données

Figure 6 - Partitionnement des données en fonction des exigences analytiques et de stockage.Figure 6 - Partitioning data according to analytical and storage requirements.

Les mêmes données d’instrumentation peuvent servir à plus d’une fin.The same instrumentation data might be required for more than one purpose. Par exemple, les compteurs de performances permettent de fournir une vue historique des performances du système au fil du temps.For example, performance counters can be used to provide a historical view of system performance over time. Ces informations peuvent être combinées avec d’autres données d’utilisation pour générer les informations de facturation client.This information might be combined with other usage data to generate customer billing information. Dans ces situations, les mêmes données peuvent être envoyées à plusieurs destinations, par exemple une base de données de documents qui peut agir comme un magasin à long terme pour la conservation des informations de facturation et un magasin multidimensionnel pour la gestion des analyses des performances complexes.In these situations, the same data might be sent to more than one destination, such as a document database that can act as a long-term store for holding billing information, and a multidimensional store for handling complex performance analytics.

Vous devez également tenir compte du degré d’urgence de ces données.You should also consider how urgently the data is required. Les données qui fournissent des informations pour les alertes doivent être accessibles rapidement et doivent donc être conservées dans le stockage de données rapide, et indexées ou structurées pour optimiser les requêtes exécutées par le système d’alerte.Data that provides information for alerting must be accessed quickly, so it should be held in fast data storage and indexed or structured to optimize the queries that the alerting system performs. Dans certains cas, il peut être nécessaire que le service de télémétrie qui collecte les données sur chaque nœud formate et enregistre les données localement afin qu’une instance locale du système d’alerte puisse rapidement vous informer de tout problème.In some cases, it might be necessary for the telemetry service that gathers the data on each node to format and save data locally so that a local instance of the alerting system can quickly notify you of any issues. Les mêmes données peuvent être transmises au service d’écriture dans le stockage indiqué dans les diagrammes précédents, et stockées de façon centralisée si elles doivent également servir à d’autres fins.The same data can be dispatched to the storage writing service shown in the previous diagrams and stored centrally if it's also required for other purposes.

Les informations utilisées pour une analyse plus réfléchie, le reporting et l’identification des tendances historiques sont moins urgentes et peuvent être stockées d’une manière qui prend en charge l’exploration de données et les requêtes ad hoc.Information that's used for more considered analysis, for reporting, and for spotting historical trends is less urgent and can be stored in a manner that supports data mining and ad hoc queries. Pour plus d’informations, consultez la section Prise en charge de l’analyse à chaud, modérée et à froid plus loin dans ce document.For more information, see the section Supporting hot, warm, and cold analysis later in this document.

Rotation des journaux et conservation des donnéesLog rotation and data retention

L’instrumentation peut générer des volumes considérables de données.Instrumentation can generate considerable volumes of data. Ces données peuvent être conservées dans des emplacements différents, des fichiers journaux bruts, fichiers de suivi et autres informations capturées sur chaque nœud à la vue consolidée, nettoyée et partitionnée de ces données conservées dans le stockage partagé.This data can be held in several places, starting with the raw log files, trace files, and other information captured at each node to the consolidated, cleaned, and partitioned view of this data held in shared storage. Dans certains cas, une fois que les données ont été traitées et transférées, les données sources brutes d’origine peuvent être supprimées de chaque nœud.In some cases, after the data has been processed and transferred, the original raw source data can be removed from each node. Dans d’autres cas, il peut être nécessaire ou simplement utile d’enregistrer les informations brutes.In other cases, it might be necessary or simply useful to save the raw information. Par exemple, les données générées à des fins de débogage peuvent être laissées disponibles dans leur forme brute, mais peuvent être ensuite ignorées rapidement une fois que les bogues ont été corrigés.For example, data that's generated for debugging purposes might be best left available in its raw form but can then be discarded quickly after any bugs have been rectified.

Les données de performances ont souvent une durée de vie plus longue afin de pouvoir être utilisées à des fins d’identification des tendances de performances et de planification de la capacité.Performance data often has a longer life so that it can be used for spotting performance trends and for capacity planning. La vue consolidée de ces données est en général conservée en ligne pour une période limitée afin de permettre un accès rapide.The consolidated view of this data is usually kept online for a finite period to enable fast access. Après quoi, elle peut être archivée ou ignorée.After that, it can be archived or discarded. Les données collectées pour le contrôle et la facturation des clients peuvent devoir être enregistrées indéfiniment.Data gathered for metering and billing customers might need to be saved indefinitely. En outre, des exigences réglementaires peuvent imposer l’archivage et l’enregistrement des informations collectées à des fins d’audit et de sécurité.Additionally, regulatory requirements might dictate that information collected for auditing and security purposes also needs to be archived and saved. Ces données sont également sensibles et peuvent devoir être chiffrées ou protégées d’une quelconque façon pour empêcher toute falsification.This data is also sensitive and might need to be encrypted or otherwise protected to prevent tampering. Vous ne devez jamais enregistrer les mots de passe des utilisateurs ou d’autres informations qui peuvent être utilisées pour valider l’usurpation d’identité.You should never record users' passwords or other information that might be used to commit identity fraud. Ces informations doivent être supprimées des données avant leur stockage.Such details should be scrubbed from the data before it's stored.

Sous-échantillonnageDown-sampling

Il est souvent utile de stocker les données historiques afin de pouvoir identifier les tendances à long terme.It's useful to store historical data so you can spot long-term trends. Plutôt que d’enregistrer les données anciennes dans leur intégralité, il peut être possible de sous-échantillonner les données pour réduire leur résolution et les coûts de stockage.Rather than saving old data in its entirety, it might be possible to down-sample the data to reduce its resolution and save storage costs. Par exemple, plutôt que d’enregistrer des indicateurs de performance minute par minute, vous pouvez consolider les données antérieures à plus d’un mois pour former une vue heure par heure.As an example, rather than saving minute-by-minute performance indicators, you can consolidate data that's more than a month old to form an hour-by-hour view.

Meilleures pratiques pour collecter et stocker des informations de journalisationBest practices for collecting and storing logging information

La liste suivante récapitule les meilleures pratiques pour la capture et le stockage des informations de journalisation :The following list summarizes best practices for capturing and storing logging information:

  • L’agent de surveillance ou le service de collecte des données doit s’exécuter comme un service hors processus et doit être simple à déployer.The monitoring agent or data-collection service should run as an out-of-process service and should be simple to deploy.

  • Toutes les sorties de l’agent de surveillance ou du service de collecte des données doivent avoir un format non spécifique indépendant de l’ordinateur, du système d’exploitation ou du protocole réseau.All output from the monitoring agent or data-collection service should be an agnostic format that's independent of the machine, operating system, or network protocol. Par exemple, émettre les informations dans un format autodescriptif tels que JSON, MessagePack ou Protobuf plutôt que ETL/ETW.For example, emit information in a self-describing format such as JSON, MessagePack, or Protobuf rather than ETL/ETW. Utiliser un format standard permet au système de construire des pipelines de traitement ; les composants qui lisent, transforment et envoient des données au format convenu peuvent être facilement intégrés.Using a standard format enables the system to construct processing pipelines; components that read, transform, and send data in the agreed format can be easily integrated.

  • Le processus de collecte de données et de surveillance doit être effectué en mode de prévention de défaillance et ne doit pas déclencher de conditions d’erreur en cascade.The monitoring and data-collection process must be fail-safe and must not trigger any cascading error conditions.

  • En cas d’échec passager de l’envoi des informations à un récepteur de données, l’agent de surveillance ou le service de collecte des données doit être préparé pour réorganiser les données de télémétrie afin que les informations les plus récentes soient envoyées en premier.In the event of a transient failure in sending information to a data sink, the monitoring agent or data-collection service should be prepared to reorder telemetry data so that the newest information is sent first. (Le service de collecte des données ou l’agent de surveillance peut choisir de supprimer les anciennes données ou de les enregistrer localement et de les transmettre plus tard pour les mettre à jour à son entière discrétion.)(The monitoring agent/data-collection service might elect to drop the older data, or save it locally and transmit it later to catch up, at its own discretion.)

Analyse des données et diagnostic des problèmesAnalyzing data and diagnosing issues

Une partie importante du processus de surveillance et de diagnostic consiste à analyser les données collectées pour obtenir une image de l’état général du système.An important part of the monitoring and diagnostics process is analyzing the gathered data to obtain a picture of the overall well-being of the system. Vous devez avoir défini vos propres indicateurs KPI et les métriques de performance, et il est important de comprendre comment vous pouvez structurer les données qui ont été collectées pour répondre à vos besoins d’analyse.You should have defined your own KPIs and performance metrics, and it's important to understand how you can structure the data that has been gathered to meet your analysis requirements. Il est également important de comprendre comment les données capturées dans les différents fichiers de métriques et fichiers journaux sont mises en corrélation, car ces informations peuvent être importantes pour suivre une séquence d’événements et diagnostiquer les problèmes qui surviennent.It's also important to understand how the data that's captured in different metrics and log files is correlated, because this information can be key to tracking a sequence of events and help diagnose problems that arise.

Comme décrit dans la section Consolidation des données d’instrumentation, les données correspondant à chaque partie du système sont généralement capturées localement, mais en général, elles doivent être combinées avec des données générées sur d’autres sites participant au système.As described in the section Consolidating instrumentation data, the data for each part of the system is typically captured locally, but it generally needs to be combined with data generated at other sites that participate in the system. Ces informations nécessitent d’être corrélées avec attention pour s’assurer que les données sont combinées avec précision.This information requires careful correlation to ensure that data is combined accurately. Par exemple, les données d’utilisation pour une opération peuvent s’étendre sur un nœud qui héberge un site web auquel se connecte un utilisateur, un nœud qui exécute un service distinct accessible dans le cadre de cette opération et un stockage de données conservé sur un autre nœud.For example, the usage data for an operation might span a node that hosts a website to which a user connects, a node that runs a separate service accessed as part of this operation, and data storage held on another node. Ces informations doivent être liées entre elles pour fournir une vue d’ensemble de l’utilisation des ressources et du traitement pour l’opération.This information needs to be tied together to provide an overall view of the resource and processing usage for the operation. Certains prétraitement et filtrage des données peuvent se produire sur le nœud sur lequel les données sont capturées, tandis que l’agrégation et le formatage sont plus susceptibles de se produire sur un nœud central.Some preprocessing and filtering of data might occur on the node on which the data is captured, whereas aggregation and formatting are more likely to occur on a central node.

Prise en charge de l’analyse à chaud, modérée et à froidSupporting hot, warm, and cold analysis

L’analyse et le reformatage des données à des fins de visualisation, de reporting et d’alerte peuvent être un processus complexe qui utilise son propre ensemble de ressources.Analyzing and reformatting data for visualization, reporting, and alerting purposes can be a complex process that consumes its own set of resources. Certaines formes de surveillance sont prioritaires et nécessitent que l’analyse immédiate des données soit efficace.Some forms of monitoring are time-critical and require immediate analysis of data to be effective. C’est ce qu’on appelle l’analyse à chaud.This is known as hot analysis. Les exemples incluent les analyses nécessaires pour les alertes et certains aspects de la surveillance de la sécurité (comme la détection d’une attaque sur le système).Examples include the analyses that are required for alerting and some aspects of security monitoring (such as detecting an attack on the system). Les données requises pour ces besoins doivent être rapidement disponibles et structurées en vue d’un traitement efficace.Data that's required for these purposes must be quickly available and structured for efficient processing. Dans certains cas, il peut être nécessaire de déplacer le traitement de l’analyse vers les nœuds individuels où les données sont conservées.In some cases, it might be necessary to move the analysis processing to the individual nodes where the data is held.

D’autres formes d’analyse sont moins prioritaires et peuvent nécessiter des opérations de calcul et d’agrégation une fois les données brutes reçues.Other forms of analysis are less time-critical and might require some computation and aggregation after the raw data has been received. Il s’agit d’analyse modérée.This is called warm analysis. L’analyse des performances fait souvent partie de cette catégorie.Performance analysis often falls into this category. Dans ce cas, un événement de performances unique et isolé a peu de chances d’être statistiquement significatif.In this case, an isolated, single performance event is unlikely to be statistically significant. (Il pourrait être causé par un pic soudain ou un pépin.) Les données d’une série d’événements devraient fournir une image plus fiable des performances du système.(It might be caused by a sudden spike or glitch.) The data from a series of events should provide a more reliable picture of system performance.

L’analyse modérée permet également de diagnostiquer les problèmes d’intégrité.Warm analysis can also be used to help diagnose health issues. Un événement d’intégrité est généralement traité via une analyse à chaud et peut déclencher une alerte immédiatement.A health event is typically processed through hot analysis and can raise an alert immediately. Un opérateur doit être en mesure d’explorer les raisons de l’événement d’intégrité en examinant les données du chemin d’accès encore chaud.An operator should be able to drill into the reasons for the health event by examining the data from the warm path. Ces données doivent contenir des informations sur les événements conduisant au problème qui a provoqué l’événement d’intégrité.This data should contain information about the events leading up to the issue that caused the health event.

Certains types de surveillance génèrent des données à plus long terme.Some types of monitoring generate more long-term data. Cette analyse peut être effectuée à une date ultérieure, éventuellement selon une planification prédéfinie.This analysis can be performed at a later date, possibly according to a predefined schedule. Dans certains cas, l’analyse devra peut-être effectuer un filtrage complexe d’importants volumes de données capturées sur une période donnée.In some cases, the analysis might need to perform complex filtering of large volumes of data captured over a period of time. Il s’agit d’ analyse à froid.This is called cold analysis. La condition principale est de stocker en toute sécurité les données une fois qu’elles ont été capturées.The key requirement is that the data is stored safely after it has been captured. Par exemple, la surveillance et l’audit de l’utilisation nécessitent une image précise de l’état du système à des moments réguliers dans le temps, mais ces informations d’état n’ont pas besoin d’être disponibles immédiatement après leur collecte pour être soumises au traitement.For example, usage monitoring and auditing require an accurate picture of the state of the system at regular points in time, but this state information does not have to be available for processing immediately after it has been gathered.

Un opérateur peut également utiliser l’analyse à froid pour fournir les données pour l’analyse prédictive de l’intégrité.An operator can also use cold analysis to provide the data for predictive health analysis. Il peut collecter les informations historiques sur une période spécifiée et les utiliser conjointement avec les données d’intégrité actuelles (récupérées à partir du chemin réactif) pour identifier les tendances qui peuvent provoquer rapidement des problèmes d’intégrité.The operator can gather historical information over a specified period and use it in conjunction with the current health data (retrieved from the hot path) to spot trends that might soon cause health issues. Dans ces cas, il peut être nécessaire de déclencher une alerte afin que des mesures correctives puissent être prises.In these cases, it might be necessary to raise an alert so that corrective action can be taken.

Corrélation des donnéesCorrelating data

Les données capturées par l’instrumentation peuvent fournir un instantané de l’état du système, mais l’objectif de l’analyse est de rendre ces données exploitables.The data that instrumentation captures can provide a snapshot of the system state, but the purpose of analysis is to make this data actionable. Par exemple :For example:

  • Quelle est la cause d’un chargement d’E/S intense au niveau du système à un moment spécifique ?What has caused an intense I/O loading at the system level at a specific time?
  • Est-il le résultat d’un grand nombre d’opérations de base de données ?Is it the result of a large number of database operations?
  • A-t-il une influence sur les temps de réponse de la base de données, le nombre de transactions par seconde et les temps de réponse de l’application au même point de jonction ?Is this reflected in the database response times, the number of transactions per second, and application response times at the same juncture?

Dans ce cas, une mesure corrective pouvant réduire la charge peut consister à partitionner les données sur plusieurs serveurs.If so, one remedial action that might reduce the load might be to shard the data over more servers. Par ailleurs, des exceptions peuvent se produire suite à une erreur à un niveau quelconque du système.In addition, exceptions can arise as a result of a fault in any level of the system. Une exception se produisant à un niveau déclenche souvent une autre erreur au niveau supérieur.An exception in one level often triggers another fault in the level above.

Pour ces raisons, vous devez être en mesure d’établir une corrélation entre les différents types de données de surveillance à chaque niveau afin de produire une vue d’ensemble de l’état du système et des applications qui s’exécutent sur celui-ci.For these reasons, you need to be able to correlate the different types of monitoring data at each level to produce an overall view of the state of the system and the applications that are running on it. Vous pouvez ensuite utiliser ces informations pour décider si le système fonctionne de manière satisfaisante ou non, et déterminer ce qui peut être fait pour améliorer la qualité du système.You can then use this information to make decisions about whether the system is functioning acceptably or not, and determine what can be done to improve the quality of the system.

Comme décrit dans la section Informations pour la corrélation des données, vous devez vous assurer que les données d’instrumentation brutes incluent un contexte et des informations de l’ID d’activité suffisants pour prendre en charge les agrégations requises pour la corrélation des événements.As described in the section Information for correlating data, you must ensure that the raw instrumentation data includes sufficient context and activity ID information to support the required aggregations for correlating events. En outre, ces données peuvent être conservées dans différents formats, et il peut être nécessaire d’analyser ces informations pour les convertir dans un format normalisé à des fins d’analyse.Additionally, this data might be held in different formats, and it might be necessary to parse this information to convert it into a standardized format for analysis.

Résolution et diagnostic des problèmesTroubleshooting and diagnosing issues

Le diagnostic requiert la possibilité de déterminer la cause des erreurs ou du comportement inattendu, notamment la possibilité de réaliser une analyse de la cause première.Diagnosis requires the ability to determine the cause of faults or unexpected behavior, including performing root cause analysis. Les informations requises sont généralement les suivantes :The information that's required typically includes:

  • Des informations détaillées provenant des journaux d’événements et des traces pour l’ensemble du système ou pour un sous-système spécifié pendant un laps de temps spécifié.Detailed information from event logs and traces, either for the entire system or for a specified subsystem during a specified time window.
  • Des arborescences des appels de procédure résultant des exceptions et des erreurs de tout niveau spécifié qui se produisent au sein du système ou d’un sous-système spécifié pendant une période spécifiée.Complete stack traces resulting from exceptions and faults of any specified level that occur within the system or a specified subsystem during a specified period.
  • Des vidages sur incident pour tous les processus ayant échoué n’importe où dans le système ou pour un sous-système spécifié pendant un laps de temps spécifié.Crash dumps for any failed processes either anywhere in the system or for a specified subsystem during a specified time window.
  • Des journaux d’activité enregistrant les opérations effectuées par tous les utilisateurs ou par les utilisateurs sélectionnés pendant une période spécifiée.Activity logs recording the operations that are performed either by all users or for selected users during a specified period.

L’analyse des données pour résoudre les problèmes requiert souvent une connaissance technique approfondie de l’architecture du système et des différents composants qui constituent la solution.Analyzing data for troubleshooting purposes often requires a deep technical understanding of the system architecture and the various components that compose the solution. Par conséquent, une large part d’intervention manuelle est souvent nécessaire pour interpréter les données, déterminer la cause des problèmes et recommander une stratégie appropriée pour les corriger.As a result, a large degree of manual intervention is often required to interpret the data, establish the cause of problems, and recommend an appropriate strategy to correct them. Il peut être judicieux de simplement stocker une copie de ces informations dans leur format d’origine et de les rendre disponibles en vue d’une analyse à froid par un expert.It might be appropriate simply to store a copy of this information in its original format and make it available for cold analysis by an expert.

Visualisation des données et déclenchements des alertesVisualizing data and raising alerts

Un aspect important de tout système de surveillance est la possibilité de présenter les données de manière à ce qu’un opérateur puisse repérer rapidement les tendances ou les problèmes.An important aspect of any monitoring system is the ability to present the data in such a way that an operator can quickly spot any trends or problems. Il est également important de pouvoir informer rapidement un opérateur si un événement significatif nécessitant votre attention s’est produit.Also important is the ability to quickly inform an operator if a significant event has occurred that might require attention.

La présentation des données peut prendre plusieurs formes, y compris la visualisation à l’aide de tableaux de bord, d’alertes et de rapports.Data presentation can take several forms, including visualization by using dashboards, alerting, and reporting.

Visualisation à l’aide de tableaux de bordVisualization by using dashboards

La façon la plus courante de visualiser des données consiste à utiliser des tableaux de bord qui affichent des informations sous forme de tableaux, de graphiques ou d’autres illustrations.The most common way to visualize data is to use dashboards that can display information as a series of charts, graphs, or some other illustration. Ces éléments peuvent être paramétrés, et un analyste doit être en mesure de sélectionner les paramètres importants (par exemple, la période) correspondant à toute situation spécifique.These items can be parameterized, and an analyst should be able to select the important parameters (such as the time period) for any specific situation.

Les tableaux de bord peuvent être organisés de façon hiérarchique.Dashboards can be organized hierarchically. Les tableaux de bord de niveau supérieur donnent une vue d’ensemble de chaque aspect du système tout en permettant à un opérateur d’explorer les détails.Top-level dashboards can give an overall view of each aspect of the system but enable an operator to drill down to the details. Par exemple, un tableau de bord qui illustre les E/S de disque du système doit permettre à un analyste d’afficher les taux d’E/S de chaque disque individuel afin de déterminer si un ou plusieurs périphériques spécifiques sont responsables d’un volume de trafic disproportionné.For example, a dashboard that depicts the overall disk I/O for the system should allow an analyst to view the I/O rates for each individual disk to ascertain whether one or more specific devices account for a disproportionate volume of traffic. Dans l’idéal, le tableau de bord doit également afficher des informations connexes, telles que la source de chaque requête (utilisateur ou activité) qui génère cette E/S.Ideally, the dashboard should also display related information, such as the source of each request (the user or activity) that's generating this I/O. Ces informations peuvent alors servir à déterminer si (et comment) la charge doit être équitablement répartie entre les périphériques et si le système serait plus performant si plusieurs périphériques étaient ajoutés.This information can then be used to determine whether (and how) to spread the load more evenly across devices, and whether the system would perform better if more devices were added.

Un tableau de bord peut également utiliser un codage en couleurs ou d’autres repères visuels pour indiquer les valeurs qui apparaissent anormales ou qui sont en dehors d’une plage attendue.A dashboard might also use color-coding or some other visual cues to indicate values that appear anomalous or that are outside an expected range. Utilisation de l’exemple précédent :Using the previous example:

  • Un disque indiquant un taux d’E/S proche de sa capacité maximale sur une période prolongée (un disque chaud) peut être mis en surbrillance en rouge.A disk with an I/O rate that's approaching its maximum capacity over an extended period (a hot disk) can be highlighted in red.
  • Un disque indiquant un taux d’E/S qui s’exécute périodiquement à sa limite maximale sur de brèves périodes (un disque tiède) peut être mis en surbrillance en jaune.A disk with an I/O rate that periodically runs at its maximum limit over short periods (a warm disk) can be highlighted in yellow.
  • Un disque présentant une utilisation normale peut s’afficher en vert.A disk that's exhibiting normal usage can be displayed in green.

Notez que pour être efficace, un système de tableau de bord doit incorporer les données brutes avec lesquelles travailler.Note that for a dashboard system to work effectively, it must have the raw data to work with. Si vous créez votre propre système de tableau de bord ou utilisez un tableau de bord développé par une autre organisation, vous devez comprendre quelles données d’instrumentation collecter, à quel niveau de granularité et comment elles doivent être formatées pour être utilisées par le tableau de bord.If you are building your own dashboard system, or using a dashboard developed by another organization, you must understand which instrumentation data you need to collect, at what levels of granularity, and how it should be formatted for the dashboard to consume.

Un bon tableau de bord n’affiche pas uniquement les informations, il permet également à un analyste de poser des questions ad hoc sur ces informations.A good dashboard does not only display information, it also enables an analyst to pose ad hoc questions about that information. Certains systèmes fournissent des outils de gestion pouvant être utilisés par un opérateur pour effectuer ces tâches et explorer les données sous-jacentes.Some systems provide management tools that an operator can use to perform these tasks and explore the underlying data. Vous pouvez également, en fonction du référentiel utilisé pour conserver ces informations, interroger ces données directement ou les importer dans des outils tels que Microsoft Excel pour une analyse complémentaire et le reporting.Alternatively, depending on the repository that's used to hold this information, it might be possible to query this data directly, or import it into tools such as Microsoft Excel for further analysis and reporting.

Notes

Vous devez restreindre l’accès aux tableaux de bord au personnel autorisé, car ces informations peuvent être sensibles.You should restrict access to dashboards to authorized personnel, because this information might be commercially sensitive. Vous devez également protéger les données sous-jacentes des tableaux de bord pour empêcher les utilisateurs de les modifier.You should also protect the underlying data for dashboards to prevent users from changing it.

Déclenchement d’alertesRaising alerts

La génération d’alerte consiste à analyser les données de surveillance et d’instrumentation, et à générer une notification si un événement significatif est détecté.Alerting is the process of analyzing the monitoring and instrumentation data and generating a notification if a significant event is detected.

Les alertes permettent de s’assurer que le système reste sain, réactif et sécurisé.Alerting helps ensure that the system remains healthy, responsive, and secure. C’est une partie importante de tout système qui donne des garanties de performances, de disponibilité et de confidentialité aux utilisateurs, et dans lequel les données peuvent devoir être traitées immédiatement.It's an important part of any system that makes performance, availability, and privacy guarantees to the users where the data might need to be acted on immediately. Un opérateur peut devoir être notifié de l’événement qui a déclenché l’alerte.An operator might need to be notified of the event that triggered the alert. La génération d’alerte peut également servir à appeler des fonctions système telles que la mise à l’échelle automatique.Alerting can also be used to invoke system functions such as autoscaling.

La génération d’alerte dépend généralement des données d’instrumentation suivantes :Alerting usually depends on the following instrumentation data:

  • Événements de sécurité.Security events. Si les journaux d’événements indiquent que des échecs d’authentification et/ou d’autorisation répétés se produisent, le système peut être attaqué, et un opérateur doit en être informé.If the event logs indicate that repeated authentication and/or authorization failures are occurring, the system might be under attack and an operator should be informed.
  • Mesures de performance.Performance metrics. Le système doit répondre rapidement si une mesure de performance spécifique dépasse un seuil spécifié.The system must quickly respond if a particular performance metric exceeds a specified threshold.
  • Informations de disponibilité.Availability information. Si une erreur est détectée, il peut être nécessaire de redémarrer rapidement un ou plusieurs sous-systèmes ou de basculer vers une ressource de sauvegarde.If a fault is detected, it might be necessary to quickly restart one or more subsystems, or fail over to a backup resource. Des erreurs répétées dans un sous-système peuvent indiquer des problèmes plus sérieux.Repeated faults in a subsystem might indicate more serious concerns.

Les opérateurs peuvent recevoir les informations d’alerte à l’aide de plusieurs canaux de remise comme un courrier électronique, un périphérique de radiomessagerie ou un SMS.Operators might receive alert information by using many delivery channels such as email, a pager device, or an SMS text message. Une alerte peut également inclure une indication du niveau de criticité d’une situation.An alert might also include an indication of how critical a situation is. De nombreux systèmes d’alerte prennent en charge les groupes d’abonnés, et un même ensemble d’alertes peut être envoyé à tous les opérateurs membres d’un même groupe.Many alerting systems support subscriber groups, and all operators who are members of the same group can receive the same set of alerts.

Un système d’alerte doit être personnalisable, et les valeurs appropriées peuvent être fournies en tant que paramètres à partir des données d’instrumentation sous-jacentes.An alerting system should be customizable, and the appropriate values from the underlying instrumentation data can be provided as parameters. Cette approche permet à un opérateur de filtrer les données et de se concentrer sur ces seuils ou combinaisons de valeurs qui présentent un intérêt.This approach enables an operator to filter data and focus on those thresholds or combinations of values that are of interest. Notez que dans certains cas, les données d’instrumentation brutes peuvent être fournies au système d’alerte.Note that in some cases, the raw instrumentation data can be provided to the alerting system. Dans d’autres situations, il peut être mieux approprié de fournir des données agrégées.In other situations, it might be more appropriate to supply aggregated data. (Par exemple, une alerte peut être déclenchée si l’utilisation du processeur pour un nœud a dépassé 90 % au cours des 10 dernières minutes.)(For example, an alert can be triggered if the CPU utilization for a node has exceeded 90 percent over the last 10 minutes). Les détails fournis au système d’alerte doivent également inclure toutes les informations de résumé et de contexte appropriées.The details provided to the alerting system should also include any appropriate summary and context information. Ces données peuvent aider à réduire la possibilité que des événements de type faux positif déclenchent une alerte.This data can help reduce the possibility that false-positive events will trip an alert.

SignalementReporting

Le reporting permet de générer une vue d’ensemble du système.Reporting is used to generate an overall view of the system. Il peut intégrer des données historiques en plus des informations actuelles.It might incorporate historical data in addition to current information. Les exigences de reporting elles-mêmes se répartissent en deux grandes catégories : reporting opérationnel et reporting de sécurité.Reporting requirements themselves fall into two broad categories: operational reporting and security reporting.

Le reporting opérationnel inclut généralement les aspects suivants :Operational reporting typically includes the following aspects:

  • Agrégation des statistiques qui vous permettent de comprendre l’utilisation des ressources du système global ou des sous-systèmes spécifiés pendant un laps de temps spécifié.Aggregating statistics that you can use to understand resource utilization of the overall system or specified subsystems during a specified time window.
  • Identification des tendances de l’utilisation des ressources pour le système global ou des sous-systèmes spécifiés pendant une période spécifiée.Identifying trends in resource usage for the overall system or specified subsystems during a specified period.
  • Supervision des exceptions qui se sont produites dans le système ou dans les sous-systèmes spécifiés pendant une période spécifiée.Monitoring the exceptions that have occurred throughout the system or in specified subsystems during a specified period.
  • Détermination de l’efficacité de l’application quant aux ressources déployées et pour savoir si le volume des ressources (et leur coût associé) peut être réduit sans avoir d’impact inutile sur les performances.Determining the efficiency of the application in terms of the deployed resources, and understanding whether the volume of resources (and their associated cost) can be reduced without affecting performance unnecessarily.

Le reporting de sécurité vise à suivre l’utilisation du système par le client.Security reporting is concerned with tracking customers' use of the system. Il peut inclure les éléments suivants :It can include:

  • Audit des opérations utilisateur.Auditing user operations. Cela nécessite d’enregistrer les requêtes individuelles effectuées par chaque utilisateur ainsi que les dates et heures.This requires recording the individual requests that each user performs, together with dates and times. Les données doivent être structurées pour permettre à un administrateur de reconstruire rapidement la séquence des opérations effectuées par un utilisateur sur une période spécifiée.The data should be structured to enable an administrator to quickly reconstruct the sequence of operations that a user performs over a specified period.
  • Suivi de l’utilisation des ressources par l’utilisateur.Tracking resource use by user. Cela nécessite d’enregistrer la manière dont chaque requête accède aux diverses ressources qui constituent le système, ainsi que la durée.This requires recording how each request for a user accesses the various resources that compose the system, and for how long. Un administrateur doit pouvoir utiliser ces données pour générer un rapport d’utilisation par utilisateur sur une période spécifiée, éventuellement à des fins de facturation.An administrator must be able to use this data to generate a utilization report by user over a specified period, possibly for billing purposes.

Dans de nombreux cas, les traitements par lots peuvent générer des rapports en fonction d’une planification définie.In many cases, batch processes can generate reports according to a defined schedule. (La latence n’est normalement pas un problème.) Mais ils devraient également être disponibles pour la génération sur une base ad hoc si nécessaire.(Latency is not normally an issue.) But they should also be available for generation on an ad hoc basis if needed. Par exemple, si vous stockez des données dans une base de données relationnelle telle qu’une base de données Azure SQL, vous pouvez utiliser un outil tel que SQL Server Reporting Services pour extraire et formater les données et les présenter sous la forme d’un ensemble de rapports.As an example, if you are storing data in a relational database such as Azure SQL Database, you can use a tool such as SQL Server Reporting Services to extract and format data and present it as a set of reports.

  • Recommandations en matière de mise à l’échelle automatique décrit comment alléger les contraintes de gestion en réduisant le recours à un opérateur dédié à la surveillance continue des performances d’un système, ainsi qu’à l’ajout et au retrait des ressources.Autoscaling guidance describes how to decrease management overhead by reducing the need for an operator to continually monitor the performance of a system and make decisions about adding or removing resources.
  • Le modèle de surveillance des points de terminaison en santé décrit comment mettre en œuvre des vérifications fonctionnelles dans une application à laquelle les outils externes peuvent accéder par des points de terminaison exposés à intervalles réguliers.Health Endpoint Monitoring pattern describes how to implement functional checks within an application that external tools can access through exposed endpoints at regular intervals.
  • Le modèle de file d’attente prioritaire montre comment hiérarchiser les messages en file d’attente afin que les demandes urgentes soient reçues et puissent être traitées avant les messages moins urgents.Priority Queue pattern shows how to prioritize queued messages so that urgent requests are received and can be processed before less urgent messages.

Étapes suivantesNext steps