Ignorar a validação de registros para extensões e analisadores personalizados
O processo de validação do analisador personalizado e da extensão do analisador geralmente aplica uma verificação rigorosa em relação aos registros de amostra dos 30 dias anteriores para garantir a integridade funcional. No entanto, há cenários em que os clientes precisam implantar uma extensão apesar das falhas de validação, como quando nenhum registro foi ingerido nos últimos 30 dias ou quando os registros atuais ainda não refletem um novo formato.
Este documento descreve o fluxo de trabalho baseado em API para ignorar a validação obrigatória de registros em extensões e analisadores personalizados.
| Componente | Definição |
| Método de API | CreateParserExtension (para extensões) ou CreateParser (para analisadores personalizados)
|
| Flag de bypass | validation_skipped
|
| Tipo de flag | Booleano (padrão: falso) |
| Escopo | Proto ParserExtension (para extensões) e proto Parser (para analisadores personalizados) |
Quando você pula a validação, o analisador mostra o status validation_skipped. Como essa é uma operação assíncrona, as chamadas iniciais para a API Create vão mostrar um novo estado. No entanto, as solicitações subsequentes da API Get vão refletir o status validation_skipped depois de processadas.
Execução da API
Execute a chamada de API Create relevante com a flag validation_skipped ativada. Você pode usar essa flag e ativar o analisador personalizado ou a extensão, mesmo quando nenhum registro foi ingerido para o cliente e o tipo de registro.
Exemplos de API para extensões do analisador
Solicitação do
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 }Resposta de
CreateParserExtensiongoogle.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 }Solicitação do
GetParserExtensionname: "projects/dummy/locations/us/instances/dummy/logTypes/dummy/parserExtensions/dummy"Resposta de
GetParserExtensiongoogle.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 }
Depois de criar as extensões do analisador, implante-as usando o método ActivateParserExtension.
Exemplos de API para analisadores personalizados
Solicitação do
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 }Resposta de
CreateParsergoogle.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 }Solicitação do
GetParsername: "projects/dummy/locations/us/instances/dummy/logTypes/dummy/parsers/dummy"Resposta de
GetParsername: "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"
Depois de criar os analisadores personalizados, você pode implantá-los usando o método ActivateParser.
Critérios de rejeição e risco
Embora a flag
validation_skippedpermita que os usuários ignorem as verificações em relação aos registros de amostra, ela não permite a implantação de código corrompido. Uma extensão ou um analisador personalizado ainda será rejeitado se o código da extensão ou do analisador contiver falhas relacionadas à sintaxe. A opção de ignorar só é viável se a extensão estiver sintaticamente correta, mas falhar devido à lógica de análise ou à falta de registros.Se uma flag
validation_skippedcausar problemas no sistema ou regressões de desempenho, ela poderá ser desativada pelas equipes internas de engenharia do Google.
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.