Transformasi sampel di Azure Monitor
Transformasi di Azure Monitor memungkinkan Anda memfilter atau memodifikasi data masuk sebelum dikirim ke ruang kerja Analitik Log. Artikel ini menyediakan kueri sampel untuk skenario umum yang dapat Anda gunakan untuk mulai membuat transformasi Anda sendiri. Lihat Membuat transformasi di Azure Monitor untuk detail tentang pengujian transformasi ini dan menambahkannya ke aturan pengumpulan data (DCR).
Mengurangi biaya data
Karena Anda dikenakan biaya penyerapan untuk data apa pun yang dikirim ke ruang kerja Analitik Log, Anda ingin memfilter data apa pun yang tidak diperlukan untuk mengurangi biaya Anda.
Memfilter baris data
where
Gunakan pernyataan untuk memfilter data masuk yang cocok dengan persyaratan tertentu. Jika rekaman masuk tidak cocok dengan pernyataan, maka rekaman tidak dikirim ke tujuan. Dalam contoh berikut, hanya rekaman dengan tingkat keparahan Critical
yang dikumpulkan.
source | where severity == "Critical"
Memfilter kolom data
Hapus kolom dari sumber data yang tidak diperlukan untuk menghemat biaya penyerapan data. project
Gunakan pernyataan untuk menentukan kolom dalam output Anda, atau gunakan project-away
untuk menentukan hanya kolom yang akan dihapus. Dalam contoh berikut, RawData
kolom dihapus dari output.
source | project-away RawData
Mengurai data penting dari kolom
Anda mungkin memiliki kolom dengan data penting yang dikubur dalam teks yang berlebihan. Simpan hanya data berharga dan hapus teks yang tidak diperlukan. Gunakan fungsi string seperti substring
dan extract
untuk mengurai data yang Anda inginkan. Anda juga dapat mengurai data menggunakan parse
atau split
untuk memecah satu kolom menjadi beberapa nilai dan memilih satu yang Anda inginkan. Kemudian gunakan extend
untuk membuat kolom baru dengan data yang diurai dan project-away
untuk menghapus kolom asli.
Peringatan
Lihat Memecah perintah penguraian besar untuk tips menggunakan perintah penguraian kompleks.
Dalam contoh berikut, RequestContext
kolom berisi JSON dengan ResourceId ruang kerja. Fungsi parse_json
dan split
digunakan untuk mengekstrak nama sederhana ruang kerja. Kolom baru dibuat untuk nilai ini dan kolom lainnya dihapus.
source
| extend Context = parse_json(RequestContext)
| extend Workspace_CF = tostring(Context['workspaces'][0])
| extend WorkspaceName_CF = split(Workspace_CF,"/")[8]
| project-away RequestContext, Context, Workspace_CF
Mengirim baris ke log dasar
Kirim baris dalam data Anda yang memerlukan kemampuan kueri dasar ke tabel log dasar untuk biaya penyerapan yang lebih rendah. Lihat Mengirim data ke beberapa tabel untuk detail tentang cara mengirim data ke beberapa tabel.
Menghapus data sensitif
Anda mungkin memiliki sumber data yang mengirim informasi yang tidak ingin Anda simpan karena alasan privasi atau kesiapan.
Memfilter informasi sensitif
Gunakan strategi yang sama seperti yang dijelaskan dalam Mengurangi biaya data untuk memfilter seluruh baris atau kolom tertentu yang berisi informasi sensitif. Dalam contoh berikut, ClientIP
kolom dihapus dari output.
source | project-away ClientIP
Mengaburkan informasi sensitif
Gunakan fungsi string untuk mengganti informasi seperti digit dalam alamat IP atau nomor telepon dengan karakter umum. Contoh berikut menggantikan nama pengguna di alamat email dengan "*****".
source | extend Email = replace_string(Email,substring(Email,0,indexof(Email,"@")),"*****")
Kirim ke tabel alternatif
Kirim rekaman sensitif ke tabel alternatif dengan konfigurasi kontrol akses berbasis peran yang berbeda. Lihat Mengirim data ke beberapa tabel untuk detail tentang cara mengirim data ke beberapa tabel.
Perkaya data
Gunakan transformasi untuk menambahkan informasi ke data yang menyediakan konteks bisnis atau menyederhanakan kueri data nanti. Gunakan fungsi string untuk mengekstrak informasi penting dari kolom lalu gunakan extend
pernyataan untuk menambahkan kolom baru ke sumber data. Contoh berikut menambahkan kolom yang mengidentifikasi apakah alamat IP di kolom lain bersifat internal atau eksternal.
source | extend IpLocation = iff(split(ClientIp,".")[0] in ("10","192"), "Internal", "External")
Memformat data untuk tujuan
Anda mungkin memiliki sumber data yang mengirim data dalam format yang tidak cocok dengan struktur tabel tujuan. Gunakan transformasi untuk memformat ulang data ke skema yang diperlukan.
Mengubah skema
Gunakan perintah seperti extend
dan project
untuk mengubah skema data masuk agar sesuai dengan tabel target. Dalam contoh berikut, kolom baru yang disebut TimeGenerated
ditambahkan ke data keluar menggunakan fungsi KQL untuk mengembalikan waktu saat ini.
source | extend TimeGenerated = now()
Mengurai data
split
Gunakan operator atau parse
untuk mengurai data ke dalam beberapa kolom dalam tabel tujuan. Dalam contoh berikut, data masuk memiliki kolom yang dibatasi koma bernama RawData
yang dibagi menjadi kolom individual untuk tabel tujuan.
source
| project d = split(RawData,",")
| project TimeGenerated=todatetime(d[0]), Code=toint(d[1]), Severity=tostring(d[2]), Module=tostring(d[3]), Message=tostring(d[4])
Peringatan
Lihat Memecah perintah penguraian besar untuk tips menggunakan perintah penguraian kompleks.