全部产品
Search
文档中心

Simple Log Service:Fungsi pemrosesan event

更新时间:Jul 02, 2025

Topik ini menjelaskan sintaksis dan parameter fungsi pemrosesan event serta memberikan contoh penggunaannya.

Fungsi

Kategori

Fungsi

Deskripsi

Pemrosesan event

e_drop

Membuang log jika kondisi tertentu terpenuhi.

Fungsi ini dapat digunakan bersama dengan fungsi lainnya. Untuk informasi lebih lanjut, lihat Replikasi dan distribusi data.

e_keep

Menyimpan log jika kondisi tertentu terpenuhi.

Baik fungsi e_keep maupun e_drop dapat digunakan untuk membuang log. Perbedaannya adalah bahwa fungsi e_keep membuang log jika kondisi tertentu tidak terpenuhi, sedangkan fungsi e_drop membuang log jika kondisi tertentu terpenuhi.

# Empat aturan transformasi berikut ini setara:
e_if_else(e_search("f1==v1"), KEEP, DROP)
e_if_else(e_search("not f1==v1"), DROP) 
e_keep(e_search("f1==v1"))
e_drop(e_search("not f1==v1"))

# Aturan transformasi berikut ini tidak valid:
e_if(e_search("..."), KEEP)   
e_keep()

Fungsi ini dapat digunakan bersama dengan fungsi lainnya. Untuk informasi lebih lanjut, lihat Transformasi data JSON kompleks.

Pemisahan event

e_split

Memisahkan log menjadi beberapa log berdasarkan nilai bidang tertentu. Anda juga dapat menggunakan ekspresi JMESPath untuk mengekstrak nilai bidang tersebut, lalu memisahkan log.

Fungsi ini dapat digunakan bersama dengan fungsi lainnya. Untuk informasi lebih lanjut, lihat Transformasi data JSON kompleks.

Pembuatan event

e_output dan e_coutput

Menulis log ke Logstore yang ditentukan. Anda dapat menentukan topik, sumber, tag, dan kunci hash MD5 dari shard untuk log tersebut.

  • e_output: menulis log ke Logstore yang ditentukan. Aturan transformasi selanjutnya tidak dieksekusi untuk log tersebut.

  • e_coutput: menulis log ke Logstore yang ditentukan. Aturan transformasi selanjutnya dieksekusi untuk log tersebut.

Fungsi ini dapat digunakan bersama dengan fungsi lainnya. Untuk informasi lebih lanjut, lihat Mengumpulkan data dari beberapa Logstore sumber.

Konversi event menjadi metrik

e_to_metric

Mengonversi log menjadi metrik yang dapat disimpan dalam penyimpanan metrik (Metricstore).

Catatan

Setelah log dikonversi menjadi metrik, Anda harus memilih Metricstore untuk menyimpan metrik tersebut.

Berikut ini adalah contoh metrik tipikal:

__labels__:host#$#myhost
__name__:rt
__time_nano__:1614739608000000000
__value__:123.0

Untuk informasi lebih lanjut, lihat Metrik.

Fungsi ini dapat digunakan bersama dengan fungsi lainnya. Untuk informasi lebih lanjut, lihat Konversi log menjadi metrik.

e_drop

