OpenSearch bahasa PPL - CloudWatch Log Amazon

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

OpenSearch bahasa PPL

Bagian ini berisi pengantar dasar untuk menanyakan CloudWatch Log menggunakan OpenSearch PPL. Dengan PPL, Anda dapat mengambil, menanyakan, dan menganalisis data menggunakan perintah piped-together, sehingga lebih mudah untuk memahami dan menyusun kueri yang kompleks. Sintaksnya didasarkan pada pipa Unix, dan memungkinkan rantai perintah untuk mengubah dan memproses data. Dengan PPL, Anda dapat memfilter dan mengumpulkan data, dan menggunakan serangkaian matematika, string, tanggal, kondisional, dan fungsi lainnya yang kaya untuk analisis.

Anda dapat menggunakan OpenSearch PPL hanya untuk kueri grup log di Kelas Log Standar. Saat memilih grup log mana yang akan ditanyakan, Anda dapat memilih satu grup log, kumpulan grup log yang berbagi awalan, atau memilih semua grup log

catatan

Untuk informasi tentang semua perintah kueri OpenSearch PPL yang didukung di CloudWatch Log dan informasi terperinci tentang sintaks dan pembatasan, lihat perintah PPL yang didukung di Panduan Pengembang OpenSearch Layanan.

Perintah atau fungsi Kueri contoh Deskripsi

ladang

fields field1, field2

Menampilkan satu set bidang yang membutuhkan proyeksi.

join

LEFT JOIN left=l, right=r on l.id = r.id `join_right_lg` | fields l.field_1, r.field_2

Bergabung dengan dua kumpulan data bersama-sama.

di mana

where field1="success" | where field2 != "i-023fe0a90929d8822" | fields field3, field4, field5,field6 | head 1000

Memfilter data berdasarkan kondisi yang Anda tentukan.

statistik

stats count(), count(field1), min(field1), max(field1), avg(field1) by field2 | head 1000

Melakukan agregasi dan perhitungan

mengurai

parse field1 ".*/(?<field2>[^/]+$)" | where field2 = "requestId" | fields field1, field2 | head 1000

Mengekstrak pola ekspresi reguler (regex) dari string dan menampilkan pola yang diekstraksi. Pola yang diekstraksi dapat digunakan lebih lanjut untuk membuat bidang baru atau menyaring data.

menyortir

stats count(), count(field1), min(field1) as field1Alias, max(`field1`), avg(`field1`) by field2 | sort -field1Alias | head 1000

Urutkan hasil yang ditampilkan dengan nama bidang. Gunakan sort - FieldName untuk mengurutkan dalam urutan menurun.

eval

eval field2 = field1 * 2 | fields field1, field2 | head 20

Memodifikasi atau memproses nilai bidang dan menyimpannya di bidang yang berbeda. Ini berguna untuk memodifikasi kolom secara matematis, menerapkan fungsi string ke kolom, atau menerapkan fungsi tanggal ke kolom.

ganti nama

rename field2 as field1 | fields field1;

Mengganti nama satu atau beberapa bidang di hasil pencarian.

kepala

fields `@message` | head 20

Membatasi hasil kueri yang ditampilkan ke baris N pertama.

atas

top 2 field1 by field2

Menemukan nilai yang paling sering untuk bidang.

dedup

dedup field1 | fields field1, field2, field3

Menghapus entri duplikat berdasarkan bidang yang Anda tentukan.

langka

rare field1 by field2

Menemukan nilai yang paling tidak sering dari semua bidang dalam daftar bidang.

subkueri

where field_1 IN [ search source= `subquery_lg` | fields field_2 ] | fields id, field_1

Melakukan kueri yang kompleks dan bersarang dalam pernyataan PPL Anda.

garis tren

trendline sma(2, field1) as field1Alias

Menghitung rata-rata bergerak bidang.

EventStats

eventstats sum(field1) by field2

Memperkaya data acara Anda dengan statistik ringkasan yang dihitung. Ini menganalisis bidang tertentu dalam acara Anda, menghitung berbagai ukuran statistik, dan kemudian menambahkan hasil ini ke setiap peristiwa asli sebagai bidang baru.

membesar

eval tags_array_string = json_extract(`@message`, '$.tags')| eval tags_array = json_array(json_extract(tags_string, '$[0]'), json_extract(tags_string, '$[1]'))| expand tags_array as color_tags

Memecah bidang yang berisi beberapa nilai menjadi baris terpisah, membuat baris baru untuk setiap nilai di bidang yang ditentukan.

fillnull

fields `@timestamp`, error_code, status_code | fillnull using status_code = "UNKNOWN", error_code = "UNKNOWN"

Mengisi bidang null dengan nilai yang Anda berikan. Ini dapat digunakan dalam satu atau lebih bidang.

meratakan

eval metadata_struct = json_object('size', json_extract(metadata_string, '$.size'), 'color', json_extract(metadata_string, '$.color')) | flatten metadata_struct as (meta_size, meta_color)

Meratakan bidang. Bidang harus dari jenis ini: struct<?,?> atauarray<struct<?,?>>.

cidrmatch

where cidrmatch(ip, '2003:db8::/32') | fields ip

Memeriksa apakah alamat IP yang ditentukan berada dalam kisaran CIDR yang diberikan.

ringkasan lapangan

where field1 != 200 | fieldsummary includefields= field1 nulls=true

Menghitung statistik dasar untuk setiap bidang (hitungan, hitungan berbeda, min, maks, rata-rata, stddev, dan rata-rata).

grok

grok email '.+@%{HOSTNAME:host}' | fields email, host

Mem-parsing bidang teks dengan pola grok dan menambahkan hasilnya ke hasil pencarian.

Fungsi string

eval field1Len = LENGTH(field1) | fields field1Len

Fungsi bawaan di PPL yang dapat memanipulasi dan mengubah data string dan teks dalam kueri PPL. Misalnya, mengonversi kasus, menggabungkan string, mengekstraksi bagian, dan membersihkan teks.

Fungsi Tanggal-Waktu

eval newDate = ADDDATE(DATE('2020-08-26'), 1) | fields newDate

Fungsi bawaan untuk menangani dan mengubah data tanggal dan stempel waktu dalam kueri PPL. Misalnya, date_add, date_format, datediff, date-sub, timestampadd, timestampdiff, current_timezone, utc_timestamp, dan current_date.

Fungsi syarat

eval field2 = isnull(field1) | fields field2, field1, field3

Fungsi bawaan yang memeriksa kondisi bidang tertentu, dan mengevaluasi ekspresi secara kondisional. Misalnya, jika field1 adalah null, kembalikan field2.

Fungsi matematika

eval field2 = ACOS(field1) | fields field1

Fungsi bawaan untuk melakukan perhitungan dan transformasi matematis dalam kueri PPL. Misalnya, abs (nilai absolut), bulat (angka bulat), sqrt (akar kuadrat), pow (perhitungan daya), dan ceil (membulatkan ke bilangan bulat terdekat).

CryptoGraphic fungsi

eval crypto = MD5(field)| head 1000

Untuk menghitung hash dari bidang yang diberikan

Fungsi JSON

eval valid_json = json('[1,2,3,{"f1":1,"f2":[5,6]},4]') | fields valid_json

Fungsi bawaan untuk menangani JSON termasuk array, ekstraksi, dan validasi. Misalnya, json_object, json_array, to_json_string, json_array_length, json_extract, json_keys, dan json_valid.