View a markdown version of this page

Surveillance de la livraison des données - 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.

Surveillance de la livraison des données

Utilisez cette rubrique pour savoir comment surveiller votre livraison à l'aide CloudWatch des métriques, des CloudWatch journaux et des journaux Amazon AWS CloudTrail.

CloudWatch métriques

Chaque diffusion publie des métriques CloudWatch dans l'espace de AWS/Kinesis noms. Les noms des métriques sont préfixés par type de destination : DeliveryToS3 pour les livraisons Amazon S3 à usage général et DeliveryToIceberg pour les livraisons de tables de streaming. Utilisez ces indicateurs pour surveiller l'état et les performances de votre livraison.

Le tableau suivant répertorie les métriques relatives aux livraisons Amazon S3 à usage général (DeliveryToS3).

Nom de la métrique Unité Description
DeliveryToS3.DataFreshness Secondes L'âge du disque le plus ancien qui n'a pas encore été livré à destination. La hausse des valeurs indique que les livraisons sont en retard.
DeliveryToS3.BytesIn Octets Volume de données lues dans le chemin de diffusion à partir du flux.
DeliveryToS3.BytesProcessed Octets Le volume de données traitées par la livraison.
DeliveryToS3.BytesOut Octets Volume de données écrites vers la destination.
DeliveryToS3.RecordCount Nombre Le nombre total d'enregistrements lus depuis le flux.
DeliveryToS3.SuccessfulRecordCount Nombre Le nombre d'enregistrements livrés avec succès à la destination.
DeliveryToS3.FailedRecordCount Nombre Le nombre d'enregistrements dont la livraison a échoué. Une valeur différente de zéro est le principal signal d'erreur.
DeliveryToS3.DeliverySuccess Nombre Le nombre d'opérations de livraison réussies.
DeliveryToS3.DLQDeliverySuccess Nombre Le nombre d'enregistrements écrits avec succès dans la file d'attente des lettres mortes.

Le tableau suivant répertorie les mesures relatives aux livraisons de tables de streaming (DeliveryToIceberg).

Nom de la métrique Unité Description
DeliveryToIceberg.DataFreshness Secondes Âge de l'enregistrement le plus ancien qui n'a pas encore été livré sur la table. La hausse des valeurs indique que les livraisons sont en retard.
DeliveryToIceberg.BytesIn Octets Volume de données lues dans le chemin de diffusion à partir du flux.
DeliveryToIceberg.BytesProcessed Octets Le volume de données traitées par la livraison.
DeliveryToIceberg.BytesOut Octets Volume de données écrites dans la table.
DeliveryToIceberg.TotalRowCount Nombre Nombre total de lignes lues depuis le flux.
DeliveryToIceberg.SuccessfulRowCount Nombre Le nombre de lignes envoyées avec succès à la table.
DeliveryToIceberg.FailedRowCount Nombre Nombre de lignes dont la livraison a échoué. Une valeur différente de zéro est le principal signal d'erreur.
DeliveryToIceberg.CommitSuccess Nombre Le nombre de commits Iceberg réussis.
DeliveryToIceberg.DLQDeliverySuccess Nombre Le nombre d'enregistrements écrits avec succès dans la file d'attente des lettres mortes.

Dimensions

Les statistiques de livraison sont publiées avec les dimensions suivantes :

  • ChannelName— Le nom de livraison.

  • ChannelId— L'identifiant unique de la livraison.

  • StreamName— Nom du flux Kinesis Data Streams source.

Note

Pour cibler une livraison spécifique dans une CloudWatch alarme, spécifiez les trois dimensions. Pour naviguer ou effectuer des requêtes avec GetMetricData etListMetrics, vous pouvez filtrer en fonction d'un sous-ensemble de dimensions, par exemple « alone ». ChannelName

Alarmes recommandées

Le tableau suivant répertorie les CloudWatch alarmes recommandées pour les livraisons.

