Ignora la convalida dei log per le estensioni del parser e i parser personalizzati
La procedura di convalida del parser personalizzato e dell'estensione del parser in genere prevede un controllo rigoroso rispetto ai log di esempio dei 30 giorni precedenti per garantire l'integrità funzionale. Tuttavia, ci sono scenari in cui i clienti potrebbero dover implementare un'estensione nonostante gli errori di convalida, ad esempio quando non sono stati inseriti log negli ultimi 30 giorni o quando i log attuali non riflettono ancora un nuovo formato.
Questo documento descrive il flusso di lavoro basato su API per bypassare la convalida obbligatoria dei log per le estensioni del parser e i parser personalizzati.
| Componente | Definizione |
| Metodo API | CreateParserExtension (per le estensioni) o CreateParser (per i parser personalizzati)
|
| Flag di bypass | validation_skipped
|
| Tipo di flag | Booleano (valore predefinito: false) |
| Ambito | ParserExtension.proto (per le estensioni) e Parser.proto (per i parser personalizzati) |
Se salti la convalida, il parser viene visualizzato con lo stato validation_skipped. Poiché si tratta di un'operazione asincrona, le chiamate iniziali all'API Create mostreranno un nuovo stato. Tuttavia, le successive richieste dell'API Get rifletteranno lo stato validation_skipped una volta elaborate.
Esecuzione API
Esegui la chiamata API Create pertinente con il flag validation_skipped abilitato. Puoi utilizzare questo flag e attivare il parser o l'estensione personalizzati, anche quando non sono stati importati log per il cliente e il tipo di log.
Esempi di API per le estensioni del parser
Richiesta
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 }CreateParserExtensionRispostagoogle.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 }Richiesta
GetParserExtensionname: "projects/dummy/locations/us/instances/dummy/logTypes/dummy/parserExtensions/dummy"GetParserExtensionRispostagoogle.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 }
Una volta create le estensioni del parser, puoi eseguirne il deployment utilizzando il metodo ActivateParserExtension.
Esempi di API per analizzatori personalizzati
Richiesta
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 }CreateParserRispostagoogle.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 }Richiesta
GetParsername: "projects/dummy/locations/us/instances/dummy/logTypes/dummy/parsers/dummy"GetParserRispostaname: "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"
Una volta creati i parser personalizzati, puoi eseguirne il deployment utilizzando il metodo ActivateParser.
Criteri di rifiuto e rischio
Anche se il flag
validation_skippedconsente agli utenti di ignorare i controlli sui log di esempio, non consente il deployment di codice danneggiato. Un'estensione o un parser personalizzato viene comunque rifiutato se il codice dell'estensione o del parser contiene errori relativi alla sintassi. L'opzione di ignorare è fattibile solo se l'estensione è sintatticamente corretta, ma non funziona a causa della logica di analisi o della mancanza di log.Se un flag
validation_skippedcausa problemi di sistema o regressioni delle prestazioni, potrebbe essere disattivato dai team di ingegneria interni di Google.
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.