Quelles métriques puis-je utiliser pour surveiller et résoudre les problèmes liés à Kinesis Data Streams ?

Lecture de 6 minute(s)
0

Je souhaite surveiller les données entrantes et sortantes pour Amazon Kinesis Data Streams.

Résolution

Utilisation de métriques au niveau du flux

Vous pouvez utiliser les métriques Amazon CloudWatch pour surveiller continuellement les performances de votre flux de données Amazon Kinesis et son débit. Les métriques suivantes peuvent vous aider à surveiller les problèmes de type producteur et consommateur.

GetRecords.IteratorAgeMilliseconds
La métrique GetRecords.IteratorAgeMilliseconds mesure l’âge en millisecondes du dernier enregistrement du flux pour toutes les demandes GetRecords. Une valeur zéro pour cette métrique indique que les enregistrements au sein du flux sont actuels. Il est préférable d’utiliser une valeur inférieure. Pour surveiller les problèmes de performance, augmentez le nombre de consommateurs dans votre flux, afin que les données soient traitées plus rapidement. Pour optimiser le code de votre application, augmentez le nombre de consommateurs afin de réduire le délai de traitement des enregistrements.

ReadProvisionedThroughputExceeded
La métrique ReadProvisionedThroughputExceeded mesure le nombre d’appels GetRecords qui sont limités au cours d’une période donnée et qui dépassent les limites de service ou de partition pour Kinesis Data Streams. Une valeur zéro indique que les consommateurs de données ne dépassent pas les quotas de service. Toute autre valeur indique que la limite de débit est dépassée et que des partitions supplémentaires sont nécessaires. Cette métrique confirme qu’il n’y a pas plus de cinq lectures/seconde/partition ou 2 Mo/seconde/partition dans le flux. Vous pouvez activer la surveillance améliorée pour vérifier que le flux ne contient pas de partitions à chaud.

WriteProvisionedThroughputExceeded
La métrique WriteProvisionedThroughputExceeded mesure le PUT ou le producteur de données (tel que ReadProvisionedThroughputExceeded) pour vous aider à déterminer si le flux est limité. Cela dépasse les quotas de service pour les flux de données lors de l’écriture dans une partition. Veillez à ce que les demandes PUT ne dépassent pas 1 Mo/seconde/partition ou 1 000 enregistrements/partition/seconde. Assurez-vous que la clé de partition est répartie uniformément et que la surveillance améliorée est activée afin de détecter la présence de partitions à chaud dans le flux. En fonction de la saturation des partitions, mettez à jour le nombre de partitions dans le flux pour augmenter le débit.

PutRecord.Success et PutRecords.Success
Les métriques PutRecord.Success et PutRecords.Success mesurent le nombre d’enregistrements réussis de demandes PutRecords pour une période donnée par les producteurs de données dans le flux. Cette métrique confirme l’efficacité de la logique de nouvelle tentative pour les enregistrements ayant échoué.

GetRecords.Success
La métrique GetRecords.Success mesure le nombre de demandes GetRecords réussies pour une période donnée dans le flux. Elle confirme l’efficacité de la logique de nouvelle tentative pour les enregistrements ayant échoué.

GetRecords.Latency
La métrique GetRecords.Latency mesure le temps nécessaire à chaque opération GetRecords du flux au cours d’une période donnée. Elle confirme que les ressources physiques ou la logique de traitement des enregistrements sont suffisantes face à l’augmentation du débit du flux. Elle traite également les lots de données plus volumineux afin de réduire les latences liées au réseau et d’autres latences en aval de votre application. Pour la bibliothèque client Kinesis (KCL), examinez la métrique ProcessTask.Time pour surveiller le délai de traitement de l’application qui prend du retard. La métrique GetRecords.Latency confirme que le paramètre IDLE_TIME_BETWEEN_READS_IN_MILLIS est configuré pour suivre le traitement des flux.

