Usa Amazon Athena per interrogare le misurazioni Internet nei file di log di Amazon S3 - Amazon CloudWatch

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Usa Amazon Athena per interrogare le misurazioni Internet nei file di log di Amazon S3

Puoi usare Amazon Athena per interrogare e visualizzare le misurazioni Internet che Amazon CloudWatch Internet Monitor pubblica su un bucket Amazon S3. In Internet Monitor è disponibile un'opzione per pubblicare le misurazioni Internet per la tua applicazione in un bucket S3 per il traffico connesso a Internet per le reti urbane monitorate (sedi dei clienti e, in genere, provider di servizi Internet o). ASNs ISPs Indipendentemente dal fatto che tu scelga di pubblicare le misurazioni su S3, Internet Monitor pubblica automaticamente le misurazioni Internet su CloudWatch Logs ogni cinque minuti per le prime 500 reti urbane (per volume di traffico) per ogni monitor.

Questo capitolo include i passaggi su come creare una tabella in Athena per le misurazioni su Internet che si trova in un file di log S3, quindi fornisce query di esempio per visualizzare diverse visualizzazioni delle misurazioni. Ad esempio, puoi interrogare le 10 reti urbane più colpite dall'impatto sulla latenza.

Utilizzo di Amazon Athena per creare una tabella per le misurazioni Internet in Monitor Internet

Per iniziare a utilizzare Athena con i file di log di S3 per Monitor Internet, devi prima creare una tabella per le misurazioni Internet.

Segui i passaggi di questa procedura per creare una tabella in Athena basata sui file di log di S3. Quindi, puoi eseguire query Athena sulla tabella, come questi esempi di query di misurazione su Internet, per ottenere informazioni sulle tue misurazioni.

Creazione di una tabella Athena

  1. Apri la console Athena all'indirizzo https://console.aws.amazon.com/athena/.

  2. Nell'editor di query Athena, inserisci un'istruzione di query per generare una tabella con le misurazioni Internet di Monitor Internet. Sostituisci il valore del LOCATION parametro con la posizione del bucket S3 in cui sono archiviate le misurazioni Internet di Internet Monitor.

    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://amzn-s3-demo-bucket/bucket_prefix/AWSLogs/account_id/internetmonitor/AWS_Region/' TBLPROPERTIES ('skip.header.line.count' = '1');
  3. Inserisci una istruzione per creare una partizione per leggere i dati. Ad esempio, la seguente query crea una singola partizione per una data e una posizione specificate:

    ALTER TABLE internet_measurements ADD PARTITION (year = 'YYYY', month = 'MM', day = 'dd') LOCATION 's3://amzn-s3-demo-bucket/bucket_prefix/AWSLogs/account_id/internetmonitor/AWS_Region/YYYY/MM/DD';
  4. Seleziona Esegui.

Esempi di istruzioni Athena per misurazioni Internet

Di seguito è riportato un esempio di istruzione per generare una tabella:

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://internet-measurements/TestMonitor/AWSLogs/1111222233332/internetmonitor/us-east-2/' TBLPROPERTIES ('skip.header.line.count' = '1');

Di seguito è riportato un esempio di istruzione per creare una partizione per leggere i dati:

ALTER TABLE internet_measurements ADD PARTITION (year = '2023', month = '04', day = '07') LOCATION 's3://internet-measurements/TestMonitor/AWSLogs/1111222233332/internetmonitor/us-east-2/2023/04/07/'

Esempi di query Amazon Athena da utilizzare con le misurazioni Internet in Monitor Internet

Questa sezione include query di esempio che puoi utilizzare con Amazon Athena per ottenere informazioni sulle misurazioni Internet della tua applicazione pubblicate su Amazon S3.

Interroga le sedi dei 10 clienti maggiormente interessate (in termini di percentuale totale di traffico) e ASNs

Esegui questa query Athena per restituire le 10 principali reti urbane interessate (in termini di percentuale totale di traffico), ovvero le sedi dei clienti e, in genere, i provider di servizi Internet. ASNs

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

Interroga le 10 sedi dei clienti maggiormente interessate (in base alla disponibilità) e ASNs

Esegui questa query Athena per restituire le 10 principali reti urbane interessate (in termini di percentuale totale di traffico), ovvero le sedi dei clienti e, in genere, i provider di servizi Internet. ASNs

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

Interroga le 10 sedi dei clienti più colpite (in base alla latenza) e ASNs

Esegui questa query Athena per restituire le 10 principali reti urbane interessate (in base all'impatto sulla latenza), ovvero le sedi dei clienti e, in genere, i provider di servizi Internet. ASNs

SELECT json_extract_scalar(clientLocation, '$.city') as city, json_extract_scalar(clientLocation, '$.networkname') as networkName, sum( cast( json_extract_scalar( internetHealth, '$.performance.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

Esamina i punti salienti del traffico relativi alle sedi dei tuoi clienti e ASNs

Esegui questa query Athena per restituire i dati salienti del traffico, tra cui il punteggio di disponibilità, il punteggio delle prestazioni e il time-to-first byte per le reti cittadine, ovvero le ubicazioni dei clienti e, in genere, i provider di servizi Internet. ASNs

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 where json_extract_scalar(clientLocation, '$.city') != 'N/A' GROUP BY json_extract_scalar(clientLocation, '$.city'), json_extract_scalar(clientLocation, '$.subdivision'), json_extract_scalar(clientLocation, '$.country') ORDER BY totalBytes desc limit 100

Per ulteriori informazioni sull'utilizzo di Athena, consulta la Guida per l'utente di Amazon Athena.