Surveiller la bibliothèque client Kinesis avec Amazon CloudWatch - Amazon Kinesis Data Streams

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.

Surveiller la bibliothèque client Kinesis avec Amazon CloudWatch

La bibliothèque client Kinesis (KCL) pour Amazon Kinesis Data Streams publie des métriques Amazon CloudWatch personnalisées en votre nom, en utilisant le nom de votre application KCL comme espace de noms. Vous pouvez afficher ces métriques en accédant à la console CloudWatch et en choisissant Métriques personnalisées. Pour plus d'informations sur les métriques personnalisées, consultez Publication des métriques personnalisées dans le Guide de l'utilisateur Amazon CloudWatch.

Les métriques chargées dans CloudWatch par la KCL impliquent des frais nominaux, plus précisément les métriques personnalisées Amazon CloudWatch et les demandes d'API Amazon CloudWatch. Pour en savoir plus, consultez Tarification Amazon CloudWatch.

Métriques et espace de noms

L'espace de noms utilisé pour charger les métriques est le nom d'application que vous spécifiez lorsque vous lancez la KCL.

Niveaux et dimensions des métriques

Deux options sont disponibles pour contrôler quelles métriques sont chargées dans CloudWatch :

niveaux de métriques

Chaque métrique se voit attribuer un niveau individuel. Lorsque vous définissez un niveau de création de rapport de métriques, les métriques dont le niveau est inférieur au niveau de création de rapport ne sont pas envoyées à CloudWatch. Les niveaux sont : NONE, SUMMARY et DETAILED. Le paramètre par défaut est DETAILED, qui signifie que toutes les métriques sont envoyées à CloudWatch. Un niveau de création de rapport NONE signifie qu'aucune métrique n'est envoyée. Pour plus d'informations sur les niveaux attribués aux métriques, consultez la page Liste des métriques.

dimensions activées

Chaque métrique KCL est associée à des dimensions qui sont également envoyées à CloudWatch. Dans la KCL 2.x, si la KCL est configurée pour traiter un seul flux de données, toutes les dimensions des métriques (Operation, ShardId, etWorkerIdentifier) sont activées par défaut. De plus, dans la KCL 2.x, si la KCL est configurée pour traiter un seul flux de données, la dimension Operation ne peut pas être désactivée. Dans la KCL 2.x, si la KCL est configurée pour traiter plusieurs flux de données, toutes les dimensions des métriques (Operation, ShardId, StreamId etWorkerIdentifier) sont activées par défaut. De plus, dans la KCL 2.x, si la KCL est configurée pour traiter plusieurs flux de données, les dimensions Operation et StreamId ne peuvent pas être désactivées. La dimension StreamId est disponible uniquement pour les métriques par partition.

Dans la KCL 1.x, seules les dimensions Operation et ShardId sont activées par défaut ; la dimension WorkerIdentifier est désactivée. Dans la KCL 1.x, la dimension Operation ne peut pas être désactivée.

Pour de plus amples informations sur les métriques et alarmes CloudWatch, veuillez consulter la section Dimensions de la rubrique Concepts d'Amazon CloudWatch, dans le Guide de l'utilisateur d'Amazon CloudWatch.

Lorsque la dimension WorkerIdentifier est activée, si une valeur différente est utilisée pour la propriété d'ID de l'application de travail chaque fois qu'une application de travail KCL spécifique redémarre, de nouveaux ensembles de métriques avec de nouvelles valeurs de dimension WorkerIdentifier sont envoyés à CloudWatch. Si vous avez besoin que la valeur de dimension WorkerIdentifier soit égale pour tous les redémarrages d'application de travail KCL spécifiques, vous devez spécifier explicitement la même valeur d'ID d'application de travail lors de l'initialisation de chaque application de travail. Notez que la valeur d'ID d'application de travail de chaque application de travail KCL active doit être unique dans toutes les applications de travail KCL.

Configuration des métriques

Les niveaux des métriques et les dimensions activées peuvent être configurés à l'aide de l'instance KinesisClientLibConfiguration, qui est passée à l'application de travail lors du lancement de l'application KCL. Dans le cas du MultiLangDaemon, les propriétés metricsLevel et metricsEnabledDimensions peuvent être spécifiées dans le fichier .properties utilisé pour lancer l'application KCL MultiLangDaemon.

