Boolean, perbandingan, numerik, datetime, dan fungsi lainnya - CloudWatch Log Amazon

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

Boolean, perbandingan, numerik, datetime, dan fungsi lainnya

CloudWatch Log Insights mendukung banyak operasi dan fungsi lain dalam kueri, seperti yang dijelaskan di bagian berikut.

Operator aritmatika

Operator aritmetika menerima tipe data numerik sebagai argumen dan mengembalikan hasil numerik. Gunakan operator aritmetika dalam fields perintah filter dan sebagai argumen untuk fungsi lainnya.

Operasi Deskripsi

a + b

Penambahan

a - b

Pengurangan

a * b

Perkalian

a / b

Pembagian

a ^ b

Eksponensiasi (pengembalian) 2 ^ 3 8

a % b

Sisa atau modulus (pengembalian) 10 % 3 1

Operator Boolean

Gunakan operator Booleanand,or, dannot.

catatan

Gunakan operator Boolean hanya dalam fungsi yang mengembalikan nilai TRUE atau FALSE.

Operator perbandingan

Operator perbandingan menerima semua tipe data sebagai argumen dan mengembalikan hasil Boolean. Gunakan operasi perbandingan dalam filter perintah dan sebagai argumen untuk fungsi lainnya.

Operator Deskripsi

=

Setara

!=

Tidak sama

<

Kurang dari

>

Lebih besar dari

<=

Kurang dari atau sama dengan

>=

Lebih besar dari atau sama dengan

Operator Numerik

Operasi numerik menerima tipe data numerik sebagai argumen dan mengembalikan hasil numerik. Gunakan operasi numerik dalam fields perintah filter dan sebagai argumen untuk fungsi lainnya.

Operasi Tipe Hasil Deskripsi

abs(a: number)

number

Nilai absolut

ceil(a: number)

number

Dibulatkan ke atas (bilangan bulat terkecil yang lebih besar dari atau sama dengan nilai) a

floor(a: number)

number

Dibulatkan ke bawah (bilangan bulat terbesar yang lebih kecil dari atau sama dengan nilai) a

greatest(a: number, ...numbers: number[])

number

Mengembalikan nilai terbesar

least(a: number, ...numbers: number[])

number

Mengembalikan nilai terkecil

log(a: number)

number

Log natural

sqrt(a: number)

number

Akar kuadrat

Jenis struktur

Peta atau daftar adalah tipe struktur dalam Wawasan CloudWatch Log yang memungkinkan Anda mengakses dan menggunakan atribut untuk kueri.

Contoh: Untuk mendapatkan peta atau daftar

Gunakan jsonParse untuk mengurai bidang yang berupa string json ke dalam peta atau daftar.

fields jsonParse(@message) as json_message
Contoh: Untuk mengakses atribut

Gunakan operator akses titik (map.attribute) untuk mengakses item di peta.. Jika atribut dalam peta berisi karakter khusus, gunakan backticks untuk melampirkan nama atribut (map.attributes. `special.char`).

fields jsonParse(@message) as json_message | stats count() by json_message.status_code

Gunakan operator akses braket (list [index]) untuk mengambil item pada posisi tertentu dalam daftar.

fields jsonParse(@message) as json_message | filter json_message.users[1].action = "PutData"

Bungkus karakter khusus dalam backticks (``) ketika karakter khusus hadir dalam nama kunci.

fields jsonParse(@message) as json_message | filter json_message.`user.id` = "123"
Contoh: hasil kosong

Peta dan daftar diperlakukan sebagai null untuk fungsi string, nomor, dan datetime.

fields jsonParse(@message) as json_message | display toupper(json_message)

Membandingkan peta dan daftar dengan bidang lain menghasilkanfalse.

catatan

Menggunakan peta dan daftar di deduppattern,sort,, dan stats tidak didukung.

Fungsi datetime

Fungsi Datetime

Gunakan fungsi datetime dalam filter perintah fields dan sebagai argumen untuk fungsi lainnya. Gunakan fungsi-fungsi ini untuk membuat bucket waktu untuk kueri dengan fungsi agregat. Gunakan periode waktu yang terdiri dari angka dan salah satu dari yang berikut:

  • msuntuk milidetik

  • suntuk detik

  • mselama beberapa menit

  • hselama berjam-jam

Misalnya, 10m adalah 10 menit, dan 1h 1 jam.

catatan

Gunakan unit waktu yang paling tepat untuk fungsi datetime Anda. CloudWatch Log membatasi permintaan Anda sesuai dengan satuan waktu yang Anda pilih. Misalnya, ini membatasi 60 sebagai nilai maksimum untuk setiap permintaan yang menggunakans. Jadi, jika Anda menentukanbin(300s), CloudWatch Log sebenarnya mengimplementasikan ini sebagai 60 detik, karena 60 adalah jumlah detik dalam satu menit sehingga CloudWatch Log tidak akan menggunakan angka yang lebih tinggi dari 60 dengans. Untuk membuat ember 5 menit, gunakan bin(5m) sebagai gantinya.

