Analyse des journaux de mesure d’Amazon CloudWatch Internet Monitor à l’aide d’Amazon Athena et d’Amazon QuickSight | Services Web Amazon

Aperçu

Dans cet article de blog, nous décrivons comment utiliser Amazon Athena avec les informations de mesure d’Amazon CloudWatch Internet Monitors stockées sur Amazon S3. Vous pouvez utiliser Athena pour analyser les journaux d’événements, puis créer un tableau de bord pour visualiser les journaux de mesure et obtenir des informations à l’aide d’Amazon QuickSight.

Internet Monitor publie des mesures dans CloudWatch Logs pour les réseaux de villes (emplacements et ASN) spécifiques à votre application, pour les 500 principaux réseaux de villes (par volume de trafic). Ces mesures du score de performance, du score de disponibilité, des octets transférés surveillés (octets entrants et sortants) et du temps aller-retour offrent une visibilité sur l’impact des problèmes Internet sur les performances et la disponibilité entre vos applications hébergées sur AWS et vos utilisateurs finaux. Vous pouvez également choisir de publier les mesures de tous vos réseaux urbains surveillés sur Amazon S3, puis d’utiliser différents services d’analyse AWS pour afficher et analyser les informations.

Après avoir créé un moniteur dans Internet Monitor, vous pouvez utiliser le tableau de bord d’Amazon CloudWatch pour filtrer et afficher les informations sur les 500 principaux réseaux de villes afin de visualiser et d’obtenir des informations sur les événements de santé, les performances, etc. Lorsque vous choisissez de publier toutes les mesures sur S3, puis d’utiliser les services d’analyse pour créer un tableau de bord avec les informations, vous avez la possibilité d’effectuer des analyses approfondies de toutes vos mesures Internet Monitor, ainsi que d’analyser et de visualiser les résultats pour obtenir des informations. À l’aide de services tels qu’Athena et QuickSight, vous pouvez compléter et améliorer vos analyses et visualisations pour en savoir encore plus sur les performances, la disponibilité et l’activité de vos applications.

Diagramme illustrant l'accès à Internet Monitors à partir du tableau de bord CloudWatch, la publication sur S3 et l'intégration avec les services d'analyse.

Figure 1. Diagramme illustrant l’accès à CloudWatch Internet Monitors à partir du tableau de bord CloudWatch, la publication sur S3 et l’intégration avec les services d’analyse.

Avant de commencer

Les étapes ici supposent que vous avez déjà créé un moniteur dans Internet Monitor dans votre compte AWS. Si vous n’avez pas de moniteur, suivez les instructions du chapitre Internet Monitor du Guide de l’utilisateur Amazon CloudWatch pour en créer un, en suivant les étapes de la console ou de l’AWS CLI. Assurez-vous de configurer le moniteur pour publier les mesures sur Amazon S3 lorsque vous le créez, ou modifiez votre moniteur pour activer la fonctionnalité.

Analyser les événements de mesure à l’aide d’Amazon Athena et d’Amazon QuickSight

Si vous choisissez d’utiliser Amazon QuickSight pour créer un tableau de bord afin de visualiser vos événements de mesure Internet Monitor, la première étape consiste à extraire les événements de mesure de S3 dans un tableau dans Amazon Athena. Vous pouvez ensuite créer des requêtes SQL standard pour les mesures spécifiques sur lesquelles vous souhaitez obtenir des informations, par exemple sur des emplacements clients et des ASN spécifiques, ou uniquement sur les emplacements clients affectés par des événements d’intégrité spécifiques.

Créer une table externe dans Athena

Commencez par créer un tableau dans Athena pour vos événements de mesure Internet Monitor. Créez ensuite des exemples de requêtes pour extraire des détails sur les groupes d’informations d’événements que vous souhaitez afficher dans un tableau de bord, avec QuickSight.

Pour utiliser Athena afin de créer un tableau de données d’événements pour vos mesures Internet Monitor :

  1. Ouvrez la console Athena sur https://console.aws.amazon.com/athena/
  2. Dans l’éditeur de requêtes Athena, entrez la commande suivante, puis choisissez Exécuter une requête. Pour le paramètre LOCATION, entrez vos propres informations pour le nom du compartiment S3, le préfixe, le compte et la région.
CREATE EXTERNAL TABLE internet_measurements (
    version INT,
    timestamp INT,
    clientlocation STRING,
    servicelocation STRING,
    percentageoftotaltraffic DOUBLE,
    bytesin INT,
    bytesout INT,
    clientconnectioncount INT,
    internethealth STRING,
    trafficinsights STRING
)
PARTITIONED BY (year STRING, month STRING, day STRING)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
LOCATION 's3://ExampleBucketName/ExamplePrefix/AWSLogs/YourAWSAccountID/internetmonitor/YourRegion/'
TBLPROPERTIES ('skip.header.line.count' = '1');

La commande crée une table de données d’événements appelée internet_mesures.

Interrogation des données d’événements de mesures Internet dans Athena

