View a markdown version of this page

Überwachung der Datenlieferung - Amazon Kinesis Data Streams

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Überwachung der Datenlieferung

In diesem Thema erfahren Sie, wie Sie Ihre Lieferung anhand von CloudWatch Amazon-Metriken, CloudWatch Protokollen und überwachen können AWS CloudTrail.

CloudWatch Metriken

Bei jeder Lieferung werden Metriken CloudWatch im AWS/Kinesis Namespace veröffentlicht. Metriknamen haben ein Präfix nach Zieltyp: DeliveryToS3 für allgemeine Amazon S3 S3-Lieferungen und DeliveryToIceberg für Streaming-Tabellenlieferungen. Verwenden Sie diese Kennzahlen, um den Zustand und die Leistung Ihrer Lieferung zu überwachen.

In der folgenden Tabelle sind die Metriken für allgemeine Amazon S3 S3-Lieferungen (DeliveryToS3) aufgeführt.

Metrikname Einheit Description
DeliveryToS3.DataFreshness Sekunden Das Alter des ältesten Datensatzes, der noch nicht an den Bestimmungsort geliefert wurde. Steigende Werte deuten darauf hin, dass die Lieferung hinterherhinkt.
DeliveryToS3.BytesIn Bytes Die Datenmenge, die aus dem Stream in den Lieferpfad eingelesen wurde.
DeliveryToS3.BytesProcessed Bytes Das Datenvolumen, das durch die Lieferung verarbeitet wurde.
DeliveryToS3.BytesOut Bytes Das Datenvolumen, das an das Ziel geschrieben wurde.
DeliveryToS3.RecordCount Anzahl Die Gesamtzahl der aus dem Stream gelesenen Datensätze.
DeliveryToS3.SuccessfulRecordCount Anzahl Die Anzahl der Datensätze, die erfolgreich an das Ziel gesendet wurden.
DeliveryToS3.FailedRecordCount Anzahl Die Anzahl der Datensätze, bei denen die Zustellung fehlgeschlagen ist. Ein Wert ungleich Null ist das wichtigste Fehlersignal.
DeliveryToS3.DeliverySuccess Anzahl Die Anzahl der erfolgreichen Liefervorgänge.
DeliveryToS3.DLQDeliverySuccess Anzahl Die Anzahl der Datensätze, die erfolgreich in die Warteschlange für unzustellbare Briefe geschrieben wurden.

In der folgenden Tabelle sind die Metriken für Streaming-Tabellenlieferungen aufgeführt ()DeliveryToIceberg.

Metrikname Einheit Description
DeliveryToIceberg.DataFreshness Sekunden Das Alter des ältesten Datensatzes, der noch nicht in die Tabelle aufgenommen wurde. Steigende Werte deuten darauf hin, dass die Lieferung hinterherhinkt.
DeliveryToIceberg.BytesIn Bytes Die Datenmenge, die aus dem Stream in den Lieferpfad eingelesen wurde.
DeliveryToIceberg.BytesProcessed Bytes Das Datenvolumen, das durch die Lieferung verarbeitet wurde.
DeliveryToIceberg.BytesOut Bytes Die Menge der in die Tabelle geschriebenen Daten.
DeliveryToIceberg.TotalRowCount Anzahl Die Gesamtzahl der aus dem Stream gelesenen Zeilen.
DeliveryToIceberg.SuccessfulRowCount Anzahl Die Anzahl der Zeilen, die erfolgreich in die Tabelle übertragen wurden.
DeliveryToIceberg.FailedRowCount Anzahl Die Anzahl der Zeilen, bei denen die Zustellung fehlgeschlagen ist. Ein Wert ungleich Null ist das wichtigste Fehlersignal.
DeliveryToIceberg.CommitSuccess Anzahl Die Anzahl der erfolgreichen Iceberg-Commits.
DeliveryToIceberg.DLQDeliverySuccess Anzahl Die Anzahl der Datensätze, die erfolgreich in die Warteschlange für unzustellbare Briefe geschrieben wurden.

Dimensionen

Lieferkennzahlen werden mit den folgenden Dimensionen veröffentlicht:

  • ChannelName— Der Name der Lieferung.

  • ChannelId— Die eindeutige Kennung der Lieferung.

  • StreamName— Der Name des Kinesis Data Streams-Quellstreams.

