View a markdown version of this page

Gunakan Amazon Athena untuk menanyakan pengukuran internet di file log Amazon S3 - Amazon CloudWatch

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Gunakan Amazon Athena untuk menanyakan pengukuran internet di file log Amazon S3

Anda dapat menggunakan Amazon Athena untuk menanyakan dan melihat pengukuran internet yang dipublikasikan Internet Monitor ke bucket Amazon S3. Ada opsi di Monitor Internet untuk menerbitkan pengukuran internet untuk aplikasi Anda ke bucket S3 atas lalu lintas yang dapat diakses internet untuk jaringan kota yang dipantau (lokasi klien dan ASN, biasanya penyedia layanan internet atau ISP). Terlepas dari apakah Anda memilih untuk mempublikasikan pengukuran ke S3, Internet Monitor secara otomatis menerbitkan pengukuran internet ke CloudWatch Log setiap lima menit untuk 500 jaringan kota teratas (berdasarkan volume lalu lintas) untuk setiap monitor.

Bab ini mencakup langkah-langkah cara membuat tabel di Athena untuk pengukuran internet yang terletak di berkas log S3, dan kemudian memberikan contoh kueri untuk melihat tampilan pengukuran yang berbeda. Misalnya, Anda dapat menjalankan kueri untuk 10 jaringan kota teratas yang terdampak berdasarkan dampak latensi.

Menggunakan Amazon Athena untuk membuat tabel untuk pengukuran internet di Monitor Internet

Untuk mulai menggunakan Athena dengan berkas log S3 Monitor Internet Anda, pertama-tama buatlah tabel untuk pengukuran internet.

Ikuti langkah-langkah dalam prosedur ini untuk membuat tabel di Athena berdasarkan berkas log S3. Kemudian, Anda dapat menjalankan kueri Athena di sebuah tabel, misalnya contoh kueri pengukuran internet ini, untuk mendapatkan informasi tentang pengukuran Anda.

Untuk membuat tabel Athena

  1. Buka konsol Athena di https://console.aws.amazon.com/athena/.

  2. Di editor kueri Athena, masukkan pernyataan kueri untuk menghasilkan tabel dengan pengukuran internet di Monitor Internet. Ganti nilai untuk parameter LOCATION dengan lokasi bucket S3 tempat pengukuran internet disimpan di Monitor Internet Anda.

    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. Masukkan sebuah pernyataan untuk membuat partisi untuk membaca data. Misalnya, kueri berikut menciptakan partisi tunggal untuk tanggal dan lokasi yang ditentukan:

    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. Pilih Jalankan.

Contoh pernyataan Athena untuk pengukuran internet

Berikut ini adalah contoh dari pernyataan untuk menghasilkan tabel:

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');

Berikut ini adalah contoh dari pernyataan untuk membuat partisi untuk membaca data:

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/'

Contoh kueri Amazon Athena untuk digunakan dengan pengukuran internet di Internet Monitor

Bagian ini mencakup contoh kueri yang bisa digunakan di Amazon Athena untuk mendapatkan informasi tentang pengukuran internet aplikasi Anda yang dipublikasikan di Amazon S3.

Jalankan kueri untuk 10 lokasi klien dan ASN teratas yang paling terdampak (berdasarkan persentase lalu lintas total)

Jalankan kueri Athena ini untuk menampilkan 10 jaringan kota yang terdampak (berdasarkan persentase lalu lintas total) — yaitu, lokasi klien dan ASN, biasanya penyedia layanan internet.

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

Jalankan kueri untuk 10 lokasi klien dan ASN teratas Anda yang terdampak (berdasarkan ketersediaan)

Jalankan kueri Athena ini untuk menampilkan 10 jaringan kota yang terdampak (berdasarkan persentase lalu lintas total) — yaitu, lokasi klien dan ASN, biasanya penyedia layanan internet.

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

Jalankan kueri untuk 10 lokasi klien dan ASN teratas Anda yang terdampak (berdasarkan latensi)

Jalankan kueri Athena ini untuk menampilkan 10 jaringan kota yang terdampak (berdasarkan latensi) — yaitu, lokasi klien dan ASN, biasanya penyedia layanan internet.

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

Lalu lintas kueri menyoroti lokasi klien dan ASN Anda

Jalankan kueri Athena ini untuk menampilkan lalu lintas yang disorot, termasuk skor ketersediaan, skor performa, dan waktu untuk mendapat byte pertama untuk jaringan kota Anda—yaitu, lokasi klien dan ASN, biasanya penyedia layanan internet.

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

Untuk informasi selengkapnya tentang penggunaan Athena, silakan lihat Panduan Pengguna Amazon Athena.