Fungsi e_drop membuang log jika kondisi tertentu terpenuhi.

  • e_drop(condition=True)

    Pengenal DROP didukung. Pengenal DROP setara dengan fungsi e_drop().

  • Parameter

    Tipe

    Diperlukan

    Deskripsi

    kondisi

    Bool

    Tidak

    Nilai default: True. Dalam banyak kasus, satu kondisi diteruskan ke fungsi.

  • Jika kondisi yang ditentukan terpenuhi, log dibuang dan None dikembalikan. Jika tidak, log dikembalikan.

    • Contoh 1: Jika nilai bidang __programe__ dalam log adalah access, buang log tersebut. Jika tidak, simpan log tersebut.

      • Log mentah:

        __programe__: access
        age:  18
        content:  123
        name:  maki
        
        __programe__: error
        age:  18
        content:  123
        name:  maki
      • Aturan transformasi:

        e_if(e_search("__programe__==access"), DROP)
      • Hasil:

        Log di mana nilai bidang __programe__ adalah access dibuang. Log di mana nilai bidang __programe__ adalah error disimpan.

        __programe__: error
        age:  18
        content:  123
        name:  maki
    • Contoh 2: Jika kondisi yang ditentukan bernilai True, buang log tersebut.

      • Log mentah:

        k1: v1
        k2: v2
        k3: k1
      • Aturan transformasi:

        e_drop(e_search("k1==v1"))
      • Hasil:

        Log dibuang karena kondisi k1==v1 bernilai True.

    • Contoh 3: Jika kondisi yang ditentukan bernilai False, simpan log tersebut.

      • Log mentah:

        k1: v1
        k2: v2
        k3: k1
      • Aturan transformasi:

        e_drop(e_search("not k1==v1"))
      • Hasil:

        k1: v1
        k2: v2
        k3: k1
    • Contoh 4: Jika tidak ada kondisi yang ditentukan, gunakan True, yang menunjukkan bahwa log dibuang.

      • Log mentah:

        k1: v1
        k2: v2
        k3: k1
      • Aturan transformasi:

        e_drop()
      • Hasil:

        Log dibuang.

  • Referensi

    Fungsi ini dapat digunakan bersama dengan fungsi lainnya. Untuk informasi lebih lanjut, lihat Replikasi dan Distribusi Data.

e_keep

Fungsi e_keep menyimpan log jika kondisi tertentu terpenuhi.

  • e_keep(condition=True)

    Pengenal KEEP didukung. Pengenal KEEP setara dengan fungsi e_keep().

  • Parameter

    Tipe

    Diperlukan

    Deskripsi

    kondisi

    Bool

    Tidak

    Nilai default: True. Dalam banyak kasus, satu kondisi diteruskan ke fungsi.

  • Jika kondisi yang ditentukan terpenuhi, log dikembalikan. Jika tidak, log dibuang.

    • Contoh 1: Jika nilai bidang __programe__ dalam log adalah access, simpan log tersebut. Jika tidak, buang log tersebut.

      • Log mentah:

        __programe__: access
        age:  18
        content:  123
        name:  maki
        __programe__: error
        age:  18
        content:  123
        name:  maki
      • Aturan transformasi:

        e_keep(e_search("__programe__==access"))
        # Setara dengan:
        e_if(e_search("not __programe__==access"), DROP) 
        # Setara dengan:
        e_if_else(e_search("__programe__==access"), KEEP, DROP)
      • Hasil:

        Log di mana nilai bidang __programe__ adalah access disimpan.

        __programe__: access
        age:  18
        content:  123
        name:  maki
    • Contoh 2: Jika kondisi yang ditentukan bernilai True, simpan log tersebut.

      • Log mentah:

        k1: v1
        k2: v2
        k3: k1
      • Aturan transformasi:

        e_keep(e_search("k1==v1"))
      • Hasil:

        k1: v1
        k2: v2
        k3: k1
    • Contoh 3: Jika kondisi yang ditentukan bernilai False, buang log tersebut.

      • Log mentah:

        k1: v1
        k2: v2
        k3: k1
      • Aturan transformasi:

        e_keep(e_search("not k1==v1"))
      • Hasil:

        Log dibuang.

    • Contoh 4: Kirim nilai False ke fungsi e_keep.

      • Log mentah:

        k1: v1
        k2: v2
        k3: k1
      • Aturan transformasi:

        e_keep(False)
      • Hasil:

        Log dibuang.

  • Referensi

    Fungsi ini dapat digunakan bersama dengan fungsi lainnya. Untuk informasi lebih lanjut, lihat Transformasi Data JSON Kompleks.

e_split