Avec le tableau des données d’événements, vous pouvez utiliser le SQL standard pour créer des requêtes personnalisées dans Athena afin de renvoyer diverses informations sur les événements de mesures Internet de vos applications. Pour en savoir plus sur l’utilisation de SQL avec Athena, consultez Interrogation de données dans les tables Amazon Athena. Les exemples de requêtes Athena fournis ici peuvent vous donner une idée de ce qui est possible et vous aider à démarrer. Par exemple, vous pouvez commencer par interroger pour renvoyer les principaux emplacements clients et les ASN (fournisseurs de services Internet ou FAI) qui accèdent à votre application en pourcentage du trafic total de votre application.

Pour renvoyer ces informations, vous saisissez une nouvelle requête dans l’éditeur de requêtes Athena, comme indiqué dans la capture d’écran suivante.

Exemple de requête de la table des mesures internet dans l'éditeur de requêtes d'Athena.

Figure 2. Exemple de requête du tableau de mesures Internet dans l’éditeur de requêtes d’Athena.

Voici des exemples de requêtes qui pourraient vous être utiles à utiliser avec vos données de mesures Internet Monitor.

Exemple 1: Top 10 (en pourcentage du trafic total) des villes de localisation des clients et des ASN touchés par un événement sanitaire

SELECT json_extract_scalar(clientLocation, '$.city') as city,
    json_extract_scalar(clientLocation, '$.networkname') as networkName,
    sum(percentageoftotaltraffic) as percentageoftotaltraffic
FROM internet_measurements
GROUP BY json_extract_scalar(clientLocation, '$.city'),
    json_extract_scalar(clientLocation, '$.networkname')
ORDER BY percentageoftotaltraffic desc
limit 10

Exemple 2 : Top 10 des sites et ASN concernés par un impact sur la disponibilité

SELECT json_extract_scalar(clientLocation, '$.city') as city,
    json_extract_scalar(clientLocation, '$.networkname') as networkName,
    sum(
        cast(
            json_extract_scalar(
                internetHealth,
                '$.availability.percentageoftotaltrafficimpacted'
            )
        as double ) 
    ) as percentageOfTotalTrafficImpacted
FROM internet_measurements
GROUP BY json_extract_scalar(clientLocation, '$.city'),
    json_extract_scalar(clientLocation, '$.networkname')
ORDER BY percentageOfTotalTrafficImpacted desc
limit 10

Exemple 3 : Les 100 principaux sites clients (par nombre total d’exemptions transférées) touchés

SELECT json_extract_scalar(clientLocation, '$.city') as city,
    json_extract_scalar(clientLocation, '$.subdivision') as subdivision,
    json_extract_scalar(clientLocation, '$.country') as country,
    avg(cast(json_extract_scalar(internetHealth, '$.availability.experiencescore') as double)) as availabilityScore,
    avg(cast(json_extract_scalar(internetHealth, '$.performance.experiencescore') as double)) performanceScore,
    avg(cast(json_extract_scalar(trafficinsights, '$.timetofirstbyte.currentexperience.value') as double)) as averageTTFB,
    sum(bytesIn) as bytesIn,
    sum(bytesOut) as bytesOut,
    sum(bytesIn + bytesOut) as totalBytes
FROM internet_measurements
GROUP BY 
json_extract_scalar(clientLocation, '$.city'),
    json_extract_scalar(clientLocation, '$.subdivision'),
    json_extract_scalar(clientLocation, '$.country')
ORDER BY totalBytes desc
limit 100

Lorsque vous créez une requête dans Athena, gardez les points suivants à l’esprit :

  • Pour extraire des données de champs JSON imbriqués, utilisez l’une des fonctions Presto, json_extract ou json_extract_scalar. Pour plus d’informations, consultez Extraction de données depuis JSON.
  • Saisissez tous les caractères des champs JSON en minuscules.

Vous pouvez enregistrer des requêtes dans Athena si vous souhaitez pouvoir exécuter les mêmes requêtes ultérieurement. Vous pouvez également télécharger les résultats de vos requêtes au format CSV, pour visualiser ou analyser les informations dans un tableur par exemple. Pour plus d’informations, consultez Téléchargement des fichiers de résultats de requête à l’aide de la console Athena.

Visualisez les événements de mesure dans Amazon QuickSight

Après avoir configuré une table d’événements dans Athena, vous pouvez utiliser Amazon QuickSight pour visualiser les données dans une table Athena en quelques clics seulement. Dans cette section, expliquez comment utiliser QuickSight pour travailler avec des données situées dans une table Athena.

Avant de connecter QuickSight à Athena, assurez-vous d’accorder à QuickSight l’accès à Athena et aux compartiments S3 associés dans votre compte qui contiennent les fichiers d’événements de mesure d’Internet Monitor. Vous pouvez suivre les étapes pour configurer l’accès dans le Guide de l’utilisateur QuickSight.

Pour configurer des visualisations pour vos données dans QuickSight, procédez comme suit :

Les sources de données disponibles dans Athena.

Figure 3 : Les sources de données disponibles dans Athena.

