Melewati Validasi Log untuk ekstensi parser dan parser kustom
Proses validasi parser kustom dan ekstensi parser biasanya menerapkan pemeriksaan ketat terhadap contoh log dari 30 hari sebelumnya untuk memastikan integritas fungsional. Namun, ada skenario saat pelanggan mungkin perlu men-deploy ekstensi meskipun validasi gagal, seperti saat tidak ada log yang dimasukkan dalam 30 hari terakhir atau saat log saat ini belum mencerminkan format baru.
Dokumen ini menguraikan alur kerja berbasis API untuk melewati validasi log wajib untuk ekstensi parser dan parser kustom.
| Komponen | Definisi |
| Metode API | CreateParserExtension (untuk Ekstensi) atau CreateParser (untuk Parser Kustom)
|
| Bendera Pengabaian | validation_skipped
|
| Jenis Pelanggaran | Boolean (Default: false) |
| Cakupan | Proto ParserExtension (untuk ekstensi) dan proto Parser (untuk parser kustom) |
Jika Anda melewati validasi, parser akan ditampilkan sebagai status validation_skipped. Karena ini adalah operasi asinkron, panggilan awal ke Create API akan menampilkan status baru. Namun, permintaan Get API berikutnya akan mencerminkan status validation_skipped setelah diproses.
Eksekusi API
Jalankan panggilan Create API yang relevan dengan tanda validation_skipped yang diaktifkan. Anda dapat menggunakan tanda ini dan mengaktifkan parser atau ekstensi kustom, meskipun tidak ada log yang telah di-ingest sama sekali untuk pelanggan dan jenis log.
Contoh API untuk ekstensi parser
Permintaan
CreateParserExtensionparent: "projects/dummy/locations/us/instances/dummy/logTypes/dummy" parser_extension { cbn_snippet: "# Author:dummy@google.com\n# Note: Pls don\'t delete or update.\n\nfilter {\n mutate {\n convert => {\n \"message\" => \"integer\"\n }\n }\n mutate {\n merge => {\n \"@output\" => \"event\"\n }\n }\n}" validation_skipped: true }CreateParserExtensionResponsgoogle.cloud.chronicle.v1main.ParserExtension { # [619B] name: "projects/dummy/locations/us/instances/dummy/logTypes/dummy/parserExtensions/dummy" state: NEW create_time: { # [12B] seconds: 1775133417 nanos: 697098000 } cbn_snippet: "# Author:dummy@google.com\n# Note: Pls don\'t delete or update.\n\nfilter {\n mutate {\n convert => {\n \"message\" => \"integer\"\n }\n }\n mutate {\n merge => {\n \"@output\" => \"event\"\n }\n }\n}" extension_validation_report: "projects/dummy/locations/us/instances/dummy/logTypes/dummy/parserExtensions/dummy/extensionValidationReports/dummy" validation_skipped: true }Permintaan
GetParserExtensionname: "projects/dummy/locations/us/instances/dummy/logTypes/dummy/parserExtensions/dummy"GetParserExtensionResponsgoogle.cloud.chronicle.v1main.ParserExtension { # [862B] name: "projects/dummy/locations/us/instances/dummy/logTypes/dummy/parserExtensions/dummy" state: VALIDATION_SKIPPED create_time: { # [12B] seconds: 1775133417 nanos: 697098000 } cbn_snippet: "# Author:dummy@google.com\n# Note: Pls don\'t delete or update.\n\nfilter {\n mutate {\n convert => {\n \"message\" => \"integer\"\n }\n }\n mutate {\n merge => {\n \"@output\" => \"event\"\n }\n }\n}" extension_validation_report: "projects/dummy/locations/us/instances/dummy/logTypes/dummy/parserExtensions/dummy/extensionValidationReports/dummy" validation_report:"projects/dummy/locations/us/instances/dummy/logTypes/dummy/parserExtensions/dummy/validationReports/dummy" state_last_changed_time: { # [12B] seconds: 1775133417 nanos: 976250000 } last_live_time: { # [11B] seconds: 1775133418 nanos: 189172000 } validation_skipped: true }
Setelah membuat ekstensi parser, Anda dapat men-deploy-nya menggunakan metode ActivateParserExtension.
Contoh API untuk parser kustom
Permintaan
CreateParserparent: "projects/dummy/locations/us/instances/dummy/logTypes/dummy" parser: { # [260B] cbn: "# Author: dummy@google.com\n# Note: Pls don\'t delete or update. This is used by normalizer custom prober.\n\nfilter {\n mutate {\n convert => {\n \"message\" => \"integer\"\n }\n }\n mutate {\n merge => {\n \"@output\" => \"event\"\n }\n }\n}" validation_skipped: true }CreateParserResponsgoogle.cloud.chronicle.v1main.Parser { # [489B] name: "projects/dummy/locations/us/instances/dummy/logTypes/dummy/parsers/dummy" creator: { # [85B] customer:"projects/dummy/locations/us/instances/dummy" source: CUSTOMER } cbn: "# Author: dummy@google.com\n# Note: Pls don\'t delete or update. This is used by normalizer custom prober.\n\nfilter {\n mutate {\n convert => {\n \"message\" => \"integer\"\n }\n }\n mutate {\n merge => {\n \"@output\" => \"event\"\n }\n }\n}" changelogs: { # [0B] } validation_stage: NEW type: CUSTOM state: INACTIVE validation_skipped: true }Permintaan
GetParsername: "projects/dummy/locations/us/instances/dummy/logTypes/dummy/parsers/dummy"GetParserResponsname: "projects/dummy/locations/us/instances/dummy/logTypes/dummy/parsers/dummy" creator: { # [85B] customer:"projects/dummy/locations/us/instances/dummy" source: CUSTOMER } cbn: "# Author:dummy@google.com\n# Note: Pls don\'t delete or update. This is used by normalizer custom prober.\n\nfilter {\n mutate {\n convert => {\n \"message\" => \"integer\"\n }\n }\n mutate {\n merge => {\n \"@output\" => \"event\"\n }\n }\n}" create_time: { # [12B] seconds: 1775135466 nanos: 795092000 } changelogs: { # [0B] } validation_stage: VALIDATION_SKIPPED type: CUSTOM state: INACTIVE validation_report:"projects/dummy/locations/us/instances/dummy/logTypes/dummy/parsers/dummy/validationReports/dummy"
Setelah membuat parser kustom, Anda dapat men-deploy-nya menggunakan metode ActivateParser.
Kriteria penolakan dan risiko
Meskipun tanda
validation_skippedmemungkinkan pengguna melewati pemeriksaan terhadap log sampel, tanda ini tidak memungkinkan deployment kode yang rusak. Ekstensi atau parser kustom tetap ditolak jika kode ekstensi atau parser berisi kegagalan terkait sintaksis. Opsi lewati hanya dapat dilakukan jika ekstensi sudah benar secara sintaksis, tetapi gagal karena logika penguraian atau kurangnya log.Jika tanda
validation_skippedmenyebabkan masalah sistem atau regresi performa, tanda tersebut dapat dinonaktifkan oleh tim engineering internal Google.
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.