Topik ini menjelaskan sintaksis dan parameter fungsi pemrosesan field serta memberikan contoh penggunaannya.
Fungsi
Fungsi | Deskripsi |
Mengekstrak nilai dari sebuah field dalam log. Jika Anda menentukan beberapa nama field untuk fungsi ini, fungsi akan mengembalikan nilai dari field pertama yang ada di dalam log. Fungsi ini dapat digunakan bersama dengan fungsi lainnya. Untuk informasi lebih lanjut, lihat Membersihkan data menggunakan fungsi. | |
Menambahkan field atau menentukan nilai baru untuk field yang sudah ada. Fungsi ini dapat digunakan bersama dengan fungsi lainnya. Untuk informasi lebih lanjut, lihat Membersihkan data menggunakan fungsi. | |
Menghapus field log yang memenuhi kondisi tertentu. Fungsi ini dapat digunakan bersama dengan fungsi lainnya. Untuk informasi lebih lanjut, lihat Mentransformasi data JSON kompleks. | |
Menyimpan field log yang memenuhi kondisi tertentu. | |
Mengemas field log dan menetapkan field log sebagai nilai ke field baru. | |
Mengganti nama field log yang memenuhi kondisi tertentu. Fungsi ini dapat digunakan bersama dengan fungsi lainnya. Untuk informasi lebih lanjut, lihat Membersihkan data menggunakan fungsi. |
v
Fungsi v mengekstrak nilai dari sebuah field dalam log. Jika Anda menentukan beberapa nama field, fungsi akan mengembalikan nilai dari field pertama yang ada di dalam log.
Sintaksis
v(key, ..., default=None)Parameter
Parameter
Tipe
Diperlukan
Deskripsi
key
String
Ya
Nama dari field.
default
Arbitrary
Tidak
Jika field tidak ada, fungsi akan mengembalikan nilai dari parameter ini. Nilai default: None.
Respons
Nilai dari field pertama yang ada di dalam log dikembalikan. Jika field tidak ada, nilai dari parameter default dikembalikan.
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 dengan fungsi lainnya. Untuk informasi lebih lanjut, lihat Membersihkan Data Menggunakan Fungsi.
e_set
Fungsi e_set menambahkan field baru atau menentukan nilai baru untuk field yang sudah ada.
Sintaksis
e_set(key1, value1, key2, value2, mode="overwrite")PentingAnda harus menentukan parameter key1 dan value1 secara berpasangan.
Jika Anda menggunakan fungsi e_set untuk menentukan nilai untuk field waktu seperti F_TIME atau __time__, nilai tersebut harus berupa string numerik.
e_set(F_TIME, "abc") # Sintaksis tidak valid. e_set(F_TIME, "12345678") # Sintaksis valid.
Parameter
Parameter
Tipe
Diperlukan
Deskripsi
key
String
Ya
Nama dari field baru yang ingin Anda tambahkan atau nama dari field yang sudah ada untuk mana Anda ingin menentukan nilai baru. Anda bisa mendapatkan nama berdasarkan ekspresi string. Untuk informasi lebih lanjut tentang cara menentukan nama field khusus, lihat Tipe-tipe event.
value
Arbitrary
Ya
Nilai dari field baru atau nilai baru dari field yang sudah ada. Jika nilai dari parameter ini bukan string, fungsi secara otomatis mengonversi nilai tersebut menjadi string. Sebagai contoh, jika Anda menetapkan parameter ini ke nilai tipe tuple, list, atau dictionary, fungsi secara otomatis mengonversi nilai tersebut menjadi string JSON. Untuk informasi lebih lanjut tentang aturan konversi string, lihat Konversi tipe otomatis selama penugasan.
CatatanJika Anda menetapkan parameter ini ke None, fungsi akan mengembalikan log mentah.
mode
String
Tidak
Mode penimpaan field. Nilai default: overwrite. Untuk informasi lebih lanjut, lihat Pemeriksaan ekstraksi field dan mode penimpaan.
Respons
Log yang diperbarui dikembalikan.
Contoh
Contoh 1: Tetapkan nilai tetap untuk sebuah field.
Tambahkan field baru bernama city dan tetapkan nilainya menjadi Shanghai.
e_set("city", "Shanghai")Contoh 2: Ekstrak nilai dari field yang sudah ada dan tetapkan nilainya ke field baru.
Panggil fungsi ekspresi untuk mengekstrak nilai dari field yang sudah ada bernama ret dan tetapkan nilainya ke field baru bernama result.
e_set("result", v("ret"))Contoh 3: Tetapkan nilai dinamis untuk sebuah field.
Panggil beberapa fungsi ekspresi secara berurutan untuk mendapatkan nilai huruf kecil dari field pertama yang ada dan tetapkan nilainya ke field result.
e_set("result", str_lower(v("ret", "return")))Contoh 4: Tetapkan nilai berbeda untuk sebuah field.
Tetapkan nilai untuk field event_type.
e_set("event_type", "login event", "event_info", "login host")Jika nilai dari field ret adalah fail, tetapkan 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 dengan fungsi lainnya. Untuk informasi lebih lanjut, lihat Membersihkan Data Menggunakan Fungsi.
e_drop_fields
Fungsi e_drop_fields menghapus field log yang memenuhi kondisi tertentu.
Sintaksis
e_drop_fields(key1, key2, ....,regex=False)Parameter
Parameter
Tipe
Diperlukan
Deskripsi
key
String
Ya
Nama dari field log. Nilai dari parameter ini bisa berupa ekspresi reguler. Jika nama field sepenuhnya memenuhi kondisi yang ditentukan, field tersebut dihapus. Jika tidak, field tersebut dipertahankan. Untuk informasi lebih lanjut tentang ekspresi reguler, lihat Ekspresi reguler.
Anda harus menentukan setidaknya satu field log.
regex
Boolean
Tidak
Jika Anda menetapkan parameter ini ke False, ekspresi reguler tidak digunakan untuk pencocokan. Nilai default: True.
Respons
Log dari mana field dihapus dikembalikan.
Contoh
Jika nilai dari 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 dengan fungsi lainnya. Untuk informasi lebih lanjut, lihat Mentransformasi Data JSON Kompleks.
e_keep_fields
Fungsi e_keep_fields mempertahankan field log yang memenuhi kondisi tertentu.
Layanan Log Sederhana menyediakan meta field bawaan seperti __time__ dan __topic__. Jika Anda tidak mempertahankan field __time__ saat memanggil fungsi e_keep_fields, waktu log diatur ulang ke waktu sistem saat ini. Jika Anda tidak ingin mereset nilai dari meta field, Anda harus menambahkan meta field ke daftar dalam format F_TIME, F_META, F_TAGS, "f1", "f2". Untuk informasi lebih lanjut, lihat Pengenal Tetap.
Sintaksis
e_keep_fields(key1, key2, ....,regex=False)Parameter
Parameter
Tipe
Diperlukan
Deskripsi
key
String
Ya
Nama dari field log. Nilai dari parameter ini bisa berupa ekspresi reguler. Jika nama field sepenuhnya memenuhi kondisi yang ditentukan, field tersebut dipertahankan. Jika tidak, field tersebut dihapus.
Anda harus menentukan setidaknya satu field log.
regex
Boolean
Tidak
Jika Anda menetapkan parameter ini ke False, ekspresi reguler tidak digunakan untuk pencocokan. Nilai default: True.
Respons
Log di mana field dipertahankan dikembalikan.
Contoh
Jika nilai dari field content adalah 123, pertahankan 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 mengemas field log dan menetapkan field log sebagai nilai ke field baru.
Sintaksis
e_pack_fields(output_fields,include=".*",exclude=None,drop_packed=True)Parameter
Parameter
Tipe
Diperlukan
Deskripsi
output_field
String
Ya
Nama dari field output. Nilai dari field output berada dalam format JSON.
include
String
Tidak
Daftar putih. Field yang cocok dengan ekspresi reguler yang ditentukan dalam daftar putih akan dikemas. Nilai default: ".*", yang menunjukkan bahwa semua field dalam log dicocokkan dan dikemas. Untuk informasi lebih lanjut, lihat Ekspresi reguler.
exclude
String
Tidak
Daftar hitam. Field yang cocok dengan ekspresi reguler yang ditentukan dalam daftar hitam tidak akan dikemas. Nilai default: None, yang menunjukkan bahwa semua field dalam log tidak dievaluasi. Untuk informasi lebih lanjut, lihat Ekspresi reguler.
drop_packed
Boolean
Tidak
Menentukan apakah akan menghapus field mentah setelah field tersebut dikemas. Nilai valid:
True: Field mentah yang telah dikemas dihapus dalam hasil. Ini adalah nilai default.
False: Field mentah yang telah dikemas tidak dihapus dalam hasil.
Respons
Log di mana field telah dikemas dikembalikan.
Contoh
Contoh 1: Kemas semua field log ke dalam field test. Secara default, field mentah yang telah dikemas dihapus dalam hasil.
Log mentah:
test1:123 test2:456 test3:789Aturan transformasi:
e_pack_fields("test")Hasil:
test:{"test1": "123", "test2": "456", "test3": "789"}
Contoh 2: Kemas semua field log ke dalam field test. Field mentah yang telah dikemas tidak dihapus dalam hasil.
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: Kemas field test dan abcd ke dalam field content. Field mentah yang telah dikemas tidak dihapus dalam hasil.
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: Kemas field log mentah yang tidak termasuk field test dan abcd ke dalam field content. Field mentah yang telah dikemas dihapus dalam hasil.
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 mengganti nama field log yang memenuhi kondisi tertentu.
Sintaksis
e_rename("key1", "new key1", "key2", "new key2", ..., regex=False)CatatanAnda harus menentukan parameter key dan new key secara berpasangan. Jika new key sudah ada dalam log mentah, tidak ada operasi yang dilakukan.
Parameter
Parameter
Tipe
Diperlukan
Deskripsi
key
String
Ya
Nama dari field log. Nilai dari parameter ini bisa berupa ekspresi reguler. Jika nama field sepenuhnya memenuhi kondisi yang ditentukan, field tersebut diganti namanya. Untuk informasi lebih lanjut tentang ekspresi reguler, lihat Ekspresi reguler.
Anda harus menentukan setidaknya satu field log.
new key
String
Ya
Nama baru dari field.
regex
Boolean
Tidak
Jika Anda menetapkan parameter ini ke False, ekspresi reguler tidak digunakan untuk pencocokan. Nilai default: True.
Respons
Field yang telah diganti 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: Jangan ganti nama field log jika tidak ada field yang memenuhi kondisi yang ditentukan.
Log mentah:
host: 1006Aturan transformasi:
e_rename("url","rename_url")Hasil:
host: 1006
Referensi
Fungsi ini dapat digunakan bersama dengan fungsi lainnya. Untuk informasi lebih lanjut, lihat Membersihkan Data Menggunakan Fungsi.