Cómo omitir la validación de registros para las extensiones del analizador y los analizadores personalizados
Por lo general, el proceso de validación del analizador personalizado y de la extensión del analizador aplica una verificación rigurosa en los registros de muestra de los últimos 30 días para garantizar la integridad funcional. Sin embargo, hay situaciones en las que los clientes pueden necesitar implementar una extensión a pesar de las fallas de validación, por ejemplo, cuando no se han transferido registros en los últimos 30 días o cuando los registros actuales aún no reflejan un formato nuevo.
En este documento, se describe el flujo de trabajo basado en la API para omitir la validación de registros obligatoria para las extensiones del analizador y los analizadores personalizados.
| Componente | Definición |
| Método de API | CreateParserExtension (para extensiones) o CreateParser (para analizadores personalizados)
|
| Indicador de omisión | validation_skipped
|
| Tipo de marca | Booleano (valor predeterminado: falso) |
| Alcance | Proto de ParserExtension (para extensiones) y proto de Parser (para analizadores personalizados) |
Cuando omites la validación, el analizador muestra el estado validation_skipped. Dado que se trata de una operación asíncrona, las llamadas iniciales a la API de Create mostrarán un estado nuevo. Sin embargo, las solicitudes posteriores a la API de Get reflejarán el estado validation_skipped una vez que se procesen.
Ejecución de la API
Ejecuta la llamada a la API de Create pertinente con la marca validation_skipped habilitada. Puedes usar esta marca y activar el analizador o la extensión personalizados, incluso cuando no se hayan transferido registros para el cliente y el tipo de registro.
Ejemplos de APIs para extensiones del analizador
Solicitud de
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 }Respuesta 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 }Solicitud de
GetParserExtensionname: "projects/dummy/locations/us/instances/dummy/logTypes/dummy/parserExtensions/dummy"Respuesta 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 }
Una vez que hayas creado las extensiones del analizador, podrás implementarlas con el método ActivateParserExtension.
Ejemplos de APIs para analizadores personalizados
Solicitud de
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 }Respuesta 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 }Solicitud de
GetParsername: "projects/dummy/locations/us/instances/dummy/logTypes/dummy/parsers/dummy"Respuesta 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"
Una vez que hayas creado los analizadores personalizados, puedes implementarlos con el método ActivateParser.
Criterios de rechazo y riesgo
Si bien la marca
validation_skippedpermite a los usuarios omitir las verificaciones en los registros de muestra, no permite la implementación de código dañado. Una extensión o un analizador personalizado se rechazan si su código contiene errores relacionados con la sintaxis. La opción de omitir solo es viable si la extensión es sintácticamente correcta, pero falla debido a la lógica de análisis o la falta de registros.Si una marca
validation_skippedcausa problemas en el sistema o regresiones de rendimiento, es posible que los equipos internos de ingeniería de Google la desactiven.
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.