Tutup untuk ms adalah 1000, tutup untuk s dan m 60, dan tutupnya h adalah 24.

Tabel berikut berisi daftar fungsi datetime yang berbeda yang dapat Anda gunakan dalam perintah kueri. Tabel mencantumkan jenis hasil setiap fungsi dan berisi deskripsi dari setiap fungsi.

Tip

Saat Anda membuat perintah kueri, Anda dapat menggunakan pemilih interval waktu untuk memilih jangka waktu yang ingin Anda kueri. Misalnya, Anda dapat mengatur periode waktu antara interval 5 dan 30 menit; interval 1, 3, dan 12 jam; atau kerangka waktu khusus. Anda juga dapat mengatur periode waktu antara tanggal tertentu.

Fungsi Tipe hasil Deskripsi

bin(period: Period)

Stempel Waktu

Membulatkan nilai @timestamp ke periode waktu tertentu dan kemudian memotong. Misalnya, bin(5m) bulatkan nilai @timestamp ke 5 menit terdekat.

Anda dapat menggunakan ini untuk mengelompokkan beberapa entri log bersama-sama dalam kueri. Contoh berikut mengembalikan jumlah pengecualian per jam:

filter @message like /Exception/ | stats count(*) as exceptionCount by bin(1h) | sort exceptionCount desc

Satuan waktu dan singkatan berikut didukung dengan bin fungsi tersebut. Untuk semua unit dan singkatan yang menyertakan lebih dari satu karakter, menambahkan s ke pluralisasi didukung. Jadi keduanya hr dan hrs bekerja untuk menentukan jam.

  • millisecond ms msec

  • second s sec

  • minute m min

  • hour h hr

  • day d

  • week w

  • month mo mon

  • quarter q qtr

  • year y yr

datefloor(timestamp: Timestamp, period: Period)

Stempel Waktu

Memotong stempel waktu ke periode tertentu. Misalnya, datefloor(@timestamp, 1h) memotong semua nilai @timestamp ke bagian bawah jam.

dateceil(timestamp: Timestamp, period: Period)

Stempel waktu

Membulatkan stempel waktu ke periode tertentu dan kemudian memotong. Misalnya, dateceil(@timestamp, 1h) memotong semua nilai @timestamp ke bagian atas jam.

fromMillis(fieldName: number)

Stempel waktu

Menafsirkan bidang input sebagai jumlah milidetik sejak jangka waktu Unix dan mengubahnya menjadi stempel waktu.

toMillis(fieldName: Timestamp)

nomor

Mengonversi stempel waktu yang ditemukan di bidang bernama menjadi angka yang mewakili milidetik sejak jangka waktu Unix. Misalnya, toMillis(@timestamp) mengubah stempel waktu 2022-01-14T13:18:031.000-08:00 menjadi. 1642195111000

now()

number

Mengembalikan waktu pemrosesan query dimulai, dalam detik epoch. Fungsi ini tidak membutuhkan argumen.

Anda dapat menggunakan ini untuk memfilter hasil kueri Anda sesuai dengan waktu saat ini.

Misalnya, kueri berikut mengembalikan semua kesalahan 4xx dari dua jam terakhir:

parse @message "Status Code: *;" as statusCode\n | filter statusCode >= 400 and statusCode <= 499 \n | filter toMillis(@timestamp) >= (now() * 1000 - 7200000)

Contoh berikut mengembalikan semua entri log dari lima jam terakhir yang berisi kata error atau failure

fields @timestamp, @message | filter @message like /(?i)(error|failure)/ | filter toMillis(@timestamp) >= (now() * 1000 - 18000000)
catatan

Saat ini, CloudWatch Logs Insights tidak mendukung pemfilteran log dengan stempel waktu yang dapat dibaca manusia.

Fungsi umum

Fungsi umum

Gunakan fungsi umum dalam filter perintah fields dan sebagai argumen untuk fungsi lainnya.

Fungsi Tipe hasil Deskripsi

ispresent(fieldName: LogField)

Boolean

Mengembalikan true jika bidang ada

coalesce(fieldName: LogField, ...fieldNames: LogField[])

LogField

Mengembalikan nilai pertama yang bukan null dari daftar

Fungsi JSON

Fungsi JSON

Gunakan fungsi JSON dalam filter perintah fields dan sebagai argumen untuk fungsi lainnya.

Fungsi Tipe hasil Deskripsi

jsonParse(fieldName: string)

Peta | Daftar | Kosong

Mengembalikan peta atau daftar ketika masukan adalah representasi string dari objek JSON atau array JSON. Mengembalikan nilai kosong, jika masukan bukan salah satu representasi.