Les niveaux des métriques peuvent se voir attribuer l'une des trois valeurs suivantes : NONE, SUMMARY ou DETAILED. Les valeurs des dimensions activées doivent être des chaînes séparées par des virgules et correspondre à la liste des dimensions autorisées pour les métriques CloudWatch. Les dimensions utilisées par l'application KCL sont Operation, ShardId et WorkerIdentifier.

Liste des métriques

La liste de tables suivante répertorie les métriques KCL, regroupées par champ d'application et opération.

Métriques par application KCL

Ces métriques sont regroupées dans toutes les applications de travail KCL dans le champ de l'application, tel qu'il est défini par l'espace de noms Amazon CloudWatch.

InitializeTask

L'opération InitializeTask est chargée d'initialiser le processeur d'enregistrements pour l'application KCL. La logique de cette opération implique d'extraire un itérateur de partition de Kinesis Data Streams et d'initialiser le processeur d'enregistrements.

Métrique Description
KinesisDataFetcher.getIterator.Success

Nombre d'opérations GetShardIterator réussies par application KCL.

Niveau de métrique : Detailed

Unités : nombre

KinesisDataFetcher.getIterator.Time

Délai nécessaire par opération GetShardIterator pour l'application KCL donnée.

Niveau de métrique : Detailed

Unités : millisecondes

RecordProcessor.initialize.Time

Délai nécessaire pour la méthode d'initialisation du processeur d'enregistrements.

Niveau de métrique : Summary

Unités : millisecondes

Réussite

Nombre d'initialisations de processeur d'enregistrements réussies.

Niveau de métrique : Summary

Unités : nombre

Heure

Délai nécessaire pour l'initialisation du processeur d'enregistrements par l'application de travail KCL.

Niveau de métrique : Summary

Unités : millisecondes

ShutdownTask

L'opération ShutdownTask initie la séquence de fermeture pour le traitement des partitions. Elle peut avoir lieu lorsqu'une partition est fractionnée ou fusionnée ou que le bail de la partition est perdu par l'application de travail. Dans les deux cas, la fonction shutdown() du processeur d'enregistrements est appelée. De nouvelles partitions sont également détectées si une partition a été fractionnée ou fusionnée, ce qui entraîne la création d'une ou de deux nouvelles partitions.

Métrique Description
CreateLease.Success

Nombre de fois que les nouvelles partitions enfant sont ajoutées avec succès au tableau DynamoDB de l'application KCL suite à un arrêt de la partition parent.

Niveau de métrique : Detailed

Unités : nombre

CreateLease.Time

Temps nécessaire pour ajouter de nouvelles informations de partition enfant au tableau DynamoDB de l'application KCL.

Niveau de métrique : Detailed

Unités : millisecondes

UpdateLease.Success

Nombre de points de contrôle finaux réussis au cours de l'arrêt du processeur d'enregistrements.

Niveau de métrique : Detailed

Unités : nombre

UpdateLease.Time

Délai nécessaire pour l'opération de point de contrôle au cours de l'arrêt du processeur d'enregistrements.

Niveau de métrique : Detailed

Unités : millisecondes

RecordProcessor.shutdown.Time

Délai nécessaire pour la méthode de fermeture du processeur d'enregistrements.

Niveau de métrique : Summary

Unités : millisecondes

Réussite

Nombre de tâches de fermeture réussies.

Niveau de métrique : Summary

Unités : nombre

Heure

Délai nécessaire pour la tâche d'arrêt de l'application de travail KCL.

Niveau de métrique : Summary

Unités : millisecondes

ShardSyncTask

L'opération ShardSyncTask détecte les modifications apportées aux informations de partition pour le flux de données Kinesis. Ainsi, de nouvelles partitions peuvent être traitées par l'application KCL.

Métrique Description
CreateLease.Success

Nombre de tentatives réussies pour ajouter de nouvelles informations de partition au tableau DynamoDB de l'application KCL.

Niveau de métrique : Detailed

Unités : nombre

CreateLease.Time

Temps nécessaire pour ajouter de nouvelles informations de partition au tableau DynamoDB de l'application KCL.

Niveau de métrique : Detailed

Unités : millisecondes

Réussite

Nombre d'opérations de synchronisation de partitions réussies.

Niveau de métrique : Summary

Unités : nombre

Heure

Délai nécessaire pour l'opération de synchronisation des partitions.

Niveau de métrique : Summary

