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 mithilfe 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. Den Metriknamen wird der Zieltyp vorangestellt: DeliveryToS3 für allgemeine Amazon S3-Lieferungen und DeliveryToIceberg für Streaming-Tabellen. Verwenden Sie diese Metriken, um den Zustand und die Leistung Ihrer Lieferung zu überwachen.

Amazon S3-Liefermetriken (DeliveryToS3)
Metrikname Einheit Description
DeliveryToS3.DataFreshness Sekunden Das Alter des ältesten Datensatzes, der noch nicht an das Ziel übermittelt wurde. Steigende Werte deuten darauf hin, dass die Lieferung ins Hintertreffen gerät.
DeliveryToS3.BytesIn Bytes Das Datenvolumen, das aus dem Stream in den Lieferpfad eingelesen wird.
DeliveryToS3.BytesProcessed Bytes Das Datenvolumen, das von der Lieferung verarbeitet wird.
DeliveryToS3.BytesOut Bytes Die Menge der an das Ziel geschriebenen Daten.
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 übermittelt 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 Zustellungsvorgänge.
DeliveryToS3.DLQDeliverySuccess Anzahl Die Anzahl der Datensätze, die erfolgreich in die Warteschlange für unzustellbare Nachrichten geschrieben wurden.
Metriken zur Bereitstellung von Streaming-Tabellen () DeliveryToIceberg
Metrikname Einheit Description
DeliveryToIceberg.DataFreshness Sekunden Das Alter des ältesten Datensatzes, der noch nicht an die Tabelle übermittelt wurde. Steigende Werte deuten darauf hin, dass die Lieferung ins Hintertreffen gerät.
DeliveryToIceberg.BytesIn Bytes Das Datenvolumen, das aus dem Stream in den Lieferpfad eingelesen wird.
DeliveryToIceberg.BytesProcessed Bytes Das Datenvolumen, das von der Lieferung verarbeitet wird.
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 an die Tabelle übermittelt wurden.
DeliveryToIceberg.FailedRowCount Anzahl Die Anzahl der Zeilen, bei denen die Übermittlung 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 Nachrichten geschrieben wurden.

Dimensionen

Versandmetriken 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, um in einem CloudWatch Alarm auf eine bestimmte Übertragung abzuzielen. Für das Durchsuchen oder Abfragen mit GetMetricData und ListMetrics können Sie nach einer Teilmenge von Dimensionen filtern, z. B. ChannelName nach einzelnen Dimensionen.

Empfohlene Alarme

Empfohlene CloudWatch Alarme für Lieferungen
Alarm Metrik Bedingung Description
Hohe Ausfallrate DeliveryToS3.FailedRecordCount > 0 für 5 Minuten Aufzeichnungen können nicht zugestellt werden. Untersuchen Sie Schemaabweichungen oder Zielprobleme.
Verschlechterung der Aktualität der Daten DeliveryToS3.DataFreshness > Schwelle Die Datenlieferung hinkt hinterher. Untersuchen Sie Probleme bei der Bereitstellung, z. B. fehlende Berechtigungen für die Rolle „Serviceausführung“ oder Drosselung am Zielort.
Es wurden keine Daten übermittelt DeliveryToS3.SuccessfulRecordCount = 0 für 15 Minuten Es wurden keine Datensätze geliefert. Stellen Sie sicher, dass der Stream Daten enthält und die Übertragung aktiv ist.
Fehler bei der DLQ-Zustellung DeliveryToS3.DLQDeliverySuccess = 0 wenn FailedRecordCount > 0 Fehlerhafte Datensätze können nicht in die Warteschlange mit unlesbaren Buchstaben geschrieben werden. Überprüfen Sie die DLQ-Bucket-Berechtigungen.
Anmerkung

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

CloudWatch Protokolle

Jede Lieferung kann detaillierte Protokolle in Logs veröffentlichen, um das CloudWatch Debugging zu ermöglichen und die Betriebsabläufe sichtbar zu machen.

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

  • Log-Stream — DestinationDelivery

CloudWatch Protokolle über CLI aktivieren

Aktivieren Sie CloudWatch Logs, wenn Sie eine Lieferung erstellen oder aktualisieren. Verwenden Sie dazu 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 } }'

Wenn Sie CloudWatch Logs aktivieren, ohne eine Loggruppe anzugeben, verwendet die Lieferung die Standard-Loggruppe/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 Datenlieferung.

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

Erforderliche Berechtigungen

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

  • logs:CreateLogGroup

  • logs:CreateLogStream

  • logs:PutLogEvents

Beschränken Sie diese Berechtigungen auf den ARN-Wert der spezifischen Protokollgruppe. Das Optionale Berechtigungen für CloudWatch Protokolle vollständige Richtlinienbeispiel finden Sie unter.

AWS CloudTrail Protokollierung

Alle API-Aufrufe für die Zustellung werden von aufgezeichnet AWS CloudTrail. Das Folgende ist 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>" }