Fungsi e_split membagi log menjadi beberapa log berdasarkan nilai bidang tertentu. Anda juga dapat menggunakan ekspresi JMESPath untuk mengekstrak nilai bidang tersebut, lalu membagi log.

  • e_split(Nama bidang, sep=',', quote='"', lstrip=True, jmes=None, output=None)

    Aturan pemisahan:

    1. Jika Anda mengonfigurasi parameter jmes, Layanan Log Sederhana mengonversi nilai bidang log menjadi daftar JSON, menggunakan ekspresi JMESPath untuk mengekstrak nilai dari daftar JSON tersebut, lalu menggunakan nilai-nilai tersebut dalam operasi berikutnya. Jika Anda tidak mengonfigurasi parameter jmes, Layanan Log Sederhana menggunakan nilai bidang log dalam operasi berikutnya.

    2. Jika nilai yang diperoleh dari operasi sebelumnya adalah daftar atau string yang merepresentasikan daftar JSON, Layanan Log Sederhana membagi log berdasarkan daftar tersebut. Jika tidak, Layanan Log Sederhana mengurai nilai menjadi nilai CSV berdasarkan parameter sep, quote, atau lstrip. Lalu, Layanan Log Sederhana membagi log berdasarkan nilai yang telah diurai.

  • Parameter

    Tipe

    Diperlukan

    Deskripsi

    Nama bidang

    String

    Ya

    Nama bidang yang Anda gunakan untuk membagi log. Untuk informasi lebih lanjut tentang cara menentukan nama bidang khusus, lihat Tipe event.

    sep

    String

    Tidak

    Pemisah yang Anda gunakan untuk memisahkan nilai.

    quote

    String

    Tidak

    Kutipan yang Anda gunakan untuk mengapit nilai.

    lstrip

    String

    Tidak

    Menentukan apakah akan menghapus spasi di sebelah kiri nilai. Nilai default: True.

    jmes

    String

    Tidak

    String JMESPath yang Anda gunakan untuk mengonversi nilai bidang menjadi objek JSON dan mengekstrak nilai dari objek JSON tersebut. Layanan Log Sederhana membagi log berdasarkan objek JSON tersebut.

    output

    String

    Tidak

    Nama baru dari bidang, yang secara default menimpa nama yang ada.

  • Daftar log dikembalikan. Nilai bidang dalam log yang dikembalikan sama dengan nilai bidang dalam log mentah.

    • Log mentah:

      __topic__:
      age:  18
      content:  123
      name:  maki
      
      __topic__:
      age:  18
      content:  123
      name:  maki
    • Aturan transformasi:

      e_set("__topic__", "V_SENT,V_RECV,A_SENT,A_RECV")
      e_split("__topic__")
    • Hasil:

      __topic__:  A_SENT
      age:  18
      content:  123
      name:  maki
      
      __topic__:  V_RECV
      age:  18
      content:  123
      name:  maki
      
      ...
  • Referensi

    Fungsi ini dapat digunakan bersama dengan fungsi lainnya. Untuk informasi lebih lanjut, lihat Transformasi Data JSON Kompleks.

e_output dan e_coutput

