Analysez les journaux avec CloudWatch Logs Insights - Service géré pour Apache Flink

Le service géré Amazon pour Apache Flink était auparavant connu sous le nom d’Amazon Kinesis Data Analytics pour Apache Flink.

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.

Analysez les journaux avec CloudWatch Logs Insights

Après avoir ajouté une option de CloudWatch journalisation à votre application, comme décrit dans la section précédente, vous pouvez utiliser CloudWatch Logs Insights pour interroger vos flux de journaux afin de détecter des événements ou des erreurs spécifiques.

CloudWatch Logs Insights vous permet de rechercher et d'analyser de manière interactive les données de vos CloudWatch journaux dans Logs.

Pour plus d'informations sur la prise en main de CloudWatch Logs Insights, voir Analyser les données des CloudWatch journaux avec Logs Insights.

Exécution d'un exemple de requête

Cette section décrit comment exécuter un exemple de requête CloudWatch Logs Insights.

Prérequis

  • Groupes de journaux et flux de journaux existants configurés dans CloudWatch Logs.

  • Journaux existants stockés dans CloudWatch Logs.

Si vous utilisez des services tels qu' AWS CloudTrail Amazon Route 53 ou AmazonVPC, vous avez probablement déjà configuré les journaux de ces services pour qu'ils soient accessibles dans CloudWatch Logs. Pour plus d'informations sur l'envoi de CloudWatch journaux à Logs, consultez Getting Started with CloudWatch Logs.

Les requêtes dans CloudWatch Logs Insights renvoient soit un ensemble de champs provenant des événements du journal, soit le résultat d'une agrégation mathématique ou d'une autre opération effectuée sur les événements du journal. Cette section illustre une requête qui renvoie une liste d’événements du journal.

Pour exécuter un exemple de requête CloudWatch Logs Insights
  1. Ouvrez la CloudWatch console à l'adresse https://console.aws.amazon.com/cloudwatch/.

  2. Dans le panneau de navigation, choisissez Insights.

  3. L’éditeur de requête en haut de l’écran contient une requête par défaut qui renvoie les 20 événements du journal les plus récents. Sélectionnez un groupe de journaux à interroger, au-dessus de l’éditeur de requête.

    Lorsque vous sélectionnez un groupe de CloudWatch journaux, Logs Insights détecte automatiquement les champs des données du groupe de journaux et les affiche dans la section Champs découverts dans le volet droit. Il affiche également un graphique à barres des événements de journaux dans ce groupe de journaux au fil du temps. Ce graphique à barres montre la distribution des événements dans le groupe de journaux correspondant à vos requête et plage de temps, pas seulement les événements affichés dans le tableau.

  4. Choisissez Exécuter la requête.

    Les résultats de la requête s'affichent. Dans cet exemple, les résultats sont les 20 évènements de journaux les plus récents (tous types confondus).

  5. Pour afficher tous les champs renvoyés de l’un des événements de journaux, choisissez la flèche à gauche de cet événement de journal.

Pour plus d'informations sur l'exécution et la modification CloudWatch des requêtes Logs Insights, voir Exécuter et modifier un exemple de requête.

Passez en revue les exemples de requêtes

Cette section contient des exemples de requêtes CloudWatch Logs Insights pour analyser les journaux de l'application Managed Service for Apache Flink. Ces requêtes recherchent plusieurs exemples de conditions d’erreur et servent de modèles pour écrire des requêtes qui détectent d’autres conditions d’erreur.

Note

Remplacez la région (us-west-2), numéro de compte (012345678901) et le nom de l'application (YourApplication) dans les exemples de requêtes suivants avec la région de votre application et votre numéro de compte.

Analyser les opérations : répartition des tâches

La requête CloudWatch Logs Insights suivante renvoie le nombre de tâches que le gestionnaire de tâches Apache Flink distribue entre les gestionnaires de tâches. Vous devez définir le délai de la requête pour qu’il corresponde à une tâche exécutée afin que la requête ne renvoie pas les tâches des tâches précédentes. Pour de plus amples informations sur le parallélisme, consultez Implémenter le dimensionnement des applications dans le service géré pour Apache Flink.

fields @timestamp, message | filter message like /Deploying/ | parse message " to flink-taskmanager-*" as @tmid | stats count(*) by @tmid | sort @timestamp desc | limit 2000

La requête CloudWatch Logs Insights suivante renvoie les sous-tâches assignées à chaque gestionnaire de tâches. Le nombre total de sous-tâches est la somme du parallélisme de chaque tâche. Le parallélisme des tâches est dérivé du parallélisme des opérateurs et est identique au parallélisme de l’application par défaut, sauf si vous le modifiez dans le code en spécifiant setParallelism. Pour plus d’informations sur la définition du parallélisme des opérateurs, consultez la section Définition du parallélisme : niveau opérateur dans la documentation d’Apache Flink.

fields @timestamp, @tmid, @subtask | filter message like /Deploying/ | parse message "Deploying * to flink-taskmanager-*" as @subtask, @tmid | sort @timestamp desc | limit 2000

Pour plus d’informations sur la planification des tâches, consultez la section Tâches et planification dans la documentation d’Apache Flink.

Analyser les opérations : modification du parallélisme

La requête CloudWatch Logs Insights suivante renvoie les modifications apportées au parallélisme d'une application (par exemple, en raison du dimensionnement automatique). Cette requête renvoie également les modifications manuelles apportées au parallélisme de l’application. Pour plus d’informations sur la mise à l’échelle automatique, consultez Utiliser le dimensionnement automatique dans Managed Service pour Apache Flink.

fields @timestamp, @parallelism | filter message like /property: parallelism.default, / | parse message "default, *" as @parallelism | sort @timestamp asc

Analyser les erreurs : accès refusé

La requête CloudWatch Logs Insights suivante renvoie Access Denied des journaux.

fields @timestamp, @message, @messageType | filter applicationARN like /arn:aws:kinesisanalyticsus-west-2:012345678901:application\/YourApplication/ | filter @message like /AccessDenied/ | sort @timestamp desc

Analyser les erreurs : source ou récepteur introuvable

La requête CloudWatch Logs Insights suivante renvoie ResourceNotFound des journaux. ResourceNotFoundenregistre le résultat si aucune source ou récepteur Kinesis n'est trouvé.

fields @timestamp,@message | filter applicationARN like /arn:aws:kinesisanalyticsus-west-2:012345678901:application\/YourApplication/ | filter @message like /ResourceNotFoundException/ | sort @timestamp desc

Analyser les erreurs : défaillances liées aux tâches de l'application

La requête CloudWatch Logs Insights suivante renvoie les journaux d'échec liés aux tâches d'une application. Ces journaux sont générés lorsque le statut d’une application passe de RUNNING à RESTARTING.

fields @timestamp,@message | filter applicationARN like /arn:aws:kinesisanalyticsus-west-2:012345678901:application\/YourApplication/ | filter @message like /switched from RUNNING to RESTARTING/ | sort @timestamp desc

Pour les applications utilisant Apache Flink version 1.8.2 et antérieures, les échecs liés aux tâches entraîneront le passage de l’état de l’application de RUNNING à FAILED. Lorsque vous utilisez Apache Flink 1.8.2 et versions antérieures, utilisez la requête suivante pour rechercher les échecs liés aux tâches de l’application :

fields @timestamp,@message | filter applicationARN like /arn:aws:kinesisanalyticsus-west-2:012345678901:application\/YourApplication/ | filter @message like /switched from RUNNING to FAILED/ | sort @timestamp desc