All Products
Search
Document Center

Simple Log Service:Mode Ekstraksi Field

Last Updated:Jul 02, 2025

Topik ini menjelaskan nilai-nilai parameter mode dalam berbagai fungsi. Parameter mode menentukan mode ekstraksi field.

Fungsi Terkait

Tabel berikut menjelaskan fungsi-fungsi yang menggunakan parameter mode serta nilai default untuk parameter mode pada setiap fungsi.

Kategori

Fungsi

Nilai default mode

Fungsi Penetapan Nilai

e_set

overwrite

Fungsi Ekstraksi Nilai

e_regex

fill-auto

e_json

fill-auto

e_kv

fill-auto

e_csv, e_psv, and e_tsv

fill-auto

e_kv_delimit

fill-auto

e_anchor

overwrite

e_syslogrfc

overwrite

Fungsi Pemetaan dan Pengayaan

e_dict_map

fill-auto

e_table_map

fill-auto

Mode Pengecekan dan Penimpaan Ekstraksi Field

Tabel berikut menjelaskan nilai-nilai parameter mode.

Nilai

Deskripsi

fill

Menetapkan field baru jika field tidak ada atau jika field sudah ada tetapi nilainya adalah string kosong.

fill-auto

Menetapkan field baru jika nilai baru bukan string kosong dan salah satu kondisi berikut terpenuhi: Field tidak ada. Field sudah ada tetapi nilainya adalah string kosong.

add

Menetapkan field baru jika field tidak ada.

add-auto

Menetapkan field baru jika nilai baru bukan string kosong dan field tidak ada.

overwrite

Selalu menetapkan field baru.

overwrite-auto

Menetapkan field baru jika nilai baru bukan string kosong.

Tabel berikut memberikan contoh cara kerja fungsi dalam mode yang berbeda.

  • Log mentah

    a:         # String kosong
    b: 100
  • Contoh Transformasi

    Mode

    Aturan Transformasi

    Hasil

    add

    e_set("c", "123", mode='add')

    a:# String kosong
    b: 100
    c: 123

    e_set("c", "", mode='add')

    a:# String kosong
    b: 100
    c:

    e_set("a", "123", mode='add')

    a:# String kosong
    b: 100

    add-auto

    e_set("c", "", mode='add-auto')

    Field c tidak ditambahkan, dan log mentah tetap tidak berubah.

    fill

    e_set("c", "123", mode='fill')

    a:# String kosong
    b: 100
    c: 123

    e_set("c", "", mode='fill')

    a:# String kosong
    b: 100
    c:

    e_set("a", "123", mode='fill')

    a: 123
    b: 100

    e_set("b", "123", mode='fill')

    Field b tetap b: 100.

    fill-auto

    e_set("c", "", mode='fill-auto')

    Field c tidak ditambahkan, dan log mentah tetap tidak berubah.

    overwrite

    e_set("c", "123", mode='overwrite')

    a:# String kosong
    b: 100
    c: 123

    e_set("c", "", mode='overwrite')

    a:# String kosong
    b: 100
    c: 

    e_set("b", "200", mode='overwrite')

    a:# String kosong
    b: 200

    e_set("b", "", mode='overwrite')

    a:# String kosong
    b: 

    overwrite-auto

    e_set("b", "", mode='overwrite-auto')

    Field b tetap b: 100.

Batasan Nama Field untuk Ekstraksi

Fungsi seperti e_json, e_kv, e_kv_delimit, dan e_regex didukung.

Hanya field dengan nama yang mematuhi batasan tertentu yang dapat diekstraksi. Field dengan nama yang tidak sesuai dengan batasan akan dibuang. Ekspresi reguler u'_*[\u4e00-\u9fa5\u0800-\u4e00a-zA-Z][\u4e00-\u9fa5\u0800-\u4e00\\w\\.\\-]*' tidak didukung. Sebagai contoh, field dengan nama yang cocok dengan 123=abc, __1__:100, 1k=200, atau {"123": "456"} akan dibuang.

Contoh berikut menunjukkan cara menerapkan batasan default suatu fungsi pada nama field:

  • Log mentah

    data: {"k1": 100, "k2": {"k3": 200, "k4": {"k5": 300} } }
  • Aturan Transformasi

    e_json(
        "data",
        fmt="parent",
        sep="@",
        prefix="__",
        suffix="__",
        include_node=r"[\u4e00-\u9fa5\u0800-\u4e00a-zA-Z][\w\-\.]*",
        mode="fill-auto",
    )
  • Hasil

    data: {"k1": 100, "k2": {"k3": 200, "k4": {"k5": 300} } }
    data@__k1__:100
    k2@__k3__:200
    k4@__k5__:300