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

Consultez cette rubrique pour savoir comment surveiller votre livraison à l'aide CloudWatch des métriques, des CloudWatch journaux et des statistiques 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 par table de streaming. Utilisez ces indicateurs pour suivre l'état et les performances de votre livraison.

Statistiques de diffusion Amazon S3 (DeliveryToS3)
Nom de la métrique Unité Description
DeliveryToS3.DataFreshness Secondes L'âge du plus vieux disque non encore livré à destination. La hausse des valeurs indique que la livraison est en retard.
DeliveryToS3.BytesIn Octets Le 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 Le volume de données écrites vers la destination.
DeliveryToS3.RecordCount Nombre Le nombre total d'enregistrements lus à partir du 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 non nulle 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 de lettres mortes.
Métriques de diffusion des tables de diffusion (DeliveryToIceberg)
Nom de la métrique Unité Description
DeliveryToIceberg.DataFreshness Secondes L'âge du plus vieux disque n'a pas encore été enregistré. La hausse des valeurs indique que la livraison est en retard.
DeliveryToIceberg.BytesIn Octets Le 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 Le volume de données écrites dans la table.
DeliveryToIceberg.TotalRowCount Nombre Le nombre total de lignes lues depuis le flux.
DeliveryToIceberg.SuccessfulRowCount Nombre Le nombre de lignes transmises avec succès à la table.
DeliveryToIceberg.FailedRowCount Nombre Le nombre de lignes dont la livraison a échoué. Une valeur non nulle 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 de 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 seul. ChannelName

Alarmes recommandées

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. Examinez les incohérences de schéma ou les problèmes de destination.
Dégradation de l'actualisation DeliveryToS3.DataFreshness > seuil La diffusion des données est à la traîne. Examinez les problèmes de distribution, tels que l'absence d'autorisations sur le rôle d'exécution du service ou la limitation du rôle de destination.
Aucune donnée transmise DeliveryToS3.SuccessfulRecordCount = 0 pendant 15 minutes Aucun dossier 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 de lettres mortes. Vérifiez les autorisations du compartiment 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.DataFreshness,DeliveryToIceberg.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.

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

  • Journal du flux — DestinationDelivery

Activation CloudWatch des journaux via la CLI

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

aws kinesis create-channel \ --channel-name "my-channel" \ --service-execution-role-arn "arn:aws:iam::123456789012:role/my-channel-role" \ --stream-configuration-list '[ { "StreamARN": "arn:aws:kinesis:us-east-1:123456789012:stream/my-stream", "RecordConfiguration": { "RecordFormatType": "JSON" } } ]' \ --s3-destination-configuration '{ "StorageConfiguration": { "BucketARN": "arn:aws:s3:::my-destination-bucket", "ExpectedBucketOwner": "123456789012", "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 limitées à ce même groupe de journaux. Pour les autorisations requises, consultez Autorisations IAM pour la fourniture 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. Consultez l'Autorisations facultatives pour les CloudWatch journauxexemple de politique complet.

AWS CloudTrail journalisation

Tous les appels d'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>" }