Ignorer la validation des journaux pour les extensions d'analyseur et les analyseurs personnalisés
Le processus de validation des analyseurs personnalisés et des extensions d'analyseur consiste généralement à effectuer une vérification rigoureuse des journaux d'exemple des 30 jours précédents pour garantir l'intégrité fonctionnelle. Toutefois, il existe des scénarios dans lesquels les clients peuvent avoir besoin de déployer une extension malgré des échecs de validation, par exemple lorsqu'aucun journal n'a été ingéré au cours des 30 derniers jours ou lorsque les journaux actuels ne reflètent pas encore un nouveau format.
Ce document décrit le workflow basé sur l'API permettant de contourner la validation obligatoire des journaux pour les extensions d'analyseur et les analyseurs personnalisés.
| Composant | Définition |
| Méthode API | CreateParserExtension (pour les extensions) ou CreateParser (pour les analyseurs personnalisés)
|
| Indicateur de contournement | validation_skipped
|
| Type de signalement | Booléen (par défaut : false) |
| Champ d'application | Proto ParserExtension (pour les extensions) et proto Parser (pour les analyseurs personnalisés) |
Lorsque vous ignorez la validation, l'analyseur affiche l'état validation_skipped. Comme il s'agit d'une opération asynchrone, les appels initiaux à l'API Create afficheront un nouvel état. Toutefois, les requêtes Get API suivantes refléteront l'état validation_skipped une fois traitées.
Exécution d'API
Exécutez l'appel d'API Create approprié avec l'indicateur validation_skipped activé. Vous pouvez utiliser cet indicateur et activer l'analyseur personnalisé ou l'extension, même si aucun journal n'a été ingéré pour le client et le type de journal.
Exemples d'API pour les extensions d'analyseur
Demande
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 }Réponse
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 }Demande
GetParserExtensionname: "projects/dummy/locations/us/instances/dummy/logTypes/dummy/parserExtensions/dummy"Réponse
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 }
Une fois que vous avez créé les extensions d'analyseur, vous pouvez les déployer à l'aide de la méthode ActivateParserExtension.
Exemples d'API pour les analyseurs personnalisés
Demande
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 }Réponse
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 }Demande
GetParsername: "projects/dummy/locations/us/instances/dummy/logTypes/dummy/parsers/dummy"Réponse
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"
Une fois que vous avez créé les analyseurs personnalisés, vous pouvez les déployer à l'aide de la méthode ActivateParser.
Critères de refus et risques
Bien que l'indicateur
validation_skippedpermette aux utilisateurs de contourner les vérifications par rapport aux journaux d'échantillon, il ne permet pas le déploiement de code défectueux. Une extension ou un analyseur personnalisé est toujours refusé si son code contient des erreurs de syntaxe. L'option "Ignorer" n'est viable que si l'extension est syntaxiquement correcte, mais qu'elle échoue en raison de la logique d'analyse ou du manque de journaux.Si un indicateur
validation_skippedentraîne des problèmes système ou des régressions de performances, il peut être désactivé par les équipes d'ingénierie internes de Google.
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.