Fungsi e_output dan e_coutput menulis log ke Logstore yang ditentukan. Anda dapat menentukan topik, sumber, dan tag untuk log tersebut.

  • e_output(name=None, project=None, logstore=None, topic=None, source=None, tags=None, hash_key_field=None, hash_key=None)
    e_coutput(name=None, project=None, logstore=None, topic=None, source=None, tags=None, hash_key_field=None, hash_key=None)

    yang bernama internal-etl-log di proyek saat ini. Anda tidak dapat memodifikasi konfigurasi Logstore ini atau menulis data lain ke dalam Logstore ini. Anda tidak akan dikenakan biaya untuk Logstore ini.

  • Catatan

    Jika Anda mengonfigurasi parameter name, project, dan logstore dalam fungsi e_output atau e_coutput dan menentukan proyek serta Logstore di panel Create Data Transformation Rule, konfigurasi dalam fungsi e_output atau e_coutput akan lebih diutamakan. Berikut ini adalah deskripsi konfigurasinya:

    • Jika Anda hanya mengonfigurasi parameter name dalam fungsi e_output atau e_coutput, hasil transformasi dikirimkan dan disimpan di Logstore yang sesuai dengan parameter name.

    • Jika Anda hanya mengonfigurasi parameter project dan logstore dalam fungsi e_output, hasil transformasi dikirimkan dan disimpan di Logstore yang ditentukan dalam fungsi e_output.

      Jika Anda menggunakan pasangan AccessKey untuk mengotorisasi transformasi data, pasangan AccessKey dari akun login saat ini digunakan untuk mentransformasi data.

    • Jika Anda mengonfigurasi parameter name, project, dan logstore dalam fungsi e_output, hasil transformasi dikirimkan dan disimpan di Logstore yang ditentukan dalam fungsi e_output.

      Jika Anda menggunakan pasangan AccessKey untuk mengotorisasi transformasi data, pasangan AccessKey yang ditentukan di tujuan penyimpanan digunakan untuk mentransformasi data.

    Parameter

    Tipe

    Diperlukan

    Deskripsi

    name

    String

    Tidak

    Nama tujuan penyimpanan. Nilai default: None.

    project

    String

    Tidak

    Proyek yang ada tempat log ditulis.

    logstore

    String

    Tidak

    Logstore yang ada tempat log ditulis.

    topic

    String

    Tidak

    Topik baru untuk log tersebut.

    source

    String

    Tidak

    Sumber baru untuk log tersebut.

    tags

    Dict

    Tidak

    Tag baru untuk log tersebut. Tag berada dalam format kamus.

    Catatan

    Anda tidak perlu menambahkan awalan kata kunci dengan __tag__:.

    hash_key_field

    String

    Tidak

    Nama bidang yang digunakan untuk penghashan. Log ditulis ke shard dari tujuan penyimpanan yang Anda tentukan berdasarkan nilai hash dari bidang tersebut.

    Catatan

    Jika log tidak mengandung bidang yang Anda tentukan, log secara acak ditulis ke shard dari tujuan penyimpanan yang Anda tentukan dalam mode penyeimbangan beban.

    hash_key

    String

    Tidak

    Nilai hash. Log ditulis ke shard dari tujuan penyimpanan yang Anda tentukan berdasarkan nilai hash.

    Catatan

    Parameter hash_key_field memiliki prioritas lebih tinggi daripada parameter hash_key. Jika parameter hash_key_field dikonfigurasi dalam aturan transformasi, parameter hash_key tidak berlaku.

    • Tujuan Penyimpanan Default

      Untuk menggunakan fungsi e_output atau e_coutput, Anda harus mengonfigurasi tujuan penyimpanan default di panel Create Data Transformation Rule. Secara default, Layanan Log Sederhana menggunakan tujuan penyimpanan berlabel 1 sebagai tujuan penyimpanan default. Pada gambar berikut, hasil transformasi dikirimkan ke Logstore yang sesuai dengan target_01, target_02, dan target_03. Data yang tidak dibuang selama transformasi disimpan di Logstore yang sesuai dengan tujuan penyimpanan default bernama target_00. Default storage destination

    • Pengaturan Parameter Lanjutan

      Jika proyek atau Logstore yang Anda tentukan dalam fungsi e_output atau e_coutput tidak ada, Anda dapat menentukan pasangan kunci-nilai di bagian Advanced Parameter Settings dari panel Create Data Transformation Rule. Anda dapat menetapkan key menjadi config.sls_output.failure_strategy dan value dari key menjadi {"drop_when_not_exists":"true"} untuk melewati log. Log yang dilewati dibuang dan dilaporkan sebagai log peringatan. Jika Anda tidak menentukan pasangan kunci-nilai di bagian Advanced Parameter Settings, pekerjaan transformasi data Anda akan ditangguhkan hingga proyek atau Logstore yang Anda tentukan dibuat.

      Peringatan

      Jika proyek atau Logstore yang ditentukan tidak ada dan Anda menentukan pasangan kunci-nilai di bagian Advanced Parameter Settings untuk melewati log, log yang dilewati akan dibuang. Lakukan dengan hati-hati.

      Advanced Parameter Settings

    • Hasil:

      • e_output: menulis log ke Logstore yang ditentukan. Aturan transformasi selanjutnya tidak dieksekusi untuk log tersebut.

      • e_coutput: menulis log ke Logstore yang ditentukan. Aturan transformasi selanjutnya dieksekusi untuk log tersebut.

    • Contoh 1: Evaluasi nilai bidang k2 dalam log terhadap ekspresi reguler. Jika nilainya memenuhi ekspresi reguler, tulis log ke Logstore yang ditentukan dalam target2 dan setel topic ke topic1.

      • Log mentah:

        __topic__:
        k1: v1
        k2: v2
        x1: v3
        x5: v4
      • Aturan transformasi:

        Fungsi e_drop() menghapus data yang tidak memenuhi kondisi fungsi e_if(). Jika Anda tidak menambahkan fungsi e_drop() ke aturan transformasi, data yang tidak memenuhi kondisi fungsi e_if() dikirimkan ke tujuan penyimpanan default.

        e_if(e_match("k2", r"\w+"), e_output(name="target2", source="source1", topic="topic1"))
        e_drop()
      • Hasil:

        __topic__:  topic1
        k1: v1
        k2: v2
        x1: v3
        x5: v4
    • Contoh 2: Hitung nilai hash log berdasarkan nilai bidang db_version dan tulis log ke shard dari tujuan penyimpanan yang Anda tentukan berdasarkan nilai hash.

      • Log mentah:

        __topic__:
        db_name: db-01
        db_version:5.6
        
        __topic__:
        db_name: db-02
        db_version:5.7
      • Aturan transformasi:

        e_output(name="target1", hash_key_field="db_version")
      • Hasil:

        # Sebagai contoh, tujuan penyimpanan bernama target1 memiliki dua shard.
        # Rentang hash MD5 Shard 0 adalah [00000000000000000000000000000000,80000000000000000000000000000000).
        # Rentang hash MD5 Shard 1 adalah [80000000000000000000000000000000,ffffffffffffffffffffffffffffffff).
        # Nilai hash untuk log yang nilainya pada bidang db_version adalah 5.6 dan 5.7 adalah 0ebe1a34e990772a2bad83ce076e0766 dan f1867131d82f2256b4521fe34aec2405.
        
        # Shard 0:
        __topic__:
        db_name: db-01
        db_version:5.6
        
        # Shard 1:
        __topic__:
        db_name: db-02
        db_version:5.7
    • Contoh 3: Tentukan nilai hash untuk log dan tulis log ke shard dari tujuan penyimpanan yang Anda tentukan berdasarkan nilai hash.

      • Log mentah:

        __topic__:
        db_name: db-01
        db_version:5.6
        
        __topic__:
        db_name: db-02
        db_version:5.7
      • Aturan transformasi:

        e_output(name="target1", hash_key="00000000000000000000000000000000")
      • Hasil:

        # Sebagai contoh, tujuan penyimpanan memiliki dua shard.
        # Rentang hash MD5 Shard 0 adalah [00000000000000000000000000000000,80000000000000000000000000000000).
        # Rentang hash MD5 Shard 1 adalah [80000000000000000000000000000000,ffffffffffffffffffffffffffffffff).
        
        # Shard 0:
        __topic__:
        db_name: db-01
        db_version:5.6
        
        __topic__:
        db_name: db-02
        db_version:5.7
        
        # Shard 1:
        None
  • Referensi

    Fungsi ini dapat digunakan bersama dengan fungsi lainnya. Untuk informasi lebih lanjut, lihat Mengumpulkan Data dari Beberapa Logstore Sumber.