1.Connectez-vous à QuickSight, puis choisissez Ensembles de données.

2.Choisissez Nouvel ensemble de donnéespuis choisissez Athéna comme nouvelle source de données.

L'éditeur de requêtes SQL personnalisé dans Amazon QuickSight.

Figure 4 : L’éditeur de requêtes SQL personnalisé dans Amazon QuickSight.

3.Entrez un nom pour le nouvel ensemble de données, puis choisissez Valider la connexion.

4.Choisissez Créer une source de données.

5.Sélectionnez Utiliser du SQL personnalisépuis entrez un nom pour la requête SQL.

6.Saisissez une requête qui renvoie les informations que vous souhaitez visualiser pour vos événements de mesure, comme indiqué dans la capture d’écran.

Par exemple, vous pouvez saisir la requête suivante :

SELECT json_extract_scalar(clientLocation, '$.city') as city,
json_extract_scalar(clientLocation, '$.country') as country,
json_extract_scalar(clientLocation, '$.subdivision') as state,
    json_extract_scalar(clientLocation, '$.networkname') as networkName,
    sum(percentageoftotaltraffic) as percentageoftotaltraffic
FROM internet_measurements
GROUP BY json_extract_scalar(clientLocation, '$.city'),
json_extract_scalar(clientLocation, '$.country'),
json_extract_scalar(clientLocation, '$.subdivision') ,
    json_extract_scalar(clientLocation, '$.networkname')
ORDER BY percentageoftotaltraffic desc

7.Choisissez Confirmer la requête.

8.Importer vers SPICE pour des analyses plus rapides

Maintenant que vous avez importé vos données dans votre analyse, vous pouvez appliquer une visualisation. Une visualisation est un type de graphique que vous pouvez personnaliser en fonction de ce qui vous aidera à comprendre et analyser les données.

Pour créer une visualisation dans QuickSight :

  1. Dans Amazon QuickSight, choisissez Nouvelle analyse.
  2. Sélectionnez l’ensemble de données que vous avez créé, puis choisissez Utilisation en analyse.
  3. En bas à gauche de l’écran, choisissez Graphique en ligne.
  4. En bas à gauche de l’écran, choisissez Graphique à barres horizontales.
  5. Faites glisser et déposez le pays champ vers le Axe Y
  6. Faites glisser et déposez le pourcentage du trafic total champ vers le Valeur.

Un graphique similaire au suivant devrait être affiché.

Un exemple de graphique qui montre le trafic des applications pour les principaux pays pour une application, trié par trafic principal.

Figure 5 : Un exemple de graphique qui montre le trafic des applications pour les principaux pays pour une application, trié par trafic principal.

Vous pouvez également cartographier le pourcentage du trafic total par emplacement client. Dans QuickSight, pour Type de visualisationchoisir Points sur la cartepuis, sous Puits de terrainpour le point de données géospatiales à visualiser, choisissez ville. La figure suivante montre une capture d’écran de cette zone de QuickSights.

Exemple de visualisation cartographique montrant les principales villes par pourcentage total de trafic

Figure 6 : Exemple de visualisation cartographique montrant les principales villes par pourcentage total de trafic

Résumé

Dans cet article, nous avons décrit comment vous pouvez analyser et visualiser les données d’événements de mesures Internet d’Amazon CloudWatch Internet Monitor à l’aide d’Amazon Athena et d’Amazon QuickSight. Avec ces services, vous pouvez publier, stocker, analyser et visualiser vos données d’événements de mesures Internet de manière flexible et efficace. Vous pouvez utiliser Athena pour interroger les données d’événements stockées dans Amazon S3 à l’aide du SQL standard. Vous pouvez utiliser Amazon QuickSight pour créer des tableaux de bord et des graphiques interactifs afin d’explorer vos données. Avec ces outils, vous pouvez exploiter les données de mesures Internet Monitor que vous stockez dans S3 pour obtenir plus d’informations sur les performances et l’utilisation de vos applications.

À propos des auteurs

Xulong Gao

En tant qu’architecte de solutions senior pour les grands comptes chez Amazon Web Services, Xulong a joué un rôle central dans les lancements mondiaux de nombreux studios de jeux réputés. Son expertise couvre la technologie du jeu, l’optimisation des réseaux mondiaux, la fourniture d’applications, la sécurité des réseaux et des applications et les réseaux de diffusion de contenu (CDN).

Abdul Kader Maliyakkal

Abdul est ingénieur principal en développement logiciel chez Amazon Web Services. Il est passionné par la création et la mise à l’échelle de systèmes, ainsi que par la création d’outils pour les développeurs.

Richi Kumari

Richi est chef de produit senior chez Amazon Web Services et contribue à la conception de stratégies et d’exigences de produits qui répondent efficacement aux besoins des clients.

www.actusduweb.com
Suivez Actusduweb sur Google News


Ce site utilise des cookies pour améliorer votre expérience. Nous supposerons que cela vous convient, mais vous pouvez vous désinscrire si vous le souhaitez. J'accepte Lire la suite