Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Enregistrez et réexécutez les requêtes CloudWatch Logs Insights
Après avoir créé une requête, vous pouvez l'enregistrer et la réexécuter ultérieurement. Les requêtes sont enregistrées dans une structure de dossiers afin que vous puissiez les organiser. Vous pouvez enregistrer jusqu'à 1 000 requêtes par région et par compte.
Les requêtes sont enregistrées à un niveau spécifique à la région, et non à un niveau spécifique à l'utilisateur. Si vous créez et enregistrez une requête, les autres utilisateurs ayant accès aux CloudWatch journaux de la même région peuvent voir toutes les requêtes enregistrées et leurs structures de dossiers dans la région.
Pour enregistrer une requête, vous devez être connecté à un rôle disposant de l'autorisation logs:PutQueryDefinition. Pour afficher une liste des requêtes enregistrées, vous devez être connecté à un rôle disposant de l'autorisation logs:DescribeQueryDefinitions.
Note
Vous pouvez créer et enregistrer des requêtes avec des paramètres, c'est-à-dire des modèles réutilisables avec des espaces réservés nommés. Au lieu d'enregistrer plusieurs variantes de la même requête avec des valeurs différentes, créez un modèle et fournissez différentes valeurs de paramètres lorsque vous l'exécutez. Cette fonctionnalité est actuellement prise en charge uniquement pour les requêtes utilisant le langage de requête Logs Insights. Pour plus d'informations, consultez la section Utilisation de requêtes enregistrées avec des paramètres.
Astuce
Vous pouvez créer un dossier pour les requêtes enregistrées avec PutQueryDefinition. Pour créer un dossier pour vos requêtes enregistrées, utilisez une barre oblique (/) pour préfixer le nom de requête souhaité par le nom de dossier de votre choix : <. Pour plus d'informations sur cette action, consultez PutQueryDefinition. folder-name>/<query-name>
Pour enregistrer une nouvelle version d'une requête enregistrée
Ouvrez la CloudWatch console à l'adresse https://console.aws.amazon.com/cloudwatch/
. -
Dans le panneau de navigation, choisissez Logs (Journaux), puis Logs Insights.
-
Sur la droite, choisissez Queries (Requêtes).
-
Sélectionnez votre requête dans la liste Saved queries (Requêtes enregistrées). Celle-ci apparaît dans l'éditeur de requêtes.
-
Modifiez la requête. Si vous devez l'exécuter pour vérifier le résultat de vos efforts, choisissez Run query (Exécuter la requête).
-
Lorsque vous êtes prêt à enregistrer la nouvelle version, choisissez Actions, puis Save as (Enregistrer sous).
-
Entrez un nom pour la requête.
-
(Facultatif) Choisissez un dossier dans lequel vous souhaitez enregistrer cette requête. Sélectionnez (Nouveau) pour créer un dossier. Si vous créez un dossier, vous pouvez utiliser des barres obliques (/) dans son nom pour définir une structure de dossier. Par exemple, le nom d'un nouveau dossier
folder-level-1/folder-level-2crée un dossier de niveau supérieur appeléfolder-level-1, avec un autre dossier appeléfolder-level-2au sein de ce dossier. La requête est enregistrée dansfolder-level-2. -
(Facultatif) Modifiez les groupes de journaux ou le texte de la requête.
-
Choisissez Enregistrer.
Pour supprimer une requête, vous devez être connecté à un rôle disposant de l'autorisation logs:DeleteQueryDefinition.
Pour modifier ou supprimer une requête enregistrée
Ouvrez la CloudWatch console à l'adresse https://console.aws.amazon.com/cloudwatch/
. -
Dans le panneau de navigation, choisissez Logs (Journaux), puis Logs Insights.
-
Sur la droite, choisissez Queries (Requêtes).
-
Sélectionnez votre requête dans la liste Saved queries (Requêtes enregistrées). Celle-ci apparaît dans l'éditeur de requêtes.
-
Choisissez Actions et Edit (Modifier) ou Actions et Delete (Supprimer).
Utilisation de requêtes enregistrées avec paramètres
Les requêtes enregistrées avec paramètres sont des modèles de requêtes réutilisables avec des espaces réservés nommés. Au lieu de conserver plusieurs copies de requêtes presque identiques, vous pouvez enregistrer un modèle et fournir différentes valeurs de paramètres lors de l'exécution de la requête. Les paramètres ne sont pris en charge que dans le langage de requête CloudWatch Logs Insights.
Fonctionnement
Lorsque vous enregistrez une requête, les espaces réservés identifient les valeurs que vous pouvez fournir au moment de l'exécution de la requête. Les espaces réservés utilisent la {{parameterName}} syntaxe. Voici un exemple de requête enregistrée nommée ErrorsByLevel avec deux paramètres logLevel etapplicationName.
fields @timestamp, @message | filter level = {{logLevel}} | filter applicationName = {{applicationName}}
Pour exécuter une requête enregistrée, vous pouvez l'invoquer en utilisant le nom de la requête préfixé par $ et en transmettant les valeurs des paramètres. Le moteur de requête CloudWatch Logs Insights remplace chaque espace réservé. Si un paramètre contient des valeurs par défaut, ces valeurs sont utilisées si aucune autre valeur n'est fournie.
# Run query by using query name and passing parameter values explicitly $ErrorsByLevel(logLevel = "WARN", applicationName = "OrderService") # Run query without specifying parameter values - default values are used in this case. $ErrorsByLevel()
Les noms de requêtes enregistrés contenant des espaces ou des caractères spéciaux doivent être suivis de backticks :
$`Errors By Level`(logLevel = "WARN")
Exemples de requêtes enregistrées avec paramètres
Ajouter une limite de résultats en tant que paramètre
Nom de la requête : ErrorsByLevel avec paramètres logLevel (par défaut :"ERROR"), applicationName (par défaut :"OrderService") et maxResults (par défaut :50)
fields @timestamp, @message, @logStream | filter level = {{logLevel}} | filter applicationName = {{applicationName}} | sort @timestamp desc | limit {{maxResults}}
# Run the query using the query name and passing parameter values $ErrorsByLevel(logLevel = "WARN", applicationName = "OrderService", maxResults = 100)
Utilisation de plusieurs requêtes enregistrées avec paramètres
L'exemple ci-dessous utilise ErrorsByLevel une seconde requête RecentN enregistrée définie comme sort @timestamp desc | limit {{count}} (avec paramètrecount, par défaut20). Le moteur de requêtes CloudWatch Logs Insights développe chaque requête avant de l'exécuter.
# Using multiple queries with parameters in sequence $ErrorsByLevel(logLevel = "WARN", applicationName = "OrderService") | $RecentN(count = 10) # Each of the queries is expanded, resulting in the following query when it is run. fields @timestamp, @message | filter level = "WARN" | filter applicationName = "OrderService" | sort @timestamp desc | limit 10
Quotas et gestion des erreurs
Note
Chaque requête enregistrée peut comporter un maximum de 20 paramètres.
La chaîne de requête étendue ne peut pas dépasser 10 000 caractères. Les noms des paramètres doivent commencer par une lettre ou un trait de soulignement. Une requête enregistrée ne peut pas faire référence à une autre requête enregistrée (les invocations imbriquées ne sont pas prises en charge).
| Erreur | Cause |
|---|---|
Les paramètres ne sont pris en charge que pour le langage de requête CWLI |
Les paramètres ne sont pris en charge que dans le langage de requête CloudWatch Logs Insights. |
Paramètres obligatoires introuvables dans QueryString |
Le nom d'un paramètre dans |
Le nombre de paramètres dépasse le maximum de 20 |
Les requêtes enregistrées ne prennent actuellement en charge que 20 paramètres. |
Nom du paramètre dupliqué |
La définition de requête contient des paramètres dupliqués |
Note
Pour créer ou mettre à jour une requête enregistrée avec des paramètres, vous devez disposer de cette logs:PutQueryDefinition autorisation. Pour en exécuter un, il vous faut logs:StartQuery etlogs:DescribeQueryDefinitions.