View a markdown version of this page

Memantau pengiriman data - Amazon Kinesis Data Streams

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memantau pengiriman data

Gunakan topik ini untuk mempelajari cara memantau pengiriman Anda menggunakan CloudWatch metrik Amazon, CloudWatch Log, dan AWS CloudTrail.

CloudWatch metrik

Setiap pengiriman menerbitkan metrik ke CloudWatch dalam AWS/Kinesis namespace. Nama metrik diawali dengan jenis tujuan: DeliveryToS3 untuk pengiriman Amazon S3 tujuan umum dan DeliveryToIceberg untuk pengiriman tabel streaming. Gunakan metrik ini untuk memantau kesehatan dan kinerja pengiriman Anda.

Metrik pengiriman Amazon S3 (DeliveryToS3)
Nama metrik Unit Deskripsi
DeliveryToS3.DataFreshness Detik Usia catatan tertua belum dikirim ke tujuan. Nilai yang meningkat menunjukkan pengiriman tertinggal.
DeliveryToS3.BytesIn Byte Volume data dibaca ke jalur pengiriman dari aliran.
DeliveryToS3.BytesProcessed Byte Volume data yang diproses oleh pengiriman.
DeliveryToS3.BytesOut Byte Volume data yang ditulis ke tujuan.
DeliveryToS3.RecordCount Hitungan Jumlah total catatan yang dibaca dari aliran.
DeliveryToS3.SuccessfulRecordCount Hitungan Jumlah catatan yang berhasil dikirim ke tujuan.
DeliveryToS3.FailedRecordCount Hitungan Jumlah catatan yang gagal pengiriman. Nilai bukan nol adalah sinyal kesalahan utama.
DeliveryToS3.DeliverySuccess Hitungan Jumlah operasi pengiriman yang berhasil.
DeliveryToS3.DLQDeliverySuccess Hitungan Jumlah catatan yang berhasil ditulis ke antrian huruf mati.
Metrik pengiriman tabel streaming (DeliveryToIceberg)
Nama metrik Unit Deskripsi
DeliveryToIceberg.DataFreshness Detik Usia catatan tertua belum dikirim ke meja. Nilai yang meningkat menunjukkan pengiriman tertinggal.
DeliveryToIceberg.BytesIn Byte Volume data dibaca ke jalur pengiriman dari aliran.
DeliveryToIceberg.BytesProcessed Byte Volume data yang diproses oleh pengiriman.
DeliveryToIceberg.BytesOut Byte Volume data yang ditulis ke tabel.
DeliveryToIceberg.TotalRowCount Hitungan Jumlah total baris yang dibaca dari aliran.
DeliveryToIceberg.SuccessfulRowCount Hitungan Jumlah baris berhasil dikirim ke tabel.
DeliveryToIceberg.FailedRowCount Hitungan Jumlah baris yang gagal pengiriman. Nilai bukan nol adalah sinyal kesalahan utama.
DeliveryToIceberg.CommitSuccess Hitungan Jumlah komitmen Iceberg yang berhasil.
DeliveryToIceberg.DLQDeliverySuccess Hitungan Jumlah catatan yang berhasil ditulis ke antrian huruf mati.

Dimensi

Metrik pengiriman dipublikasikan dengan dimensi berikut:

  • ChannelName— Nama pengiriman.

  • ChannelId— Pengidentifikasi unik pengiriman.

  • StreamName— Nama sumber aliran Kinesis Data Streams.

catatan

Untuk menargetkan pengiriman tertentu dalam CloudWatch alarm, tentukan ketiga dimensi. Untuk menjelajah atau menanyakan dengan GetMetricData danListMetrics, Anda dapat memfilter berdasarkan subset dimensi, seperti ChannelName sendiri.

Alarm-alarm yang direkomendasikan

CloudWatch Alarm yang disarankan untuk pengiriman
Alarm Metrik Ketentuan Deskripsi
Tingkat kegagalan tinggi DeliveryToS3.FailedRecordCount > 0 selama 5 menit Catatan gagal pengiriman. Selidiki ketidakcocokan skema atau masalah tujuan.
Degradasi kesegaran data DeliveryToS3.DataFreshness > ambang batas Pengiriman data tertinggal. Selidiki masalah pengiriman seperti hilangnya izin pada peran eksekusi layanan atau pelambatan di tujuan.
Tidak ada data yang dikirimkan DeliveryToS3.SuccessfulRecordCount = 0 selama 15 menit Tidak ada catatan yang dikirimkan. Verifikasi aliran memiliki data dan pengirimannya aktif.
Kegagalan pengiriman DLQ DeliveryToS3.DLQDeliverySuccess = 0 pada FailedRecordCount > 0 Catatan yang gagal tidak dapat ditulis ke antrian huruf mati. Periksa izin bucket DLQ.
catatan

Alarm sebelumnya menggunakan DeliveryToS3 metrik untuk pengiriman Amazon S3. Untuk pengiriman tabel streaming, gunakan DeliveryToIceberg metrik yang setara (DeliveryToIceberg.FailedRowCount,DeliveryToIceberg.DataFreshness,DeliveryToIceberg.SuccessfulRowCount, danDeliveryToIceberg.DLQDeliverySuccess).

CloudWatch Log

Setiap pengiriman dapat mempublikasikan log terperinci ke CloudWatch Log untuk debugging dan visibilitas operasional.

  • Grup log default - /aws/kinesis/channelName/channelId

  • Log aliran — DestinationDelivery

Mengaktifkan CloudWatch Log melalui CLI

Akti CloudWatch fkan Log saat membuat atau memperbarui pengiriman menggunakan 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 } }'

Bila Anda mengaktifkan CloudWatch Log tanpa menentukan grup log, pengiriman menggunakan grup log default/aws/kinesis/channelName/channelId. Jika Anda menentukan kustomLogGroupName, pastikan izin Log peran eksekusi layanan dicakup ke grup log yang sama. CloudWatch Untuk izin yang diperlukan, lihat Izin IAM untuk pengiriman data.

Anda juga dapat mengaktifkan atau memperbarui CloudWatch Log pada pengiriman yang ada dengan update-channel perintah, meneruskan --logging-configuration nilai yang sama.

Izin yang diperlukan

Untuk mengaktifkan CloudWatch Log, peran eksekusi layanan pengiriman harus memiliki izin berikut:

  • logs:CreateLogGroup

  • logs:CreateLogStream

  • logs:PutLogEvents

Lingkup izin ini ke grup log tertentu ARN. Lihat Izin CloudWatch Log opsional contoh kebijakan lengkapnya.

AWS CloudTrail pencatatan log

Semua panggilan API pengiriman direkam oleh AWS CloudTrail. Berikut ini adalah contoh AWS CloudTrail acara untuk CreateChannel panggilan:

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