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 aritmatika menerima tipe data numerik sebagai argumen dan mengembalikan hasil numerik. Gunakan operator aritmatika dalam filter dan fields perintah 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 TRUEatau 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

=

Sama

!=

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 filter dan fields perintah dan sebagai argumen untuk fungsi lainnya.

Operasi Tipe Hasil Deskripsi

abs(a: number)

number

Nilai absolut

ceil(a: number)

number

Bulat ke langit-langit (bilangan bulat terkecil yang lebih besar dari nilai) a

floor(a: number)

number

Bulat ke lantai (bilangan bulat terbesar yang lebih kecil dari 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 alami

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 = "PutDat

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 fields dan filter perintah dan sebagai argumen untuk fungsi lainnya. Gunakan 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

  • sselama beberapa 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 query. 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 periode 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

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 fields dan filter perintah 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 non-null pertama dari daftar

Fungsi JSON

JSONfungsi

Gunakan JSON fungsi dalam fields dan filter perintah 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 JSON objek atau JSON array. Mengembalikan nilai kosong, jika masukan bukan salah satu representasi.

jsonStringify(fieldName: string)

String

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

Fungsi string alamat IP

Fungsi string alamat IP

Gunakan fungsi string alamat IP dalam filter dan fields perintah 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 v4 atau v6 subnet yang ditentukan. Saat Anda menentukan subnet, gunakan CIDR notasi seperti 192.0.2.0/24 atau2001:db8::/32, di mana 192.0.2.0 atau 2001:db8:: merupakan awal dari 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 CIDR notasi 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 CIDR notasi seperti 2001:db8::/32 di 2001:db8:: mana awal blok. CIDR

Fungsi string

Fungsi string

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

Fungsi Tipe hasil Deskripsi

isempty(fieldName: string)

Jumlah

Mengembalikan 1 jika bidang tidak ada atau string kosong.

isblank(fieldName: string)

Jumlah

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, ia menghapus spasi putih dari 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, ia menghapus spasi putih dari 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, ia menghapus spasi putih 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.