Anmerkung

Geben Sie alle drei Dimensionen an, wenn Sie in einem CloudWatch Alarm auf eine bestimmte Übertragung abzielen möchten. Wenn Sie mit GetMetricData und suchen oder Abfragen durchführen möchtenListMetrics, können Sie nach einer Teilmenge von Dimensionen filtern, z. B. ChannelName nach einzelnen Dimensionen.

Empfohlene Alarme

In der folgenden Tabelle sind empfohlene CloudWatch Alarme für Lieferungen aufgeführt.

Alarm Metrik Bedingung Description
Hohe Ausfallrate DeliveryToS3.FailedRecordCount > 0 für 5 Minuten Die Daten können nicht zugestellt werden. Untersuchen Sie Schemakonflikte oder Zielprobleme.
Verschlechterung der Datenaktualität DeliveryToS3.DataFreshness > Schwellenwert Die Datenbereitstellung hinkt hinterher. Untersuchen Sie Probleme bei der Bereitstellung, z. B. fehlende Berechtigungen für die Dienstausführungsrolle oder Drosselungen am Zielort.
Es wurden keine Daten übermittelt DeliveryToS3.SuccessfulRecordCount = 0 für 15 Minuten Es wurden keine Aufzeichnungen geliefert. Stellen Sie sicher, dass der Stream Daten enthält und die Lieferung aktiv ist.
Fehler bei der DLQ-Zustellung DeliveryToS3.DLQDeliverySuccess = 0, wenn FailedRecordCount > 0 Fehlgeschlagene Datensätze können nicht in die Warteschlange mit unerlaubten Briefen geschrieben werden. Überprüfen Sie die DLQ-Bucket-Berechtigungen.
Anmerkung

Die vorherigen Alarme verwenden die DeliveryToS3 Metriken für eine Amazon S3 S3-Lieferung. Verwenden Sie für eine Streaming-Tabellen-Lieferung die entsprechenden DeliveryToIceberg Metriken (DeliveryToIceberg.FailedRowCountDeliveryToIceberg.DataFreshnessDeliveryToIceberg.SuccessfulRowCount,, undDeliveryToIceberg.DLQDeliverySuccess).

CloudWatch Logs

Für jede Lieferung können detaillierte Protokolle in Logs veröffentlicht werden, um CloudWatch Debugging und betriebliche Transparenz zu gewährleisten.

Standardmäßig schreibt eine Lieferung in die folgende Protokollgruppe und den folgenden Protokollstream:

  • Standard-Protokollgruppe — /aws/kinesis/channelName/channelId

  • Protokollstream — DestinationDelivery

CloudWatch Logs über CLI aktivieren

Aktivieren Sie CloudWatch Protokolle, wenn Sie eine Lieferung erstellen oder aktualisieren, indem Sie 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 } }'

Wenn Sie CloudWatch Protokolle aktivieren, ohne eine Protokollgruppe anzugeben, verwendet die Übermittlung die Standardprotokollgruppe/aws/kinesis/channelName/channelId. Wenn Sie eine benutzerdefinierte Option angebenLogGroupName, stellen Sie sicher, dass die CloudWatch Logs-Berechtigungen der Dienstausführungsrolle auf dieselbe Protokollgruppe beschränkt sind. Die erforderlichen Berechtigungen finden Sie unter IAM-Berechtigungen für die Datenbereitstellung.

Sie können auch CloudWatch Protokolle für eine bestehende Lieferung mit dem update-channel Befehl aktivieren oder aktualisieren, indem Sie denselben --logging-configuration Wert übergeben.

Erforderliche Berechtigungen

Um CloudWatch Logs zu aktivieren, muss die Dienstausführungsrolle der Lieferung über die folgenden Berechtigungen verfügen:

  • logs:CreateLogGroup

  • logs:CreateLogStream

  • logs:PutLogEvents

Schränken Sie diese Berechtigungen auf den spezifischen Protokollgruppen-ARN ein. Das Optionale CloudWatch Log-Berechtigungen vollständige Richtlinienbeispiel finden Sie unter.

AWS CloudTrail Protokollierung

Alle API-Aufrufe für die Zustellung werden von aufgezeichnet AWS CloudTrail. Im Folgenden finden Sie ein AWS CloudTrail Beispielereignis für einen CreateChannel Anruf:

{ "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>" }