alerte Métrique Condition Description
Taux d'échec élevé DeliveryToS3.FailedRecordCount > 0 pendant 5 minutes Les dossiers ne sont pas livrés. Étudiez les incohérences entre les schémas ou les problèmes de destination.
Dégradation de fraîcheur des données DeliveryToS3.DataFreshness > seuil La fourniture de données prend du retard. Étudiez les problèmes de livraison tels que l'absence d'autorisations sur le rôle d'exécution du service ou le ralentissement à la destination.
Aucune donnée fournie DeliveryToS3.SuccessfulRecordCount = 0 pendant 15 minutes Aucun enregistrement n'a été livré. Vérifiez que le flux contient des données et que la diffusion est active.
Défaillances de livraison DLQ DeliveryToS3.DLQDeliverySuccess = 0 lorsque FailedRecordCount > 0 Les enregistrements ayant échoué ne peuvent pas être écrits dans la file d'attente des lettres mortes. Vérifiez les autorisations du bucket DLQ.
Note

Les alarmes précédentes utilisent les DeliveryToS3 métriques d'une livraison Amazon S3. Pour la diffusion d'une table de streaming, utilisez les DeliveryToIceberg métriques équivalentes (DeliveryToIceberg.FailedRowCountDeliveryToIceberg.DataFreshnessDeliveryToIceberg.SuccessfulRowCount,, etDeliveryToIceberg.DLQDeliverySuccess).

CloudWatch Journaux

Chaque livraison peut publier des journaux détaillés dans Logs à CloudWatch des fins de débogage et de visibilité opérationnelle.

Par défaut, une diffusion écrit dans le groupe de journaux et le flux de journaux suivants :

  • Groupe de journaux par défaut — /aws/kinesis/channelName/channelId

  • Stream de journal — DestinationDelivery

Activation CloudWatch des journaux via CLI

Activez CloudWatch les journaux lors de la création ou de la mise à jour d'une livraison à l'aide de AWS CLI :

aws kinesis create-channel \ --channel-name "my-channel" \ --service-execution-role-arn "arn:aws:iam::111122223333:role/my-channel-role" \ --stream-configuration-list '[ { "StreamARN": "arn:aws:kinesis:us-east-1:111122223333:stream/my-stream", "RecordConfiguration": { "RecordFormatType": "JSON" } } ]' \ --s3-destination-configuration '{ "StorageConfiguration": { "BucketARN": "arn:aws:s3:::amzn-s3-demo-destination-bucket", "ExpectedBucketOwner": "111122223333", "CompressionType": "GZIP" } }' \ --logging-configuration '{ "CloudWatchLogs": { "Enabled": true } }'

Lorsque vous activez CloudWatch les journaux sans spécifier de groupe de journaux, la diffusion utilise le groupe de journaux par défaut/aws/kinesis/channelName/channelId. Si vous spécifiez une option personnaliséeLogGroupName, assurez-vous que les autorisations de CloudWatch journalisation du rôle d'exécution du service sont étendues à ce même groupe de journaux. Pour les autorisations requises, consultez Autorisations IAM pour la livraison de données.

Vous pouvez également activer ou mettre à jour CloudWatch les journaux d'une livraison existante à l'aide de la update-channel commande, en transmettant la même --logging-configuration valeur.

Autorisations requises

Pour activer CloudWatch les journaux, le rôle d'exécution du service de livraison doit disposer des autorisations suivantes :

  • logs:CreateLogGroup

  • logs:CreateLogStream

  • logs:PutLogEvents

Étendez ces autorisations à l'ARN du groupe de journaux spécifique. Voir l'Autorisations facultatives pour les CloudWatch journauxexemple de politique complet.

AWS CloudTrail journalisation

Tous les appels de l'API de livraison sont enregistrés par AWS CloudTrail. Voici un exemple d' AWS CloudTrail événement pour un CreateChannel appel :

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AROA1EXAMPLE:user-session", "arn": "arn:aws:sts::<account-id>:assumed-role/<role-name>/user-session", "accountId": "<account-id>" }, "eventTime": "2026-07-20T20:00:00Z", "eventSource": "kinesis.amazonaws.com", "eventName": "CreateChannel", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.1", "userAgent": "aws-cli/2.x", "requestParameters": { "streamName": "my-stream", "channelName": "my-channel" }, "responseElements": { "channelARN": "arn:aws:kinesis:us-east-1:<account-id>:channel/<channel-id>" }, "requestID": "a1b2c3d4-example", "eventID": "e5f6g7h8-example", "readOnly": false, "eventType": "AwsApiCall", "recipientAccountId": "<account-id>" }