Unités : millisecondes

BlockOnParentTask

Si la partition est fractionnée ou fusionnée avec d'autres partitions, de nouvelles partitions enfant sont créées. L'opération BlockOnParentTask garantit que le traitement des enregistrements des nouvelles partitions ne démarre pas tant que le traitement des partitions parent par la KCL n'est pas terminé.

Métrique Description
Réussite

Nombre de contrôles réussis pour l'achèvement de la partition parent.

Niveau de métrique : Summary

Unités : nombre

Heure

Temps nécessaire à la réalisation de partitions parent.

Niveau de métrique : Summary

Unité : millisecondes

Gestionnaire de synchronisation périodique

Le PeriodicShardSyncManager est chargé d'examiner les flux de données traités par l'application client KCL, d'identifier les flux de données faisant l'objet de baux partiels et de les transférer pour synchronisation.

Lorsque la KCL est configurée pour traiter un seul flux de données, et également lorsque la KCL est configurée pour traiter plusieurs flux de données, les métriques suivantes sont disponibles (alors la valeur de NumStreamsToSync et NumStreamsWithPartialLeases est définie sur 1).

Métrique Description
NumStreamsToSync

Nombre de flux de données (par compte AWS) traités par l'application client qui contiennent des baux partiels et qui doivent être transférés pour synchronisation.

Niveau de métrique : Summary

Unités : nombre

NumStreamsWithPartialLeases

Nombre de flux de données (par compte AWS) traités par l'application client qui contiennent des baux partiels.

Niveau de métrique : Summary

Unités : nombre

Réussite

Nombre de fois où PeriodicShardSyncManager a réussi à identifier des baux partiels dans les flux de données traités par l'application client.

Niveau de métrique : Summary

Unités : nombre

Heure

Temps (en millisecondes) nécessaire à PeriodicShardSyncManager pour examiner les flux de données traités par l'application client afin de déterminer quels flux de données nécessitent une synchronisation des partitions.

Niveau de métrique : Summary

Unités : millisecondes

MultistreamTracker

L'interface MultistreamTracker vous permet de créer des applications client KCL capables de traiter plusieurs flux de données en même temps.

Métrique Description
DeletedStreams.Count

Nombre de flux de données supprimés au cours de cette période.

Niveau de métrique : Summary

Unités : nombre

ActiveStreams.Count

Nombre de flux de données actifs en cours de traitement.

Niveau de métrique : Summary

Unités : nombre

StreamsPendingDeletion.Count

Nombre de flux de données en attente de suppression en fonction de FormerStreamsLeasesDeletionStrategy.

Niveau de métrique : Summary

Unités : nombre

Métriques par application de travail

Ces métriques sont regroupées dans tous les processeurs d'enregistrements qui utilisent des données issues d'un flux de données Kinesis, par exemple d'une instance Amazon EC2.

RenewAllLeases

L'opération RenewAllLeases renouvelle périodiquement les baux de partition appartenant à une instance d'application de travail spécifique.

Métrique Description
RenewLease.Success

Nombre de renouvellements de bail réussis par application de travail.

Niveau de métrique : Detailed

Unités : nombre

RenewLease.Time

Délai nécessaire pour l'opération de renouvellement de bail.

Niveau de métrique : Detailed

Unités : millisecondes

CurrentLeases

Nombre de baux de partition appartenant à l'application de travail après le renouvellement de tous les baux.

Niveau de métrique : Summary

Unités : nombre

LostLeases

Nombre de baux de partition qui ont été perdus suite à une tentative de renouvellement de tous les baux appartenant à l'application de travail.

Niveau de métrique : Summary

Unités : nombre

Réussite

Nombre de fois que l'opération de renouvellement des baux a abouti pour l'application de travail.

Niveau de métrique : Summary

Unités : nombre

Heure

Délai nécessaire pour le renouvellement de tous les baux d'une application de travail.

Niveau de métrique : Summary

Unités : millisecondes

TakeLeases

L'opération TakeLeases équilibre la charge du traitement des enregistrements entre toutes les applications de travail KCL. Si l'application de travail KCL actuelle possède moins de baux de partition que nécessaire, elle prend des baux de partition à une autre application de travail qui est surchargée.

Métrique Description
ListLeases.Success

Nombre de fois que tous les baux de partition ont été extraits avec succès du tableau DynamoDB de l'application KCL.

