Pourquoi mes flux de données Kinesis sont-ils limités ?

Lecture de 6 minute(s)
0

Je souhaite savoir pourquoi mes flux Amazon Kinesis Data Streams sont limités.

Brève description

Bien que vos métriques respectent les quotas Kinesis Data Streams, votre flux peut tout de même être limité pour les raisons suivantes :

  • Vous recevez le code d’erreur ProvisionedThroughputExceededException ou LimitExceededException. Pour plus d’informations, consultez Limites d’API.
  • La surveillance améliorée des flux Kinesis est désactivée pour vos flux.
  • Les micro-pics cachés se trouvent dans les métriques Amazon CloudWatch.
  • Vos métriques CloudWatch signalent uniquement les opérations réussies. Elles excluent les opérations échouées.

Résolution

Vous recevez le code d’erreur ProvisionedThroughputExceededException ou LimitExceededException.

Lorsque vous utilisez l’API GetRecords ou PutRecords, votre flux peut générer des erreurs de limitation ProvisionedThroughputExceededException ou LimitExceededException.

Les scénarios suivants peuvent également provoquer ces erreurs :

  • Le nombre d’enregistrements écrits dans le flux Kinesis dépasse les quotas de flux.
  • La taille des enregistrements, notamment les clés de partition, dépasse 1 Mo.
  • Le débit total en octets dépasse les limites du flux Kinesis.
  • Le producteur effectue trop de demandes rapides d’écriture dans le flux. Ce problème est généralement indiqué par un message erreur « Ralentissement » ou « Dépassement du débit ».

Vous pouvez par ailleurs prendre la valeur d’un point de données d’une minute et la diviser par 60. Vous obtenez ainsi une valeur moyenne par seconde qui vous permet de déterminer si la limitation a lieu au cours d’une période donnée. Si le nombre de réussites ne dépasse pas le quota, ajoutez la métrique IncomingRecords à WriteProvisionedThroughputExceeded puis recommencez le calcul. La métrique IncomingRecords signale les enregistrements réussis ou acceptés. La métrique WriteProvisionedThroughputExceeded indique le nombre d’enregistrements qui ont fait l’objet d’une limitation.

Remarque : vérifiez la taille et le nombre de disques envoyés par le producteur. Si le total combiné des enregistrements entrants et restreints est supérieur au quota de flux, modifiez la taille ou le nombre d’enregistrements.

La métrique PutRecord ou PutRecord.Success indique aussi les opérations qui échouent. Lorsque l’indicateur de réussite baisse, consultez les journaux du producteur de données pour identifier les causes racines des échecs. En cas de limitation, établissez une journalisation du côté du producteur de données afin de déterminer le nombre total et la taille des enregistrements soumis. Si le nombre total d’enregistrements dans les métriques PutRecord.Success ou PutRecords.Success dépasse le quota du flux, c’est que votre flux Kinesis est soumis à une limitation.

La surveillance améliorée des flux Kinesis est désactivée pour vos flux

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

Certaines partitions de votre flux Kinesis peuvent recevoir plus d’enregistrements que d’autres. Lorsque la distribution est inégale, des erreurs de limitation peuvent se produire et donner lieu à des partitions chaudes. Les partitions chaudes indiquent que la clé de partition utilisée dans les opérations PUT ne distribue pas les enregistrements de manière égale entre les partitions d’un flux Kinesis.

Si vous désactivez la surveillance améliorée, les partitions chaudes peuvent être masquées dans les métriques, car les celles au niveau du flux sont agrégées pour toutes les partitions. Lorsque vous désactivez la surveillance améliorée des flux, vous ne pouvez pas examiner les flux individuellement. Pour examiner les flux par partition, exécutez la commande enable-enhanced-monitoring.

Vous pouvez également comparer les valeurs moyennes et maximales de IncomingBytes pour vérifier si des partitions chaudes se trouvent dans votre flux. Lorsque vous activez la surveillance améliorée, vous pouvez également consulter les partitions qui s’écartent de la moyenne. Pour plus d’informations, consultez Stratégies de mise en œuvre de nouvelles partitions.

Utiliser des clés de partition aléatoires

Si votre flux Kinesis contient des partitions chaudes, utilisez une clé de partition aléatoire pour regrouper vos enregistrements. Si les opérations utilisent déjà une clé de partition aléatoire, ajustez-la afin de corriger la distribution. Surveillez ensuite la clé pour détecter les changements dans les métriques comme IncomingBytes et IncomingRecords. Si les modèles maximum et moyen sont proches, c’est qu’il n’existe pas de partitions chaudes.

Des micro-pics cachés se trouvent dans les métriques CloudWatch

Si vous souhaitez identifier les micro-pics ou les métriques qui dépassent les quotas de flux, journalisez des enregistrements complets ou un code personnalisé pour compter les flux et vérifier la taille des enregistrements. Évaluez ensuite le nombre et la taille des enregistrements envoyés au flux Kinesis afin d’identifier les pics qui dépassent les quotas de données.

Les quotas de Kinesis Data Streams sont déterminés par partition et par seconde. Lorsque les valeurs sont agrégées au-delà de la limite de 60 secondes dans CloudWatch, un micro-pic qui dépasse le quota de Kinesis Data Streams peut se produire. Aussi, le nombre total d’enregistrements en une minute peut sembler faible, car les statistiques sont agrégées pendant 60 secondes. Toutefois, un enregistrement effectué à n’importe quelle seconde de la minute représente un nombre plus élevé. Le trafic peut indiquer qu’il est inférieur aux quotas de diffusion, mais la partition limitée au cours de cette seconde apparaît comme étant limitée sur le flux.

Si les métriques CloudWatch n’indiquent pas d’exception de quota ou de micro-pics dans les données, effectuez les tâches suivantes :

Vos métriques CloudWatch signalent uniquement les opérations réussies et excluent les opérations échouées

Les métriques Kinesis enregistrent uniquement les opérations réussies sur le flux. Le flux Kinesis peut ne pas intégrer d’opérations limitées. Le quota de diffusion est alors dépassé, mais les statistiques n’indiquent pas l’exception.

Lorsque les enregistrements échoués ne peuvent pas intégrer le flux Kinesis, celui-ci est limité. Si le producteur adopte une stratégie de nouvelle tentative, les enregistrements ayant échoué sont réessayés. Le processus peut alors être retardé.

Pour vérifier si trop d’enregistrements sont envoyés au flux Kinesis, ajoutez le nombre total d’enregistrements entrants au nombre d’enregistrements limités. 

Informations connexes

Développement de consommateurs personnalisés avec un débit dédié (diffusion améliorée)

Surveillance du service Amazon Kinesis Data Streams avec Amazon CloudWatch

disable-enhanced-monitoring

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an