e_to_metric

Fungsi e_to_metric mengonversi log menjadi metrik yangdapat disimpan dalam penyimpanan metrik (Metricstore).

  • e_to_metric(names=None, labels=None, time_field='__time__', time_precision='s', ignore_none_names=True, ignore_none_labels=True)
  • Parameter

    Tipe

    Diperlukan

    Deskripsi

    names

    String, daftar string, atau daftar tuple

    Ya

    Nama metrik. Nilai parameter names bisa berupa string tunggal, daftar string, atau daftar tuple. Nilai tersebut adalah nama bidang dalam log yang ingin Anda konversi.

    • String: Nama bidang log digunakan sebagai nama metrik. Nilainya adalah string. Contoh: rt. Catatan metrik yang berisi __name__:rt dikembalikan.

    • Daftar string: Nama-nama bidang log digunakan sebagai nama metrik. Nilainya terdiri dari beberapa string. Contoh: ["rt", "qps"]. Dalam contoh ini, dua catatan metrik dikembalikan. Satu catatan berisi __name__:rt dan catatan lainnya berisi __name__:qps.

    • Daftar tuple: Nama-nama beberapa bidang log digunakan sebagai nama metrik, dan metrik tersebut diberi nama ulang. Nilainya terdiri dari beberapa tuple. Contoh: [("rt","max_rt"),("qps", "total_qps")]. Dalam contoh ini, elemen pertama dari sebuah tuple adalah nama bidang log mentah. Elemen kedua dari sebuah tuple adalah nama metrik yang dihasilkan setelah transformasi. Dua catatan metrik dikembalikan. Satu catatan berisi __name__:max_rt dan catatan lainnya berisi __name__:total_qps.

    labels

    String, daftar string, atau daftar tuple

    Tidak

    Label metrik. Nilai parameter labels bisa berupa string tunggal, daftar string, atau daftar tuple. Nilainya adalah nama bidang dalam log yang ingin Anda konversi.

    Catatan

    Dalam daftar berikut, host dan app adalah nama bidang log, dan hostvalue dan appvalue adalah nilai dari bidang log tersebut.

    • String: Nama bidang log digunakan sebagai label metrik. Nilainya adalah string. Contoh: host. Catatan metrik yang berisi __label__:host#$#hostvalue dikembalikan.

    • Daftar string: Nama-nama bidang log digunakan sebagai label metrik. Nilainya terdiri dari beberapa string. Contoh: ["host", "app"]. Dalam contoh ini, dua catatan metrik dikembalikan. Satu catatan berisi __label__:host#$#hostvalue dan catatan lainnya berisi __label__:app#$#appvalue.

    • Daftar tuple: Nama-nama beberapa bidang log digunakan sebagai label metrik, dan label tersebut diberi nama ulang. Nilainya terdiri dari beberapa tuple. Contoh: [("host","hostname"),("app", "appname")]. Dalam contoh ini, elemen pertama dari sebuah tuple adalah nama bidang log mentah. Elemen kedua dari sebuah tuple adalah label metrik yang dihasilkan setelah transformasi. Dua catatan metrik dikembalikan. Satu catatan berisi __label__:hostname#$#hostvalue dan catatan lainnya berisi __label__:appname#$#appvalue.

    time_field

    String

    Tidak

    Bidang waktu metrik. Secara default, bidang __time__ dalam log digunakan sebagai bidang waktu metrik.

    time_precision

    Int

    Tidak

    Satuan bidang waktu dalam log mentah. Satuan yang didukung adalah detik, milidetik, mikrodetik, dan nanodetik. Secara default, log disimpan per detik. Sebagai contoh, time_field="ms" menunjukkan bahwa satuan bidang waktu dalam log mentah adalah milidetik.

    ignore_none_names

    Boolean

    Tidak

    Menentukan apakah akan melewati konversi dari log ke metrik jika bidang log tidak ada. Nilai yang valid:

    • True: melewati konversi dari log ke metrik. Ini adalah nilai default.

    • False: tidak melewati konversi dan melaporkan kesalahan.

    ignore_none_labels

    Boolean

    Tidak

    Menentukan apakah akan melewati konversi dari log ke metrik jika bidang log tidak ada. Nilai yang valid:

    • True: melewati konversi dari log ke metrik. Ini adalah nilai default.

    • False: tidak melewati konversi dan melaporkan kesalahan.

  • Sebuah metrik dikembalikan.

    • Contoh 1: Konversikan log yang berisi bidang rt menjadi metrik.

      • Log mentah:

        __time__: 1614739608
        rt: 123
      • Aturan transformasi:

        e_to_metric(names="rt")
      • Hasil:

        __labels__:
        __name__:rt
        __time_nano__:1614739608000000000
        __value__:123.0
    • Contoh 2: Konversikan log yang berisi bidang rt menjadi metrik dan setel label menjadi host.

      • Log mentah:

        __time__: 1614739608
        rt: 123
        host: myhost
      • Aturan transformasi:

        e_to_metric(names="rt", labels="host")
      • Hasil:

        __labels__:host#$#myhost
        __name__:rt
        __time_nano__:1614739608000000000
        __value__:123.0
    • Contoh 3: Konversikan log yang berisi bidang rt dan qps menjadi metrik dan setel label menjadi host.

      • Log mentah:

        __time__: 1614739608
        rt: 123
        qps: 10
        host: myhost
      • Aturan transformasi:

        e_to_metric(names=["rt","qps"], labels="host")
      • Hasil:

        __labels__:host#$#myhost
        __name__:rt
        __time_nano__:1614739608000000000
        __value__:123.0
        
        __labels__:host#$#myhost
        __name__:qps
        __time_nano__:1614739608000000000
        __value__:10.0
    • Contoh 4: Konversikan log yang berisi bidang rt dan qps menjadi metrik, ubah nama bidang rt dan qps menjadi max_rt dan total_qps, dan setel label menjadi host.

      • Log mentah:

        __time__: 1614739608
        rt: 123
        qps: 10
        host: myhost
      • Aturan transformasi:

        e_to_metric(names=[("rt","max_rt"),("qps","total_qps")], labels="host")
      • Hasil:

        __labels__:host#$#myhost
        __name__:max_rt
        __time_nano__:1614739608000000000
        __value__:123.0
        
        __labels__:host#$#myhost
        __name__:total_qps
        __time_nano__:1614739608000000000
        __value__:10.0
    • Contoh 5: Konversikan log yang berisi bidang rt dan qps menjadi metrik, ubah nama bidang rt dan qps menjadi max_rt dan total_qps, setel label menjadi host, dan ubah nama host menjadi hostname.

      • Log mentah:

        __time__: 1614739608
        rt: 123
        qps: 10
        host: myhost
      • Aturan transformasi:

        e_to_metric(names=[("rt","max_rt"),("qps","total_qps")], labels=[("host","hostname")])
      • Hasil:

        __labels__:hostname#$#myhost
        __name__:max_rt
        __time_nano__:1614739608000000000
        __value__:123.0
        
        __labels__:hostname#$#myhost
        __name__:total_qps
        __time_nano__:1614739608000000000
        __value__:10.0
    • Contoh 6: Konversikan log yang berisi bidang remote_user1 dan request_length menjadi metrik, ubah nama bidang remote_user1 dan request_length menjadi remote_user2 dan request_length1, dan setel label menjadi status1.

      • Log mentah:

        __time__:1652943594
        remote_user:89
        request_length:4264
        request_method:GET
        status:200
      • Aturan transformasi:

        # Bidang remote_user1 dan status1 tidak ada dalam log dan konversi dilewati.
        e_to_metric(
            names=[("remote_user1", "remote_user2"), ("request_length", "request_length1")],
            labels="status1",
            ignore_none_names=True,
            ignore_none_labels=True,
        )
      • Hasil:

        __labels__:
        __name__:request_length1
        __time_nano__:1652943594000000000
        __value__:4264.0
    • Contoh 7: Konversikan log yang berisi bidang remote_user menjadi metrik, setel label menjadi status, dan tentukan milidetik sebagai satuan bidang waktu dalam log.

      • Log mentah:

        __time__:1652943594
        remote_user:89
        request_length:4264
        request_method:GET
        status:200
      • Aturan transformasi:

        e_to_metric(
            names="remote_user",
            labels="status",
            time_precision="ms",
            ignore_none_names=True,
            ignore_none_labels=True,
        )
      • Hasil:

        __labels__:status#$#200
        __name__:remote_user
        __time_nano__:1652943594000000
        __value__:89.0
    • Contoh 8: Konversikan log yang berisi bidang remote_user menjadi metrik, setel label menjadi status, tentukan bidang time dalam log sebagai bidang waktu metrik, dan tentukan nanodetik sebagai satuan bidang waktu dalam log.

      • Log mentah:

        time:1652943594
        remote_user:89
        request_length:4264
        request_method:GET
        status:200
      • Aturan transformasi:

        e_to_metric(
            names="remote_user",
            labels="status",
            time_field="time",
            time_precision="ns",
            ignore_none_names=True,
            ignore_none_labels=True,
        )
      • Hasil:

        __labels__:status#$#200
        __name__:remote_user
        __time_nano__:1652943594
        __value__:89.0
  • Referensi

    Fungsi ini dapat digunakan bersama dengan fungsi lainnya. Untuk informasi lebih lanjut, lihat Konversi Log Menjadi Metrik.