jsonStringify(fieldName: Map | List)

String

Mengembalikan string JSON dari peta atau daftar data.

Fungsi string alamat IP

Fungsi string alamat IP

Gunakan fungsi string alamat IP dalam fields perintah filter dan sebagai argumen untuk fungsi lainnya.

Fungsi Tipe hasil Deskripsi

isValidIp(fieldName: string)

boolean

Mengembalikan true jika bidang adalah valid IPv4 atau IPv6 alamat.

isValidIpV4(fieldName: string)

boolean

Mengembalikan true jika bidang adalah IPv4 alamat yang valid.

isValidIpV6(fieldName: string)

boolean

Mengembalikan true jika bidang adalah IPv6 alamat yang valid.

isIpInSubnet(fieldName: string, subnet: string)

boolean

Mengembalikan true jika bidang adalah valid IPv4 atau IPv6 alamat dalam subnet v4 atau v6 yang ditentukan. Ketika Anda menentukan subnet, gunakan notasi CIDR2001:db8::/32, seperti 192.0.2.0/24 atau di mana 192.0.2.0 atau 2001:db8:: di mana blok CIDR.

isIpv4InSubnet(fieldName: string, subnet: string)

boolean

Mengembalikan true jika bidang adalah IPv4 alamat yang valid dalam subnet v4 yang ditentukan. Saat Anda menentukan subnet, gunakan notasi CIDR, seperti 192.0.2.0/24 di 192.0.2.0 mana awal blok CIDR.

isIpv6InSubnet(fieldName: string, subnet: string)

boolean

Mengembalikan true jika bidang adalah IPv6 alamat yang valid dalam subnet v6 yang ditentukan. Saat Anda menentukan subnet, gunakan notasi CIDR, seperti 2001:db8::/32 di 2001:db8:: mana awal blok CIDR.

Fungsi string

Fungsi string

Gunakan fungsi string dalam filter perintah fields dan sebagai argumen untuk fungsi lainnya.

Fungsi Tipe hasil Deskripsi

isempty(fieldName: string)

Bilangan

Mengembalikan 1 jika bidang tidak ada atau string kosong.

isblank(fieldName: string)

Bilangan

Mengembalikan 1 jika bidang tidak ada, string kosong, atau hanya berisi spasi.

concat(str: string, ...strings: string[])

string

Menyatukan string.

ltrim(str: string)

ltrim(str: string, trimChars: string)

string

Jika fungsi tidak memiliki argumen kedua, itu menghapus spasi dari sebelah kiri string. Jika fungsi memiliki argumen string kedua, itu tidak menghapus spasi putih. Sebaliknya, ia menghapus karakter trimChars dari kiristr. Misalnya, ltrim("xyZxyfooxyZ","xyZ") mengembalikan "fooxyZ".

rtrim(str: string)

rtrim(str: string, trimChars: string)

string

Jika fungsi tidak memiliki argumen kedua, itu menghapus spasi dari sebelah kanan string. Jika fungsi memiliki argumen string kedua, itu tidak menghapus spasi putih. Sebaliknya, ia menghapus karakter trimChars dari dari kananstr. Misalnya, rtrim("xyZfooxyxyZ","xyZ") mengembalikan "xyZfoo".

trim(str: string)

trim(str: string, trimChars: string)

string

Jika fungsi tidak memiliki argumen kedua, itu menghapus spasi dari kedua ujung string. Jika fungsi memiliki argumen string kedua, itu tidak menghapus spasi putih. Sebaliknya, ia menghapus karakter trimChars dari kedua sisistr. Misalnya, trim("xyZxyfooxyxyZ","xyZ") mengembalikan "foo".

strlen(str: string)

nomor

Mengembalikan panjang string dalam poin kode Unicode.

toupper(str: string)

string

Mengonversi string menjadi huruf besar.

tolower(str: string)

string

Mengonversi string menjadi huruf kecil.

substr(str: string, startIndex: number)

substr(str: string, startIndex: number, length: number)

string

Mengembalikan substring dari indeks yang ditentukan oleh argumen angka ke akhir string. Jika fungsi memiliki argumen angka kedua, itu berisi panjang substring yang akan diambil. Misalnya, substr("xyZfooxyZ",3, 3) mengembalikan "foo".

replace(fieldName: string, searchValue: string, replaceValue: string)

string

Mengganti semua searchValue dalam fieldName: stringdengan replaceValue.

Misalnya, fungsi replace(logGroup,"smoke_test","Smoke") mencari peristiwa log di mana bidang logGroup berisi nilai string smoke_test dan menggantikan nilai dengan string. Smoke

strcontains(str: string, searchValue: string)

number

Mengembalikan 1 jika str berisi searchValue dan 0 sebaliknya.