Topik ini menjelaskan sintaksis, parameter, dan contoh penggunaan fungsi operasi field.
Daftar fungsi
Function | Description |
Mengambil nilai dari field log tertentu. Jika Anda memberikan beberapa nama field, fungsi ini mengembalikan nilai field pertama yang ada dalam log. Fungsi ini dapat digunakan bersama fungsi lain. Untuk informasi selengkapnya, lihat Bersihkan data dengan memanggil fungsi. | |
Menambahkan field baru atau menetapkan nilai baru untuk field yang sudah ada. Fungsi ini dapat digunakan bersama fungsi lain. Untuk informasi selengkapnya, lihat Bersihkan data dengan memanggil fungsi. | |
Menghapus field log yang memenuhi kondisi tertentu. Fungsi ini dapat digunakan bersama fungsi lain. Untuk informasi selengkapnya, lihat Transformasi data JSON kompleks. | |
Menyimpan field log yang memenuhi kondisi tertentu. | |
Memaketkan field log dan mengeluarkannya ke field baru. | |
Mengganti nama field log yang memenuhi kondisi tertentu. Fungsi ini dapat digunakan bersama fungsi lain. Untuk informasi selengkapnya, lihat Bersihkan data dengan memanggil fungsi. |
v
Fungsi v digunakan untuk mengambil nilai dari field log tertentu. Jika beberapa nama field ditentukan, fungsi ini mengembalikan nilai field pertama yang ada dalam log.
Sintaksis
v(key, ..., default=None)Parameter
Parameter
Parameter Type
Required
Description
key
String
Yes
Masukkan nama field.
default
Any
No
Jika nama field yang ditentukan tidak ada, fungsi ini mengembalikan nilai `default`. Nilai default-nya adalah None.
Respons
Mengembalikan nilai field pertama yang ada dalam log. Jika tidak ada field yang ditentukan ditemukan, fungsi ini mengembalikan nilai parameter default.
Contoh
Tetapkan nilai field `content` ke field `test_content`.
Log mentah
content: helloAturan transformasi
e_set("test_content", v("content"))Hasil
content: hello test_content: hello
Referensi
Fungsi ini dapat digunakan bersama fungsi lain. Untuk informasi selengkapnya, lihat Bersihkan data dengan memanggil fungsi.
e_set
Fungsi e_set digunakan untuk menambahkan field baru atau menetapkan nilai baru pada field yang sudah ada.
Sintaksis
e_set(key1, value1, key2, value2, mode="overwrite")PentingParameter key1 dan value1 harus ditentukan berpasangan.
Saat menetapkan field waktu seperti F_TIME atau __time__, nilainya harus berupa string numerik.
e_set(F_TIME, "abc") # Salah e_set(F_TIME, "12345678") # Benar
Parameter
Parameter
Parameter type
Required
Description
key
String
Yes
Nama field tujuan. Anda juga dapat memperoleh nama field dari ekspresi string. Untuk informasi selengkapnya tentang cara menetapkan nama field khusus, lihat Event types.
value
Any
Yes
Nilai field baru. Nilai yang bukan string akan dikonversi menjadi string dan ditambahkan ke log. Tuple, list, dan dictionary dikonversi menjadi string objek JSON. Untuk informasi selengkapnya tentang konversi string, lihat Automatic type conversion during assignment.
CatatanJika nilai yang diberikan adalah None, tidak ada pembaruan yang dilakukan.
mode
String
No
Mode overwrite field. Nilai default-nya adalah overwrite. Untuk informasi selengkapnya, lihat Field extraction check and overwrite modes.
Respons
Mengembalikan log yang telah diperbarui.
Contoh
Contoh 1: Tetapkan nilai statis untuk sebuah field.
Tambahkan field baru bernama city dan tetapkan nilainya menjadi Shanghai.
e_set("city", "Shanghai")Contoh 2: Salin nilai field.
Gunakan fungsi ekspresi tunggal untuk menetapkan nilai field ret yang sudah ada ke field baru result.
e_set("result", v("ret"))Contoh 3: Tetapkan nilai dinamis.
Gunakan fungsi ekspresi komposit untuk mengambil nilai field pertama yang ada, mengonversinya ke huruf kecil, lalu menetapkannya ke field result.
e_set("result", str_lower(v("ret", "return")))Contoh 4: Tetapkan nilai field beberapa kali.
Tetapkan nilai field event_type.
e_set("event_type", "login event", "event_info", "login host")Jika nilai field ret adalah fail, tetapkan nilai field event_type menjadi login failed event.
e_if(e_search('ret==fail'), e_set("event_type", "login failed event" ))
Referensi
Fungsi ini dapat digunakan bersama fungsi lainnya. Untuk informasi selengkapnya, lihat Bersihkan data dengan memanggil fungsi.
e_drop_fields
Fungsi e_drop_fields digunakan untuk menghapus field log yang memenuhi kondisi tertentu.
Sintaksis
e_drop_fields(key1, key2, ....,regex=False)Parameter
Parameter
Parameter type
Required
Description
key
String
Yes
Nama field log. Dapat berupa ekspresi reguler. Jika nama field sepenuhnya sesuai dengan kondisi, field tersebut dihapus. Field yang tidak sesuai dipertahankan. Untuk informasi selengkapnya tentang ekspresi reguler, lihat Regular expressions.
Anda harus mengonfigurasi setidaknya satu field log.
regex
Boolean
No
Jika parameter ini diatur ke False, ekspresi reguler tidak digunakan untuk pencocokan. Jika parameter ini tidak dikonfigurasi, nilai default-nya adalah True.
Respons
Mengembalikan log yang telah dihapus field-nya.
Contoh
Jika nilai field content adalah 123, hapus field content dan age.
Log mentah
age: 18 content: 123 name: twissAturan transformasi
e_if(e_search("content==123"), e_drop_fields("content", "age",regex=True))Hasil
name: twiss
Referensi
Fungsi ini dapat digunakan bersama fungsi lain. Untuk informasi selengkapnya, lihat Transform complex JSON data.
e_keep_fields
Fungsi e_keep_fields digunakan untuk menyimpan field log yang memenuhi kondisi tertentu.
Simple Log Service mencakup field metadata bawaan, seperti __time__ dan __topic__. Jika Anda tidak menyertakan field __time__ saat memanggil fungsi e_keep_fields, waktu log akan diatur ulang ke waktu sistem saat ini. Untuk mencegah pengaturan ulang nilai field metadata, sertakan field tersebut dalam daftar. Format umumnya adalah F_TIME, F_META, F_TAGS, "f1", "f2". Untuk informasi selengkapnya, lihat Fixed identifiers.
Sintaksis
e_keep_fields(key1, key2, ....,regex=False)Parameter
Parameter
Parameter type
Required
Description
key
String
Yes
Nama field log. Dapat berupa ekspresi reguler. Jika nama field sepenuhnya sesuai dengan kondisi, field tersebut disimpan. Field yang tidak sesuai dihapus.
Anda harus mengonfigurasi setidaknya satu field.
regex
Boolean
No
Jika parameter ini diatur ke False, ekspresi reguler tidak digunakan untuk pencocokan. Jika parameter ini tidak dikonfigurasi, nilai default-nya adalah True.
Respons
Log yang disimpan dikembalikan.
Contoh
Jika nilai field content adalah 123, simpan field content dan age.
Log mentah
age: 18 content: 123 name: twissAturan transformasi
e_if(e_search("content==123"), e_keep_fields("content", "age"))Hasil
age: 18 content: 123
e_pack_fields
Fungsi e_pack_fields digunakan untuk memaketkan field log dan mengekspornya ke field baru.
Sintaksis
e_pack_fields(output_fields,include=".*",exclude=None,drop_packed=True)Parameter
Parameter
Type
Required
Description
output_field
String
Yes
Nama field output setelah dipaketkan. Nilainya dalam format JSON.
include
String
No
Konfigurasi daftar putih. Field yang sesuai dengan ekspresi reguler akan dipaketkan. Nilai default-nya adalah ".*", yang berarti semua field dicocokkan. Untuk informasi selengkapnya, lihat Regular expressions.
exclude
String
No
Konfigurasi blacklist. Field yang sesuai dengan ekspresi reguler tidak dipaketkan. Nilai default-nya adalah None, yang berarti tidak ada pencocokan yang dilakukan. Untuk informasi selengkapnya, lihat Regular expressions.
drop_packed
Boolean
No
Menentukan apakah data asli yang dipaketkan dihapus. Nilai default-nya adalah True.
True (default): Data asli yang dipaketkan dihapus dari output.
False: Data asli yang dipaketkan tidak dihapus dari output.
Respons
Mengembalikan data log yang telah dipaketkan.
Contoh
Contoh 1: Paketkan semua field log ke field test. Secara default, field asli yang dipaketkan dihapus.
Log mentah
test1:123 test2:456 test3:789Aturan transformasi
e_pack_fields("test")Hasil
test:{"test1": "123", "test2": "456", "test3": "789"}
Contoh 2: Paketkan semua field log ke field test. Field asli yang dipaketkan tidak dihapus.
Log mentah
test1:123 test2:456 test3:789Aturan transformasi
e_pack_fields("test",drop_packed=False)Hasil
test:{"test1": "123", "test2": "456", "test3": "789"} test1:123 test2:456 test3:789
Contoh 3: Paketkan field test dan abcd ke field content. Field asli yang dipaketkan tidak dihapus.
Log mentah
abcd@#%:123 test:456 abcd:789Aturan transformasi
e_pack_fields("content", include="\w+", drop_packed=False)Hasil
abcd:789 abcd@#%:123 content:{"test": "456", "abcd": "789"} test:456
Contoh 4: Paketkan semua field kecuali test dan abcd ke field content. Field asli yang dipaketkan dihapus.
Log mentah
abcd@#%:123 test:456 abcd:789Aturan transformasi
e_pack_fields("content", exclude="\w+", drop_packed=True)Hasil
abcd:789 content:{"abcd@#%": "123"} test:456
e_rename
Fungsi e_rename digunakan untuk mengganti nama field log yang memenuhi kondisi tertentu.
Sintaksis
e_rename("key1", "new key1", "key2", "new key2", ..., regex=False)CatatanParameter key dan new key harus ditentukan berpasangan. Jika
new keysudah ada dalam log sumber, tidak ada operasi yang dilakukan.Parameter
Parameter
Parameter type
Required
Description
key
String
Yes
Nama field log. Dapat berupa ekspresi reguler. Jika nama field sepenuhnya sesuai dengan kondisi, field tersebut diganti namanya. Untuk informasi selengkapnya tentang ekspresi reguler, lihat Regular expressions.
Anda harus mengonfigurasi setidaknya satu field.
new key
String
Yes
Nama baru field tersebut.
regex
Boolean
No
Jika parameter ini diatur ke False, ekspresi reguler tidak digunakan untuk pencocokan. Jika parameter ini tidak dikonfigurasi, nilai default-nya adalah True.
Respons
Bidang yang telah diubah namanya dikembalikan.
Contoh
Contoh 1: Ganti nama field host menjadi client_host.
Log mentah
host: 1006Aturan transformasi
e_rename("host","client_host")Hasil
client_host: 1006
Contoh 2: Jika field tidak ada, field tersebut tidak diganti namanya.
Log mentah
host: 1006Aturan transformasi
e_rename("url","rename_url")Hasil
host: 1006
Referensi
Fungsi ini dapat digunakan bersama fungsi lainnya. Untuk informasi selengkapnya, lihat Bersihkan data dengan memanggil fungsi.