PutRecords.Latency
La métrique PutRecords.Latency mesure le temps nécessaire à chaque opération PutRecords du flux au cours d’une période donnée. Si la valeur pour PutRecords.Latency est élevée, agrégez les enregistrements dans un fichier plus volumineux afin de placer les données par lots dans le flux de données Kinesis. Vous pouvez également utiliser plusieurs threads dans le cadre de l’écriture des données. La limitation et la logique de nouvelle tentative de l’API PutRecords peuvent avoir un impact sur la latence et sur le temps nécessaire pour chaque opération PutRecords du flux. Utilisez ensuite la statistique Moyenne pour les métriques répertoriées afin de surveiller les performances et le débit du flux.
Remarque : pour GetRecords.IteratorAgeMilliseconds, utilisez la statistique Maximum afin de réduire le risque de perte de données pour les consommateurs qui accusent du retard dans leurs opérations de lecture. Configurez une alarme CloudWatch pour répondre à tous les points de données à évaluer dans le cadre d’une métrique. Pour en savoir plus sur les alarmes CloudWatch, consultez la page Utilisation des alarmes Amazon CloudWatch.

Si vous utilisez la fonction de diffusion en éventail améliorée, utilisez les métriques suivantes pour surveiller Kinesis Data Streams :

SubscribeToShard.RateExceeded : mesure le nombre d’appels par seconde dépassés autorisés pour l’opération ou lorsqu’une tentative d’abonnement échoue parce qu’un abonnement actif existe déjà.

SubscribeToShard.Success : vérifie si l’opération SubscribeToShard aboutit.

SubscribeToShardEvent.Success : vérifie la publication réussie d’un événement dans le cadre d’un abonnement actif.

SubscribeToShardEvent.Bytes : mesure le nombre d’octets reçus dans les partitions au cours d’une période donnée.

SubscribeToShardEvent.Records : mesure le nombre d’enregistrements reçus dans les partitions au cours d’une période donnée.

SubscribeToShardEvent.MillisBehindLatest : mesure la différence entre l’heure actuelle et le dernier enregistrement de l’événement SubscribeToShard écrit dans le flux.

Activation de métriques améliorées au niveau des partitions

Remarque : si vous recevez des messages d’erreur lorsque vous exécutez des commandes de l’interface de la ligne de commande AWS (AWS CLI), consultez la page Résoudre les erreurs liées à AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente d’AWS CLI.

Activez les métriques au niveau des partitions dans CloudWatch pour surveiller des tâches spécifiques et résoudre les problèmes rencontrés par les producteurs et les consommateurs de données. Par exemple, vous pouvez activer les métriques au niveau des partitions pour identifier des problèmes tels qu’une répartition inégale des charges de travail. Pour activer la surveillance améliorée, procédez comme suit :

Remarque : vous pouvez également utiliser la demande d’API EnableEnhancedMonitoring ou la commande AWS CLI enable-enhanced-monitoring.

  1. Ouvrez la console Kinesis.
  2. Choisissez une Région spécifique.
  3. Dans le volet de navigation, choisissez Flux de données.
  4. Sous Nom du flux de données, sélectionnez votre flux de données Kinesis.
  5. Choisissez Configuration.
  6. Sous Métriques améliorées (au niveau des partitions), choisissez Modifier.
  7. Dans le menu déroulant, sélectionnez vos métriques pour la surveillance améliorée.
  8. Choisissez Enregistrer les modifications.

Résolution de problèmes supplémentaires liés aux appels d’API

Utilisez les appels d’API suivants pour la lecture ou l’écriture de données depuis Kinesis Data Streams :

  • CreateStream : limite de cinq transactions par seconde et par compte.
  • DeleteStream : limite de cinq transactions par seconde et par compte.
  • ListStreams : limite de cinq transactions par seconde et par compte.
  • GetShardIterator : limite de cinq transactions par seconde, par compte et par partition ouverte.
  • MergeShards : limite de cinq transactions par seconde et par compte.
  • DescribeStream : limite de dix transactions par seconde et par compte.
  • DescribeStreamSummary : limite de vingt transactions par seconde et par compte.

Lorsque vous utilisez ces appels d’API, vous pouvez surveiller toute limitation dans les journaux AWS CloudTrail. Pour en savoir plus sur les appels d’API Kinesis Data Streams et sur CloudTrail, consultez la page Journalisation des appels d’API Amazon Kinesis Data Streams à l’aide d’AWS CloudTrail.

Informations connexes

Tarification d’Amazon CloudWatch

Surveillance du service Amazon Kinesis Data Streams avec Amazon CloudWatch

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 5 mois