Niveau de métrique : Detailed

Unités : nombre

ListLeases.Time

Délai nécessaire pour l'extraction de tous les baux de partition depuis le tableau DynamoDB de l'application KCL.

Niveau de métrique : Detailed

Unités : millisecondes

TakeLease.Success

Nombre de fois que l'application de travail a extrait avec succès des baux de partition d'autres applications de travail KCL.

Niveau de métrique : Detailed

Unités : nombre

TakeLease.Time

Délai nécessaire pour la mise à jour de la table des baux avec les baux extraits par l'application de travail.

Niveau de métrique : Detailed

Unités : millisecondes

NumWorkers

Nombre total d'applications de travail identifiées par une application de travail spécifique.

Niveau de métrique : Summary

Unités : nombre

NeededLeases

Nombre de baux de partition dont l'application de travail actuelle a besoin pour que la charge de traitement des partitions soit équilibrée.

Niveau de métrique : Detailed

Unités : nombre

LeasesToTake

Nombre de baux que l'application de travail va tenter de prendre.

Niveau de métrique : Detailed

Unités : nombre

TakenLeases

Nombre de baux pris avec succès par l'application de travail.

Niveau de métrique : Summary

Unités : nombre

TotalLeases

Nombre total de partitions en cours de traitement par l'application KCL.

Niveau de métrique : Detailed

Unités : nombre

ExpiredLeases

Nombre total de partitions qui ne sont pas traitées par une application de travail, comme identifié par l'application de travail spécifique.

Niveau de métrique : Summary

Unités : nombre

Réussite

Nombre de fois que l'opération TakeLeases a été effectuée avec succès.

Niveau de métrique : Summary

Unités : nombre

Heure

Délai nécessaire pour l'opération TakeLeases effectuée par une application de travail.

Niveau de métrique : Summary

Unités : millisecondes

Métriques par partition

Ces métriques sont regroupées sur un processeur d'enregistrements unique.

ProcessTask

L'opération ProcessTask appelle GetRecords avec la position d'itérateur actuelle pour extraire des enregistrements du flux et appeler la fonction processRecords du processeur d'enregistrements.

Métrique Description
KinesisDataFetcher.getRecords.Success

Nombre d'opérations GetRecords réussies par partition de flux de données Kinesis.

Niveau de métrique : Detailed

Unités : nombre

KinesisDataFetcher.getRecords.Time

Délai nécessaire par opération GetRecords pour la partition de flux de données Kinesis.

Niveau de métrique : Detailed

Unités : millisecondes

UpdateLease.Success

Nombre de points de contrôle réussis effectués par le processeur d'enregistrements pour la partition donnée.

Niveau de métrique : Detailed

Unités : nombre

UpdateLease.Time

Délai nécessaire pour chaque opération de point de contrôle pour la partition donnée.

Niveau de métrique : Detailed

Unités : millisecondes

DataBytesProcessed

Taille totale des enregistrements traités, en octets, à chaque invocation de ProcessTask.

Niveau de métrique : Summary

Unités : octet

RecordsProcessed

Nombre d'enregistrements traités à chaque invocation de ProcessTask.

Niveau de métrique : Summary

Unités : nombre

ExpiredIterator

Nombre d'exceptions ExpiredIteratorException reçues lors de l'appel de GetRecords.

Niveau de métrique : Summary

Unités : nombre

MillisBehindLatest Retard pris par l'itérateur actuel depuis le dernier enregistrement (extrémité) de la partition. Cette valeur est inférieure ou égale à la différence de temps entre le dernier enregistrement figurant dans une réponse et l'heure actuelle. Cette méthode donne des résultats plus précis pour connaître la distance parcourue depuis le début d'une partition que celle qui consiste à comparer les horodatages dans le dernier enregistrement de réponse. Cette valeur s'applique au dernier lot d'enregistrements et pas à une moyenne de tous les horodatages de chaque enregistrement.

Niveau de métrique : Summary

Unités : millisecondes

RecordProcessor.processRecords.Time

Délai nécessaire pour la méthode processRecords du processeur d'enregistrements.

Niveau de métrique : Summary

Unités : millisecondes

Réussite

Nombre d'opérations de traitement réussies.

Niveau de métrique : Summary

Unités : nombre

Heure

Délai nécessaire pour l'opération de traitement.

Niveau de métrique : Summary

Unités : millisecondes