Melewati Validasi Log untuk ekstensi parser dan parser kustom

Didukung di:

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 CreateParserExtension

    parent:    "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
    }
    
  • CreateParserExtension Respons

    google.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 GetParserExtension

    name: "projects/dummy/locations/us/instances/dummy/logTypes/dummy/parserExtensions/dummy"
    
  • GetParserExtension Respons

    google.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 CreateParser

    parent: "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
    }
    
  • CreateParser Respons

    google.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 GetParser

    name: "projects/dummy/locations/us/instances/dummy/logTypes/dummy/parsers/dummy"
    
  • GetParser Respons

    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}"
    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_skipped memungkinkan 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_skipped menyebabkan 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.