

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

# Gunakan stream metrik
<a name="CloudWatch-Metric-Streams"></a>

Anda dapat menggunakan *aliran metrik* untuk terus mengalirkan CloudWatch metrik ke tujuan pilihan Anda, dengan near-real-time pengiriman dan latensi rendah. Tujuan yang didukung termasuk AWS tujuan seperti Amazon Simple Storage Service dan beberapa tujuan penyedia layanan pihak ketiga.

Ada tiga skenario penggunaan utama untuk aliran CloudWatch metrik:
+ **Penyiapan khusus dengan Firehose** — Buat aliran metrik dan arahkan ke aliran pengiriman Amazon Data Firehose yang mengirimkan CloudWatch metrik Anda ke tempat yang Anda inginkan. Anda dapat mengalirkannya ke data lake seperti Amazon S3, atau ke tujuan atau titik akhir apa pun yang didukung oleh Firehose termasuk penyedia pihak ketiga. Format JSON, OpenTelemetry 1.0.0, dan OpenTelemetry 0.7.0 didukung secara native, atau Anda dapat mengonfigurasi transformasi dalam aliran pengiriman Firehose untuk mengonversi data ke format lain seperti Parket. Dengan aliran metrik, Anda dapat terus memperbarui data pemantauan, atau menggabungkan data CloudWatch metrik ini dengan data penagihan dan kinerja untuk membuat kumpulan data yang kaya. Anda kemudian dapat menggunakan alat-alat seperti Amazon Athena untuk mendapatkan wawasan optimisasi biaya, performa sumber daya, dan pemanfaatan sumber daya.
+ **Pengaturan S3 Cepat** - Lakukan Stream ke Layanan Penyimpanan Amazon Simple dengan proses pengaturan cepat. Secara default, CloudWatch buat sumber daya yang dibutuhkan untuk streaming. Format JSON, OpenTelemetry 1.0.0, dan OpenTelemetry 0.7.0 didukung.
+ **Pengaturan AWS mitra cepat** - CloudWatch memberikan pengalaman penyiapan cepat untuk beberapa mitra pihak ketiga. Anda dapat menggunakan penyedia layanan pihak ketiga untuk memantau, memecahkan masalah, dan menganalisis aplikasi Anda menggunakan data yang dialirkan CloudWatch . Saat Anda menggunakan alur kerja penyiapan mitra cepat, Anda hanya perlu menyediakan URL tujuan dan kunci API untuk tujuan Anda, dan CloudWatch menangani sisa penyiapan. Pengaturan mitra cepat tersedia untuk penyedia pihak ketiga berikut: 

  
  + Datadog
  + Dynatrace
  + Elastis
  + Relik Baru
  + Cloud Observabilitas Splunk
  + SumoLogic

Anda dapat melakukan streaming semua CloudWatch metrik Anda, atau menggunakan filter untuk melakukan streaming hanya metrik tertentu. Setiap stream metrik dapat mencakup hingga 1000 filter yang memasukkan atau mengecualikan namespace metrik atau metrik tertentu. Sebuah stream metrik tunggal hanya dapat memasukkan atau mengecualikan filter, namun tidak keduanya.

Setelah sebuah stream metrik dibuat, jika metrik yang baru dibuat sesuai dengan filter yang ada, metrik yang baru akan otomatis dimasukkan ke dalam stream.

Tidak ada batasan jumlah stream metrik per akun atau per Wilayah, dan tidak ada batasan jumlah pembaruan metrik yang sedang dialirkan.

Setiap aliran dapat menggunakan format JSON, OpenTelemetry 1.0.0, atau OpenTelemetry format 0.7.0. Anda dapat mengedit format keluaran aliran metrik kapan saja, seperti untuk meningkatkan dari OpenTelemetry 0.7.0 ke 1.0.0. OpenTelemetry Untuk informasi selengkapnya tentang format keluaran, lihat[CloudWatch keluaran aliran metrik dalam format JSON](CloudWatch-metric-streams-formats-json.md),[CloudWatch keluaran aliran metrik dalam format OpenTelemetry 1.0.0](CloudWatch-metric-streams-formats-opentelemetry-100.md), dan[CloudWatch keluaran aliran metrik dalam format OpenTelemetry 0.7.0](CloudWatch-metric-streams-formats-opentelemetry.md).

Untuk stream metrik di akun pemantauan, Anda dapat memilih apakah akan memasukkan metrik dari akun sumber yang ditautkan ke akun pemantauan tersebut. Untuk informasi selengkapnya, lihat [CloudWatch observabilitas lintas akun](CloudWatch-Unified-Cross-Account.md).

Stream metrik selalu memasukkan `Minimum`, `Maximum`, `SampleCount`, dan statistik `Sum`. Anda juga dapat memilih untuk memasukkan statistik tambahan dengan biaya tambahan. Untuk informasi selengkapnya, lihat [Statistik yang dapat di-stream](CloudWatch-metric-streams-statistics.md). 

Penetapan harga stream metrik adalah berdasarkan pada jumlah pembaruan metrik. Anda juga dikenakan biaya dari Firehose untuk aliran pengiriman yang digunakan untuk aliran metrik. Untuk informasi selengkapnya, lihat [ CloudWatch Harga Amazon](https://aws.amazon.com/cloudwatch/pricing/).

**Topics**
+ [

# Menyiapkan sebuah stream metrik
](CloudWatch-metric-streams-setup.md)
+ [

# Statistik yang dapat di-stream
](CloudWatch-metric-streams-statistics.md)
+ [

# Operasi dan pemeliharaan stream metrik
](CloudWatch-metric-streams-operation.md)
+ [

# Memantau aliran metrik Anda dengan CloudWatch metrik
](CloudWatch-metric-streams-monitoring.md)
+ [

# Kepercayaan antara CloudWatch dan Firehose
](CloudWatch-metric-streams-trustpolicy.md)
+ [

# CloudWatch keluaran aliran metrik dalam format JSON
](CloudWatch-metric-streams-formats-json.md)
+ [

# CloudWatch keluaran aliran metrik dalam format OpenTelemetry 1.0.0
](CloudWatch-metric-streams-formats-opentelemetry-100.md)
+ [

# CloudWatch keluaran aliran metrik dalam format OpenTelemetry 0.7.0
](CloudWatch-metric-streams-formats-opentelemetry.md)
+ [

# Memecahkan masalah aliran metrik di CloudWatch
](CloudWatch-metric-streams-troubleshoot.md)

# Menyiapkan sebuah stream metrik
<a name="CloudWatch-metric-streams-setup"></a>

Gunakan langkah-langkah di bagian berikut untuk menyiapkan aliran CloudWatch metrik.

Setelah aliran metrik dibuat, waktu yang diperlukan untuk data metrik muncul di tujuan bergantung pada pengaturan buffering yang dikonfigurasi pada aliran pengiriman Firehose. Pemrosesan dinyatakan dalam ukuran muatan maksimum atau waktu tunggu maksimum, mana saja yang tercapai lebih dulu. Jika ini disetel ke nilai minimum (60 detik, 1MB) latensi yang diharapkan adalah dalam 3 menit jika CloudWatch ruang nama yang dipilih memiliki pembaruan metrik aktif.

Dalam aliran CloudWatch metrik, data dikirim setiap menit. Data mungkin tiba di tujuan akhir dalam keadaan rusak. Semua metrik yang ditentukan dalam ruang nama yang ditentukan dikirim dalam aliran metrik, kecuali metrik dengan stempel waktu yang berumur lebih dari dua hari. 

Untuk setiap kombinasi nama metrik dan namespace yang Anda stream, semua kombinasi dimensi dari nama metrik dan namespace tersebut diarahkan.

Untuk stream metrik di akun pemantauan, Anda dapat memilih apakah akan memasukkan metrik dari akun sumber yang ditautkan ke akun pemantauan tersebut. Untuk informasi selengkapnya, lihat [CloudWatch observabilitas lintas akun](CloudWatch-Unified-Cross-Account.md).

Untuk membuat dan mengelola aliran metrik, Anda harus masuk ke akun yang memiliki **CloudWatchFullAccess**kebijakan dan `iam:PassRole` izin, atau akun yang memiliki daftar izin berikut:
+ `iam:PassRole`
+ `cloudwatch:PutMetricStream`
+ `cloudwatch:DeleteMetricStream`
+ `cloudwatch:GetMetricStream`
+ `cloudwatch:ListMetricStreams`
+ `cloudwatch:StartMetricStreams`
+ `cloudwatch:StopMetricStreams`

Jika Anda akan CloudWatch menyiapkan peran IAM yang diperlukan untuk aliran metrik, Anda juga harus memiliki izin `iam:CreateRole` dan`iam:PutRolePolicy`.

**penting**  
Pengguna dengan akses ke data CloudWatch metrik yang sedang dialirkan, bahkan jika mereka tidak memiliki `cloudwatch:GetMetricData` izin. `cloudwatch:PutMetricStream`

**Topics**
+ [

# Penyiapan kustom dengan Firehose
](CloudWatch-metric-streams-setup-datalake.md)
+ [

# Gunakan pengaturan Amazon S3 Cepat
](CloudWatch-metric-streams-setup-Quick-S3.md)
+ [

# Pengaturan mitra cepat
](CloudWatch-metric-streams-QuickPartner.md)

# Penyiapan kustom dengan Firehose
<a name="CloudWatch-metric-streams-setup-datalake"></a>

Gunakan metode ini untuk membuat aliran metrik dan mengarahkannya ke aliran pengiriman Amazon Data Firehose yang mengirimkan CloudWatch metrik ke tempat yang Anda inginkan. Anda dapat mengalirkannya ke data lake seperti Amazon S3, atau ke tujuan atau titik akhir apa pun yang didukung oleh Firehose termasuk penyedia pihak ketiga.

Format JSON, OpenTelemetry 1.0.0, dan OpenTelemetry 0.7.0 didukung secara native, atau Anda dapat mengonfigurasi transformasi dalam aliran pengiriman Firehose untuk mengonversi data ke format lain seperti Parket. Dengan aliran metrik, Anda dapat terus memperbarui data pemantauan, atau menggabungkan data CloudWatch metrik ini dengan data penagihan dan kinerja untuk membuat kumpulan data yang kaya. Anda kemudian dapat menggunakan alat-alat seperti Amazon Athena untuk mendapatkan wawasan optimisasi biaya, performa sumber daya, dan pemanfaatan sumber daya.

Anda dapat menggunakan CloudWatch konsol, AWS CLI, AWS CloudFormation, atau AWS Cloud Development Kit (AWS CDK) untuk mengatur aliran metrik.

Aliran pengiriman Firehose yang Anda gunakan untuk aliran metrik harus berada di akun yang sama dan Wilayah yang sama tempat Anda mengatur aliran metrik. Untuk mencapai fungsionalitas Lintas wilayah, Anda dapat mengonfigurasi aliran pengiriman Firehose untuk melakukan streaming ke tujuan akhir yang ada di akun berbeda atau Wilayah lain.

## CloudWatch konsol
<a name="CloudWatch-metric-streams-setup-datalake-console"></a>

Bagian ini menjelaskan cara menggunakan CloudWatch konsol untuk menyiapkan aliran metrik menggunakan Firehose.

**Untuk menyiapkan aliran metrik kustom menggunakan Firehose**

1. Buka CloudWatch konsol di [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. **Pada panel navigasi, silakan pilih **Metrik**, stream.** Kemudian pilih **Buat stream metrik**.

1. (Opsional) Jika Anda masuk ke akun yang disiapkan sebagai akun pemantauan dalam pengamatan CloudWatch lintas akun, Anda dapat memilih apakah akan menyertakan metrik dari akun sumber tertaut dalam aliran metrik ini. Untuk memasukkan metrik dari akun sumber, pilih **Masukkan metrik akun sumber**.

1. Pilih **Penyiapan khusus dengan Firehose**.

1. Untuk **Pilih aliran Firehose Data Kinesis Anda**, pilih aliran pengiriman Firehose yang akan digunakan. Itu harus di akun yang sama. Format default untuk opsi ini adalah OpenTelemetry 0.7.0, tetapi Anda dapat mengubah formatnya nanti dalam prosedur ini.

   Kemudian pilih aliran pengiriman Firehose untuk digunakan di bawah **Pilih aliran pengiriman Firehose** Anda.

1. (Opsional) Anda dapat memilih **Pilih peran layanan** yang ada untuk menggunakan peran IAM yang ada alih-alih CloudWatch membuat yang baru untuk Anda.

1. (Opsional) Untuk mengubah format hasil akhir dari yang sebelumnya format default untuk skenario Anda, pilih **Ubah format hasil akhir**. Format yang didukung adalah JSON, OpenTelemetry 1.0.0, dan 0.7.0. OpenTelemetry 

1. **Agar **Metrik dapat dialirkan**, pilih **Semua metrik atau Pilih metrik**.**

   Jika Anda memilih **Semua metrik**, semua metrik dari akun ini akan disertakan dalam aliran.

   Pertimbangkan dengan cermat apakah akan melakukan stream semua metrik, karena semakin banyak metrik yang Anda stream semakin tinggi biaya stream metrik Anda.

   Jika Anda memilih **Pilih metrik**, lakukan salah satu hal berikut:
   + Untuk mengalirkan sebagian besar ruang nama metrik, pilih **Kecualikan** dan pilih ruang nama atau metrik yang akan dikecualikan. Saat Anda menentukan namespace di **Exclude**, Anda dapat memilih beberapa metrik tertentu dari namespace tersebut untuk dikecualikan. Jika Anda memilih untuk mengecualikan namespace tetapi tidak memilih metrik di namespace tersebut, semua metrik dari namespace tersebut akan dikecualikan.
   + Untuk menyertakan hanya beberapa ruang nama metrik atau metrik dalam aliran metrik, pilih **Sertakan**, lalu pilih ruang nama atau metrik yang akan disertakan. Jika Anda memilih untuk menyertakan namespace tetapi tidak memilih metrik di namespace tersebut, semua metrik dari namespace tersebut disertakan.

1. (Opsional) Untuk mengalirkan statistik tambahan untuk beberapa metrik ini di luar Minimum, Maksimum SampleCount, dan Jumlah, pilih **Tambahkan statistik tambahan**. Atau pilih **Tambahkan metrik yang direkomendasikan** untuk menambahkan beberapa statistik yang umum digunakan, atau pilih namespace dan nama metrik secara manual untuk melakukan stream statistik tambahan. Berikutnya, pilih statistik tambahan untuk stream.

   Hingga kemudian pilih grup metrik lain untuk stream kumpulan statistik tambahan yang berbeda, pilih **Tambahkan statistik tambahan**. Setiap metrik dapat mencakup sebanyak 20 statistik tambahan, dan sebanyak 100 metrik dalam sebuah stream metrik yang dapat mencakup statistik tambahan.

   Melakukan stream statistik tambahan akan menimbulkan lebih banyak biaya. Untuk informasi selengkapnya, lihat [Statistik yang dapat di-stream](CloudWatch-metric-streams-statistics.md).

   Untuk definisi statistik tambahan, silakan lihat [CloudWatch definisi statistik](Statistics-definitions.md).

1. (Opsional) Lakukan kustomisasi pada nama stream metrik yang baru pada **Nama stream metrik**.

1. Pilih **Buat stream metrik**.

## AWS CLI atau AWS API
<a name="CloudWatch-metric-streams-setup-datalake-CLI"></a>

Gunakan langkah-langkah berikut untuk membuat aliran CloudWatch metrik.

**Untuk menggunakan AWS CLI atau AWS API untuk membuat aliran metrik**

1. Jika Anda melakukan stream ke Amazon S3, pertama-tama buatkah bucket-nya. Untuk informasi selengkapnya, silakan lihat [ Membuat sebuah bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) .

1. Buat aliran pengiriman Firehose. Untuk informasi selengkapnya, lihat [Membuat aliran Firehose](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html).

1. Buat peran IAM yang memungkinkan CloudWatch untuk menulis ke aliran pengiriman Firehose. Untuk informasi selengkapnya tentang konten peran ini, silakan lihat [Kepercayaan antara CloudWatch dan Firehose](CloudWatch-metric-streams-trustpolicy.md).

1. Gunakan perintah `aws cloudwatch put-metric-stream` CLI atau `PutMetricStream` API untuk membuat aliran CloudWatch metrik.

## AWS CloudFormation
<a name="CloudWatch-metric-streams-setup-datalake-CFN"></a>

Anda dapat menggunakan CloudFormation untuk mengatur aliran metrik. Untuk informasi selengkapnya, lihat [ AWS::CloudWatch::MetricStream](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-metricstream.html).

**Untuk digunakan CloudFormation untuk membuat aliran metrik**

1. Jika Anda melakukan stream ke Amazon S3, pertama-tama buatkah bucket-nya. Untuk informasi selengkapnya, silakan lihat [ Membuat sebuah bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) .

1. Buat aliran pengiriman Firehose. Untuk informasi selengkapnya, lihat [Membuat aliran Firehose](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html).

1. Buat peran IAM yang memungkinkan CloudWatch untuk menulis ke aliran pengiriman Firehose. Untuk informasi selengkapnya tentang konten peran ini, silakan lihat [Kepercayaan antara CloudWatch dan Firehose](CloudWatch-metric-streams-trustpolicy.md).

1. Buat aliran di CloudFormation. Untuk informasi selengkapnya, lihat [ AWS::CloudWatch::MetricStream](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-metricstream.html).

## AWS Cloud Development Kit (AWS CDK)
<a name="CloudWatch-metric-streams-setup-datalake-CDK"></a>

Anda dapat menggunakan AWS Cloud Development Kit (AWS CDK) untuk mengatur aliran metrik. 

**Untuk menggunakan AWS CDK untuk membuat aliran metrik**

1. Jika Anda melakukan stream ke Amazon S3, pertama-tama buatkah bucket-nya. Untuk informasi selengkapnya, silakan lihat [ Membuat sebuah bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) .

1. Buat aliran pengiriman Firehose. Untuk informasi selengkapnya, lihat [Membuat Aliran Pengiriman Firehose Data Amazon](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html).

1. Buat peran IAM yang memungkinkan CloudWatch untuk menulis ke aliran pengiriman Firehose. Untuk informasi selengkapnya tentang konten peran ini, silakan lihat [Kepercayaan antara CloudWatch dan Firehose](CloudWatch-metric-streams-trustpolicy.md).

1. Buat stream metrik. Sumber daya aliran metrik tersedia AWS CDK sebagai Konstruksi Level 1 (L1) bernama. `CfnMetricStream` Untuk informasi selengkapnya, silakan lihat [Menggunakan konstruksi L1](https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_l1_using.html).

# Gunakan pengaturan Amazon S3 Cepat
<a name="CloudWatch-metric-streams-setup-Quick-S3"></a>

Metode **Quick S3 Setup** berfungsi dengan baik jika Anda ingin mengatur aliran dengan cepat ke Amazon S3 dan Anda tidak memerlukan transformasi pemformatan apa pun di luar format JSON OpenTelemetry , 1.0.0, dan 0.7.0 yang didukung. OpenTelemetry CloudWatch akan membuat semua sumber daya yang diperlukan termasuk aliran pengiriman Firehose dan peran IAM yang diperlukan. Format default untuk opsi ini adalah JSON, tetapi Anda dapat mengubah format saat Anda mengatur stream tersebut.

Atau, jika Anda ingin format akhir berupa format Parquet atau Kolom Baris yang Dioptimalkan (ORC), Anda harus mengikuti langkah-langkah berikut di [Penyiapan kustom dengan Firehose](CloudWatch-metric-streams-setup-datalake.md).

## CloudWatch konsol
<a name="CloudWatch-metric-streams-setup-quick-S3-console"></a>

Bagian ini menjelaskan cara menggunakan CloudWatch konsol untuk menyiapkan aliran metrik Amazon S3 menggunakan penyiapan Quick S3.

**Mengatur sebuah stream metrik menggunakan pengaturan S3 Cepat**

1. Buka CloudWatch konsol di [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. **Pada panel navigasi, silakan pilih **Metrik**, stream.** Kemudian pilih **Buat stream metrik**.

1. (Opsional) Jika Anda masuk ke akun yang disiapkan sebagai akun pemantauan dalam pengamatan CloudWatch lintas akun, Anda dapat memilih apakah akan menyertakan metrik dari akun sumber tertaut dalam aliran metrik ini. Untuk memasukkan metrik dari akun sumber, pilih **Masukkan metrik akun sumber**.

1. Pilih **Pengaturan S3 Cepat**. CloudWatch akan membuat semua sumber daya yang diperlukan termasuk aliran pengiriman Firehose dan peran IAM yang diperlukan. Format default untuk opsi ini adalah JSON, tetapi Anda dapat mengubah format di kemudian hari dalam prosedur ini.

1. (Opsional) Pilih **Pilih sumber daya yang** ada untuk menggunakan bucket S3 yang ada atau peran IAM yang ada alih-alih CloudWatch membuat yang baru untuk Anda.

1. (Opsional) Untuk mengubah format hasil akhir dari yang sebelumnya format default untuk skenario Anda, pilih **Ubah format hasil akhir**. Format yang didukung adalah JSON, OpenTelemetry 1.0.0, dan 0.7.0. OpenTelemetry 

1. **Agar **Metrik dapat dialirkan**, pilih **Semua metrik atau Pilih metrik**.**

   Jika Anda memilih **Semua metrik**, semua metrik dari akun ini akan disertakan dalam aliran.

   Pertimbangkan dengan cermat apakah akan melakukan stream semua metrik, karena semakin banyak metrik yang Anda stream semakin tinggi biaya stream metrik Anda.

   Jika Anda memilih **Pilih metrik**, lakukan salah satu hal berikut:
   + Untuk mengalirkan sebagian besar ruang nama metrik, pilih **Kecualikan** dan pilih ruang nama atau metrik yang akan dikecualikan. Saat Anda menentukan namespace di **Exclude**, Anda dapat memilih beberapa metrik tertentu dari namespace tersebut untuk dikecualikan. Jika Anda memilih untuk mengecualikan namespace tetapi tidak memilih metrik di namespace tersebut, semua metrik dari namespace tersebut akan dikecualikan.
   + Untuk menyertakan hanya beberapa ruang nama metrik atau metrik dalam aliran metrik, pilih **Sertakan**, lalu pilih ruang nama atau metrik yang akan disertakan. Jika Anda memilih untuk menyertakan namespace tetapi tidak memilih metrik di namespace tersebut, semua metrik dari namespace tersebut disertakan.

1. (Opsional) Untuk mengalirkan statistik tambahan untuk beberapa metrik ini di luar Minimum, Maksimum SampleCount, dan Jumlah, pilih **Tambahkan statistik tambahan**. Atau pilih **Tambahkan metrik yang direkomendasikan** untuk menambahkan beberapa statistik yang umum digunakan, atau pilih namespace dan nama metrik secara manual untuk melakukan stream statistik tambahan. Berikutnya, pilih statistik tambahan untuk stream.

   Hingga kemudian pilih grup metrik lain untuk stream kumpulan statistik tambahan yang berbeda, pilih **Tambahkan statistik tambahan**. Setiap metrik dapat mencakup sebanyak 20 statistik tambahan, dan sebanyak 100 metrik dalam sebuah stream metrik yang dapat mencakup statistik tambahan.

   Melakukan stream statistik tambahan akan menimbulkan lebih banyak biaya. Untuk informasi selengkapnya, lihat [Statistik yang dapat di-stream](CloudWatch-metric-streams-statistics.md).

   Untuk definisi statistik tambahan, silakan lihat [CloudWatch definisi statistik](Statistics-definitions.md).

1. (Opsional) Lakukan kustomisasi pada nama stream metrik yang baru pada **Nama stream metrik**.

1. Pilih **Buat stream metrik**.

# Pengaturan mitra cepat
<a name="CloudWatch-metric-streams-QuickPartner"></a>

CloudWatch memberikan pengalaman penyiapan cepat untuk mitra pihak ketiga berikut. Untuk menggunakan alur kerja ini, Anda hanya perlu menyediakan URL tujuan dan kunci API untuk tujuan Anda. CloudWatch menangani sisa penyiapan termasuk membuat aliran pengiriman Firehose dan peran IAM yang diperlukan.

**penting**  
Sebelum Anda menggunakan pengaturan mitra cepat untuk membuat sebuah stream metrik, kami sangat menyarankan Anda membaca dokumentasi mitra tersebut, yang ditautkan dalam daftar berikut.
+ [Datadog](https://docs.datadoghq.com/integrations/guide/aws-cloudwatch-metric-streams-with-kinesis-data-firehose/)
+ [Dynatrace](https://www.dynatrace.com/support/help/dynatrace-api/basics/dynatrace-api-authentication)
+ [Elastis](https://www.elastic.co/docs/current/integrations/awsfirehose)
+ [Relik Baru](https://docs.newrelic.com/install/aws-cloudwatch/)
+ [Cloud Observabilitas Splunk](https://docs.splunk.com/observability/en/gdi/get-data-in/connect/aws/aws-console-ms.html)
+ [SumoLogic](https://www.sumologic.com)

Saat Anda mengatur sebuah stream metrik ke salah satu mitra ini, stream akan dibuat dengan beberapa pengaturan default, seperti yang tercantum di bagian berikut.

**Topics**
+ [

## Siapkan sebuah stream metrik menggunakan pengaturan mitra cepat
](#CloudWatch-metric-streams-QuickPartner-setup)
+ [

## Stream datadog default
](#CloudWatch-metric-streams-QuickPartner-Datadog)
+ [

## Stream Dynatrace default
](#CloudWatch-metric-streams-QuickPartner-Dynatrace)
+ [

## Default aliran elastis
](#CloudWatch-metric-streams-QuickPartner-Elastic)
+ [

## Stream Relik baru default
](#CloudWatch-metric-streams-QuickPartner-NewRelic)
+ [

## Stream Cloud Observabilitas Splunk default
](#CloudWatch-metric-streams-QuickPartner-Splunk)
+ [

## Stream Sumo Logic default
](#CloudWatch-metric-streams-QuickPartner-Sumologic)

## Siapkan sebuah stream metrik menggunakan pengaturan mitra cepat
<a name="CloudWatch-metric-streams-QuickPartner-setup"></a>

CloudWatch menyediakan opsi pengaturan cepat untuk beberapa mitra pihak ketiga. Sebelum Anda memulai langkah-langkah di bagian ini, Anda harus memiliki informasi tertentu untuk mitra. Informasi ini mungkin menyertakan URL and/or tujuan kunci API untuk tujuan mitra Anda. Anda juga harus membaca dokumentasi di situs web mitra yang ditautkan di bagian sebelumnya, dan bagian default untuk mitra yang tercantum di bagian berikut.

Untuk melakukan streaming ke tujuan pihak ketiga yang tidak didukung oleh penyiapan cepat, Anda dapat mengikuti petunjuk di Ikuti petunjuk [Penyiapan kustom dengan Firehose](CloudWatch-metric-streams-setup-datalake.md) untuk menyiapkan aliran menggunakan Firehose, lalu mengirim metrik tersebut dari Firehose ke tujuan akhir.

**Menggunakan pengaturan mitra cepat untuk membuat stream metrik ke penyedia pihak ketiga**

1. Buka CloudWatch konsol di [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. **Pada panel navigasi, silakan pilih **Metrik**, stream.** Kemudian pilih **Buat stream metrik**.

1. (Opsional) Jika Anda masuk ke akun yang disiapkan sebagai akun pemantauan dalam pengamatan CloudWatch lintas akun, Anda dapat memilih apakah akan menyertakan metrik dari akun sumber tertaut dalam aliran metrik ini. Untuk memasukkan metrik dari akun sumber, pilih **Masukkan metrik akun sumber**.

1. Pilih **pengaturan mitra Amazon Web Services Cepat**

1. Pilih nama mitra yang ingin Anda stream metrik kepadanya.

1. Untuk **URL Titik Akhir**, masukkan URL tujuan.

1. Untuk **Kunci Akses** atau **Kunci API**, masukkan kunci akses untuk mitra. Tidak semua mitra memerlukan kunci akses.

1. **Agar **Metrik dapat dialirkan**, pilih **Semua metrik atau Pilih metrik**.**

   Jika Anda memilih **Semua metrik**, semua metrik dari akun ini akan disertakan dalam aliran.

   Pertimbangkan dengan cermat apakah akan melakukan stream semua metrik, karena semakin banyak metrik yang Anda stream semakin tinggi biaya stream metrik Anda.

   Jika Anda memilih **Pilih metrik**, lakukan salah satu hal berikut:
   + Untuk mengalirkan sebagian besar ruang nama metrik, pilih **Kecualikan** dan pilih ruang nama atau metrik yang akan dikecualikan. Saat Anda menentukan namespace di **Exclude**, Anda dapat memilih beberapa metrik tertentu dari namespace tersebut untuk dikecualikan. Jika Anda memilih untuk mengecualikan namespace tetapi tidak memilih metrik di namespace tersebut, semua metrik dari namespace tersebut akan dikecualikan.
   + Untuk menyertakan hanya beberapa ruang nama metrik atau metrik dalam aliran metrik, pilih **Sertakan**, lalu pilih ruang nama atau metrik yang akan disertakan. Jika Anda memilih untuk menyertakan namespace tetapi tidak memilih metrik di namespace tersebut, semua metrik dari namespace tersebut disertakan.

1. (Opsional) Untuk mengalirkan statistik tambahan untuk beberapa metrik ini di luar Minimum, Maksimum SampleCount, dan Jumlah, pilih **Tambahkan statistik tambahan**. Atau pilih **Tambahkan metrik yang direkomendasikan** untuk menambahkan beberapa statistik yang umum digunakan, atau pilih namespace dan nama metrik secara manual untuk melakukan stream statistik tambahan. Berikutnya, pilih statistik tambahan untuk stream.

   Hingga kemudian pilih grup metrik lain untuk stream kumpulan statistik tambahan yang berbeda, pilih **Tambahkan statistik tambahan**. Setiap metrik dapat mencakup sebanyak 20 statistik tambahan, dan sebanyak 100 metrik dalam sebuah stream metrik yang dapat mencakup statistik tambahan.

   Melakukan stream statistik tambahan akan menimbulkan lebih banyak biaya. Untuk informasi selengkapnya, lihat [Statistik yang dapat di-stream](CloudWatch-metric-streams-statistics.md).

   Untuk definisi statistik tambahan, silakan lihat [CloudWatch definisi statistik](Statistics-definitions.md).

1. (Opsional) Lakukan kustomisasi pada nama stream metrik yang baru pada **Nama stream metrik**.

1. Pilih **Buat stream metrik**.

## Stream datadog default
<a name="CloudWatch-metric-streams-QuickPartner-Datadog"></a>

Stream pengaturan mitra cepat ke Datadog menggunakan default berikut:
+ **Format keluaran:** OpenTelemetry 0.7.0
+ **Firehose streaming konten** encoding GZIP
+ **Opsi buffering aliran Firehose** Interval 60 detik, ukuran 4 MBs
+ **Opsi coba lagi aliran Firehose Durasi 60** detik

Bila Anda menggunakan pengaturan mitra cepat untuk membuat sebuah stream metrik ke Datadog dan Anda melakukan stream metrik tertentu, secara default metrik tersebut memasukkan beberapa statistik tambahan. Melakukan stream statistik tambahan dapat menimbulkan lebih banyak biaya tambahan. Untuk informasi selengkapnya tentang statistik dan biayanya, silakan lihat [Statistik yang dapat di-stream](CloudWatch-metric-streams-statistics.md).

Daftar berikut menunjukkan metrik yang memiliki statistik tambahan yang di-stream secara default, jika Anda memilih untuk melakukan stream pada metrik tersebut. Anda dapat memilih untuk membatalkan pilihan statistik tambahan ini sebelum memulai stream.
+ **`Duration` di `AWS/Lambda`:** p50, p80, p95, p99, p99.9
+ **`PostRuntimeExtensionDuration` di `AWS/Lambda`:** p50, p99
+ **`FirstByteLatency` dan `TotalRequestLatency` di `AWS/S3`:** p50, p90, p95, p99, p99.9
+ **`ResponseLatency` di `AWS/Polly` dan `TargetResponseTime` di AWS/ApplicationELB:** p50, p90, p95, p99
+ **`Latency` dan `IntegrationLatency` di `AWS/ApiGateway`:** p90, p95, p99
+ **`Latency` dan `TargetResponseTime` di `AWS/ELB`:** p95, p99
+ **`RequestLatency` di `AWS/AppRunner`:** p50, p95, p99
+ **`ActivityTime`, `ExecutionTime`, `LambdaFunctionRunTime`, `LambdaFunctionScheduleTime`, `LambdaFunctionTime`, `ActivityRunTime`, dan `ActivityScheduleTime` di `AWS/States`:** p95, p99
+ **`EncoderBitRate`,`ConfiguredBitRate`, dan `ConfiguredBitRateAvailable` di `AWS/MediaLive`:** p90
+ **`Latency` di `AWS/AppSync`:** p90

## Stream Dynatrace default
<a name="CloudWatch-metric-streams-QuickPartner-Dynatrace"></a>

Stream pengaturan mitra cepat ke Dynatrace menggunakan default berikut:
+ **Format keluaran:** OpenTelemetry 0.7.0
+ **Firehose streaming konten** encoding GZIP
+ **Opsi buffering aliran Firehose** Interval 60 detik, ukuran 5 MBs
+ **Opsi coba lagi aliran Firehose Durasi 600** detik

## Default aliran elastis
<a name="CloudWatch-metric-streams-QuickPartner-Elastic"></a>

Streaming penyiapan mitra cepat ke Elastic menggunakan default berikut:
+ **Format keluaran:** OpenTelemetry 1.0.0
+ **Firehose streaming konten** encoding GZIP
+ **Opsi buffering aliran Firehose** Interval 60 detik, ukuran 1 MB
+ **Opsi coba lagi aliran Firehose Durasi 60** detik

## Stream Relik baru default
<a name="CloudWatch-metric-streams-QuickPartner-NewRelic"></a>

Stream pengaturan mitra cepat ke Relik Baru menggunakan default berikut:
+ **Format keluaran:** OpenTelemetry 0.7.0
+ **Firehose streaming konten** encoding GZIP
+ **Opsi buffering aliran Firehose** Interval 60 detik, ukuran 1 MB
+ **Opsi coba lagi aliran Firehose Durasi 60** detik

## Stream Cloud Observabilitas Splunk default
<a name="CloudWatch-metric-streams-QuickPartner-Splunk"></a>

Stream pengaturan mitra cepat ke Cloud Observabilitas Splunk menggunakan default berikut:
+ **Format keluaran:** OpenTelemetry 1.0.0
+ **Firehose streaming konten** encoding GZIP
+ **Opsi buffering aliran Firehose** Interval 60 detik, ukuran 1 MB
+ **Opsi coba lagi aliran Firehose Durasi 300** detik

## Stream Sumo Logic default
<a name="CloudWatch-metric-streams-QuickPartner-Sumologic"></a>

Stream pengaturan mitra cepat ke Sumo Logic menggunakan default berikut:
+ **Format keluaran:** OpenTelemetry 0.7.0
+ **Firehose streaming konten** encoding GZIP
+ **Opsi buffering aliran Firehose** Interval 60 detik, ukuran 1 MB
+ **Opsi coba lagi aliran Firehose Durasi 60** detik

# Statistik yang dapat di-stream
<a name="CloudWatch-metric-streams-statistics"></a>

stream metrik selalu memasukkan statistik berikut: `Minimum`, `Maximum`, `SampleCount`, dan `Sum`. Anda juga dapat memilih untuk memasukkan statistik tambahan berikut dalam sebuah stream metrik. Pilihan ini berdasarkan per-metrik. Untuk informasi selengkapnya tentang statistik ini, silakan lihat [CloudWatch definisi statistik](Statistics-definitions.md).
+ Nilai persentil seperti p95 atau p99 (Untuk aliran dengan JSON atau format) OpenTelemetry 
+ Rata-rata terpangkas (Hanya untuk stream dengan format JSON)
+ Rata-rata winsorisasi (Hanya untuk stream dengan format JSON)
+ Hitungan trim (Hanya untuk stream dengan format JSON)
+ Jumlah trim (Hanya untuk stream dengan format JSON)
+ Peringkat persentil (Hanya untuk stream dengan format JSON)
+ Rata-rata interkuartil (Hanya untuk stream dengan format JSON)

Melakukan stream statistik tambahan akan menimbulkan biaya tambahan. Melakukan stream antara satu dan lima dari statistik tambahan ini untuk metrik tertentu akan ditagihkan sebagai sebuah pembaruan metrik tambahan. Setelahnya, setiap set tambahan yang berisikan hingga lima statistik ini akan ditagihkan sebagai pembaruan metrik lainnya. 

 Sebagai contoh, misalnya untuk satu metrik yang Anda sedang melakukan pengaliran pada enam statistik tambahan berikut: p95, p99, p99.9, Rata-rata terpangkas, Rata-rata terpotong, dan Jumlah terpangkas. Setiap pembaruan metrik ini akan ditagihkan sebagai tiga pembaruan metrik: satu untuk pembaruan metrik yang mencakup statistik default, satu untuk lima statistik tambahan pertama, dan satu untuk statistik tambahan yang keenam. Menambahkan hingga empat statistik tambahan untuk total sepuluh statistik tidak akan meningkatkan biaya penagihan, tetapi statistik tambahan kesebelas akan meningkatkan biaya penagihan.

Saat Anda menentukan kombinasi nama metrik dan namespace untuk melakukan stream statistik tambahan, semua kombinasi dimensi dari nama metrik dan namespace tersebut di-stream dengan statistik tambahan. 

CloudWatch aliran metrik menerbitkan metrik baru`TotalMetricUpdate`, yang mencerminkan jumlah dasar pembaruan metrik ditambah pembaruan metrik tambahan yang dikeluarkan oleh streaming statistik tambahan. Untuk informasi selengkapnya, lihat [Memantau aliran metrik Anda dengan CloudWatch metrik](CloudWatch-metric-streams-monitoring.md).

Untuk informasi selengkapnya, lihat [ CloudWatch Harga Amazon](https://aws.amazon.com/cloudwatch/pricing/).

**catatan**  
Beberapa metrik tidak mendukung persentil. Statistik persentil untuk metrik-metrik ini dikecualikan dari stream dan tidak dikenakan biaya stream metrik. Sebuah contoh dari statistik ini yang tidak mendukung persentil adalah beberapa metrik di namespace `AWS/ECS`.

Statistik tambahan yang Anda konfigurasikan di-stream hanya jika cocok dengan filter untuk stream. Sebagai contoh, jika Anda membuat sebuah stream yang hanya memiliki `EC2` dan `RDS` di filter yang sudah termasuk, dan lalu konfigurasi statistik Anda menyertakan `EC2` dan `Lambda`, maka stream tersebut memasukkan metrik `EC2` dengan statistik tambahan, metrik `RDS` dengan hanya statistik default, dan tidak memasukkan statistik `Lambda` sama sekali.

# Operasi dan pemeliharaan stream metrik
<a name="CloudWatch-metric-streams-operation"></a>

Stream metrik selalu berada di salah satu dari dua status, **Berjalan** atau **Berhenti**.
+ **Berjalan** — stream metrik berjalan dengan benar. Mungkin tidak akan ada data metrik apa pun yang di-stream ke tujuan karena adanya filter-filter di stream tersebut.
+ **Terhenti** — Stream metrik telah dihentikan secara eksplisit oleh seseorang, dan bukan karena adanya kesalahan. Mungkin berguna bagi Anda untuk menghentikan stream Anda untuk menjeda sejenak kegiatan stream data tanpa menghapus stream-nya.

Jika Anda menghentikan dan memulai ulang aliran metrik, data metrik yang dipublikasikan CloudWatch saat aliran metrik dihentikan tidak akan diisi kembali ke aliran metrik.

Jika Anda mengubah format hasil akhir sebuah stream metrik, dalam kasus tertentu Anda mungkin akan melihat sejumlah kecil data metrik yang dituliskan ke tujuan dalam format lama maupun format yang baru. Untuk menghindari situasi ini, Anda dapat membuat aliran pengiriman Firehose baru dengan konfigurasi yang sama dengan konfigurasi Anda saat ini, lalu mengubah ke aliran pengiriman Firehose baru dan mengubah format output secara bersamaan. Dengan begini, catatan Kinesis dengan format hasil akhir yang berbeda akan disimpan di Amazon S3 dalam objek terpisah. Kemudian, Anda dapat mengarahkan lalu lintas kembali ke aliran pengiriman Firehose asli dan menghapus aliran pengiriman kedua. 

**Untuk melihat, mengedit, menghentikan, dan memulai stream metrik Anda**

1. Buka CloudWatch konsol di [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Pada panel navigasi, silakan pilih **Metrik**, **Stream**.

   Daftar berisikan stream muncul, dan kolom **Status** menampilkan apakah setiap stream sedang berjalan atau berhenti.

1. Untuk menghentikan atau memulai sebuah stream metrik, pilih stream lalu pilih **Berhenti** atau **Mulai**.

1. Untuk melihat detail tentang sebuah stream metrik, pilih stream lalu pilih **Lihat detail**.

1. Untuk mengubah format keluaran aliran, filter, aliran Firehose tujuan, atau peran, pilih **Edit** dan buat perubahan yang Anda inginkan.

   Jika Anda mengubah filter, mungkin ada beberapa celah dalam data metrik selama transisi.

# Memantau aliran metrik Anda dengan CloudWatch metrik
<a name="CloudWatch-metric-streams-monitoring"></a>

Aliran metrik memancarkan CloudWatch metrik tentang kesehatan dan operasinya di namespace. `AWS/CloudWatch/MetricStreams` Metrik-metrik berikut dikeluarkan. Metrik-metrik ini dikeluarkan dengan sebuah dimensi `MetricStreamName` dan tanpa dimensi. Anda dapat menggunakan metrik tersebut dengan tanpa dimensi untuk melihat metrik-metrik gabungan untuk semua stream metrik Anda. Anda dapat menggunakan metrik-metrik tersebut dengan dimensi `MetricStreamName` untuk melihat metrik-metrik tersebut hanya tentang stream metrik tersebut.

Untuk semua metrik ini, nilai-nilai dikeluarkan hanya untuk stream metrik yang berada di status **Berjalan.**


| Metrik | Deskripsi | 
| --- | --- | 
|  `MetricUpdate`  |  Jumlah pembaruan metrik dikirimkan ke stream metrik. Jika tidak ada pembaruan metrik yang di-stream selama jangka waktu tertentu, metrik ini tidak muncul selama jangka waktu tersebut. Jika Anda menghentikan stream metrik tersebut, metrik-metrik ini akan berhenti muncul hingga stream metrik dimulai lagi. Statistik valid: `Sum` Satuan: Tidak ada | 
|  `TotalMetricUpdate`  |  Ini dihitung **MetricUpdate sebagai\$1angka berdasarkan statistik tambahan yang sedang dialirkan**. Untuk setiap kombinasi namespace dan nama metrik yang unik, lakukan stream 1-5 statistik tambahan akan menambahkan 1 ke `TotalMetricUpdate`, dan melakukan stream 6-10 statistik tambahan akan menambahkan 2 ke `TotalMetricUpdate`, dan seterusnya.  Statistik valid: `Sum` Satuan: Tidak ada | 
|  `PublishErrorRate`  |  Jumlah kesalahan yang tidak dapat dipulihkan yang terjadi saat memasukkan data ke aliran pengiriman Firehose. Jika tidak ada kesalahan yang terjadi selama jangka waktu, metrik ini tidak akan muncul selama jangka waktu tersebut. Jika Anda menghentikan stream metrik tersebut, metrik-metrik ini akan berhenti muncul hingga stream metrik dimulai lagi. Statistik yang Benar: `Average` untuk melihat tingkat pembaruan metrik tidak dapat dicatat. Nilai ini akan berada di antara 0,0 dan 1,0. Satuan: Tidak ada  | 

# Kepercayaan antara CloudWatch dan Firehose
<a name="CloudWatch-metric-streams-trustpolicy"></a>

Aliran pengiriman Firehose harus dipercaya CloudWatch melalui peran IAM yang memiliki izin menulis ke Firehose. Izin ini dapat dibatasi pada aliran pengiriman Firehose tunggal yang CloudWatch digunakan aliran metrik. Peran IAM harus memercayai pengguna utama layanan `streams.metrics.cloudwatch.amazonaws.com`.

Jika Anda menggunakan CloudWatch konsol untuk membuat aliran metrik, Anda dapat CloudWatch membuat peran dengan izin yang benar. Jika Anda menggunakan metode lain untuk membuat sebuah stream metrik, atau Anda ingin membuat peran IAM itu sendiri, maka metode itu harus berisikan kebijakan izin dan kebijakan kepercayaan berikut.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "firehose:PutRecord",
                "firehose:PutRecordBatch"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:firehose:us-east-1:123456789012:deliverystream/*"
        }
    ]
}
```

------

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "streams.metrics.cloudwatch.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

Data metrik dialirkan CloudWatch ke aliran pengiriman Firehose tujuan atas nama sumber yang memiliki sumber daya aliran metrik. 

# CloudWatch keluaran aliran metrik dalam format JSON
<a name="CloudWatch-metric-streams-formats-json"></a>

Dalam aliran CloudWatch metrik yang menggunakan format JSON, setiap catatan Firehose berisi beberapa objek JSON yang dipisahkan oleh karakter baris baru (\$1n). Setiap objek mencakup satu titik data tunggal dari satu metrik tunggal.

Format JSON yang digunakan sepenuhnya kompatibel dengan AWS Glue dan dengan Amazon Athena. Jika Anda memiliki aliran pengiriman Firehose dan AWS Glue tabel diformat dengan benar, format dapat secara otomatis diubah menjadi format Parket atau format Optimized Row Columnar (ORC) sebelum disimpan di S3. Untuk informasi selengkapnya tentang mengubah format, lihat [Mengonversi Format Rekaman Input Anda di Firehose](https://docs.aws.amazon.com/firehose/latest/dev/record-format-conversion.html). Untuk informasi selengkapnya tentang format yang benar AWS Glue, lihat[AWS Glue Skema mana yang harus saya gunakan untuk format keluaran JSON?](#CloudWatch-metric-streams-format-glue).

Pada format JSON, nilai yang valid untuk `unit` adalah sama seperti untuk nilai `unit` dari Struktur API `MetricDatum`. Untuk informasi selengkapnya, lihat [ MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html). Nilai untuk bidang `timestamp` dalam jangka waktu milidetik, misalnya `1616004674229`.

Berikut ini adalah contoh dari format tersebut. Pada contoh ini, JSON diformat agar mudah dibaca, tetapi dalam praktiknya keseluruhan format ada pada satu baris tunggal.

```
{
    "metric_stream_name": "MyMetricStream",
    "account_id": "1234567890",
    "region": "us-east-1",
    "namespace": "AWS/EC2",
    "metric_name": "DiskWriteOps",
    "dimensions": {
        "InstanceId": "i-123456789012"
    },
    "timestamp": 1611929698000,
    "value": {
        "count": 3.0,
        "sum": 20.0,
        "max": 18.0,
        "min": 0.0,
        "p99": 17.56,
        "p99.9": 17.8764,
        "TM(25%:75%)": 16.43
    },
    "unit": "Seconds"
}
```

## AWS Glue Skema mana yang harus saya gunakan untuk format keluaran JSON?
<a name="CloudWatch-metric-streams-format-glue"></a>

Berikut ini adalah contoh representasi JSON `StorageDescriptor` untuk AWS Glue tabel, yang kemudian akan digunakan oleh Firehose. Untuk informasi lebih lanjut tentang`StorageDescriptor`, lihat [ StorageDescriptor](https://docs.aws.amazon.com/glue/latest/webapi/API_StorageDescriptor.html).

```
{
  "Columns": [
    {
      "Name": "metric_stream_name",
      "Type": "string"
    },
    {
      "Name": "account_id",
      "Type": "string"
    },
    {
      "Name": "region",
      "Type": "string"
    },
    {
      "Name": "namespace",
      "Type": "string"
    },
    {
      "Name": "metric_name",
      "Type": "string"
    },
    {
      "Name": "timestamp",
      "Type": "timestamp"
    },
    {
      "Name": "dimensions",
      "Type": "map<string,string>"
    },
    {
      "Name": "value",
      "Type": "struct<min:double,max:double,count:double,sum:double,p99:double,p99.9:double>"
    },
    {
      "Name": "unit",
      "Type": "string"
    }
  ],
  "Location": "s3://amzn-s3-demo-bucket/",
  "InputFormat": "org.apache.hadoop.mapred.TextInputFormat",
  "OutputFormat": "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat",
  "SerdeInfo": {
    "SerializationLibrary": "org.apache.hive.hcatalog.data.JsonSerDe"
  },
  "Parameters": {
    "classification": "json"
  }
}
```

Contoh sebelumnya adalah untuk data yang dicatat di Amazon S3 dalam format JSON. Gantilah nilai-nilai di bidang-bidang berikut ini dengan nilai-nilai yang sudah terindikasi untuk menyimpan data dalam format Parquet atau format Optimized Row Columnar (ORC).
+ **Parquet:**
  + InputFormat: org.apache.hadoop.hive.ql.io.parquet. MapredParquetInputFormat
  + OutputFormat: org.apache.hadoop.hive.ql.io.parquet. MapredParquetOutputFormat
  + SerDeInfo.SerializationLib: org.apache.hadoop.hive.ql.io.parquet.serde. ParquetHiveSerDe
  + parameters.classification: parquet
+ **ORC:**
  + InputFormat: org.apache.hadoop.hive.ql.io.orc. OrcInputFormat
  + OutputFormat: org.apache.hadoop.hive.ql.io.orc. OrcOutputFormat
  + SerDeInfo.SerializationLib: org.apache.hadoop.hive.ql.io.orc. OrcSerde
  + parameters.classification: orc

# CloudWatch keluaran aliran metrik dalam format OpenTelemetry 1.0.0
<a name="CloudWatch-metric-streams-formats-opentelemetry-100"></a>

**catatan**  
Dengan format OpenTelemetry 1.0.0, atribut metrik dikodekan sebagai daftar `KeyValue` objek, bukan `StringKeyValue` tipe yang digunakan dalam format 0.7.0. Sebagai konsumen, ini merupakan satu-satunya perubahan besar yang terjadi antara format 0.7.0 dan 1.0.0. Pengurai yang dihasilkan dari file proto 0.7.0 tidak akan melakukan penguraian terhadap atribut-atribut metrik yang dikodekan dalam format 1.0.0. Hal yang sama berlaku secara terbalik, pengurai yang dihasilkan dari file proto 1.0.0 tidak akan melakukan penguraian terhadap atribut-atribut metrik yang dikodekan dalam format 0.7.0.

OpenTelemetry adalah kumpulan alat, APIs, dan SDKs. Anda dapat menggunakannya untuk instrumen, menghasilkan, mengumpulkan, dan mengekspor data telemetri (metrik, log, dan jejak) untuk analisis. OpenTelemetry adalah bagian dari Cloud Native Computing Foundation. Untuk informasi selengkapnya, lihat [OpenTelemetry](https://opentelemetry.io/).

Untuk informasi tentang spesifikasi OpenTelemetry 1.0.0 lengkap, lihat [Rilis versi](https://github.com/open-telemetry/opentelemetry-proto/releases/tag/v1.0.0) 1.0.0.

Catatan Kinesis dapat berisi satu atau lebih struktur `ExportMetricsServiceRequest` OpenTelemetry data. Setiap struktur data dimulai dengan header dengan sebuah `UnsignedVarInt32` yang mengindikasikan panjang catatan dalam Byte. Setiap `ExportMetricsServiceRequest` dapat berisikan data dari beberapa metrik sekaligus.

Berikut ini adalah representasi string dari pesan struktur `ExportMetricsServiceRequest` OpenTelemetry data. OpenTelemetry membuat serial protokol biner Google Protocol Buffers, dan ini tidak dapat dibaca manusia.

```
resource_metrics {
  resource {
    attributes {
      key: "cloud.provider"
      value {
        string_value: "aws"
      }
    }
    attributes {
      key: "cloud.account.id"
      value {
        string_value: "123456789012"
      }
    }
    attributes {
      key: "cloud.region"
      value {
        string_value: "us-east-1"
      }
    }
    attributes {
      key: "aws.exporter.arn"
      value {
        string_value: "arn:aws:cloudwatch:us-east-1:123456789012:metric-stream/MyMetricStream"
      }
    }
  }
  scope_metrics {
    metrics {
      name: "amazonaws.com/AWS/DynamoDB/ConsumedReadCapacityUnits"
      unit: "NoneTranslated"
      summary {
        data_points {
          start_time_unix_nano: 60000000000
          time_unix_nano: 120000000000
          count: 1
          sum: 1.0
          quantile_values {
            value: 1.0
          }
          quantile_values {
            quantile: 0.95
            value: 1.0
          }
          quantile_values {
            quantile: 0.99
            value: 1.0
          }
          quantile_values {
            quantile: 1.0
            value: 1.0
          }
          attributes {
            key: "Namespace"
            value {
              string_value: "AWS/DynamoDB"
            }
          }
          attributes {
            key: "MetricName"
            value {
              string_value: "ConsumedReadCapacityUnits"
            }
          }
          attributes {
            key: "Dimensions"
            value {
              kvlist_value {
                values {
                  key: "TableName"
                  value {
                    string_value: "MyTable"
                  }
                }
              }
            }
          }
        }
        data_points {
          start_time_unix_nano: 70000000000
          time_unix_nano: 130000000000
          count: 2
          sum: 5.0
          quantile_values {
            value: 2.0
          }
          quantile_values {
            quantile: 1.0
            value: 3.0
          }
          attributes {
            key: "Namespace"
            value {
              string_value: "AWS/DynamoDB"
            }
          }
          attributes {
            key: "MetricName"
            value {
              string_value: "ConsumedReadCapacityUnits"
            }
          }
          attributes {
            key: "Dimensions"
            value {
              kvlist_value {
                values {
                  key: "TableName"
                  value {
                    string_value: "MyTable"
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
```

**Objek tingkat atas untuk membuat serial data metrik OpenTelemetry **

`ExportMetricsServiceRequest`adalah pembungkus tingkat atas untuk membuat serial muatan eksportir. OpenTelemetry Itu berisikan satu atau beberapa `ResourceMetrics`.

```
message ExportMetricsServiceRequest {
  // An array of ResourceMetrics.
  // For data coming from a single resource this array will typically contain one
  // element. Intermediary nodes (such as OpenTelemetry Collector) that receive
  // data from multiple origins typically batch the data before forwarding further and
  // in that case this array will contain multiple elements.
  repeated opentelemetry.proto.metrics.v1.ResourceMetrics resource_metrics = 1;
}
```

`ResourceMetrics`adalah objek tingkat atas untuk mewakili MetricData objek. 

```
// A collection of ScopeMetrics from a Resource.
message ResourceMetrics {
  reserved 1000;

  // The resource for the metrics in this message.
  // If this field is not set then no resource info is known.
  opentelemetry.proto.resource.v1.Resource resource = 1;

  // A list of metrics that originate from a resource.
  repeated ScopeMetrics scope_metrics = 2;

  // This schema_url applies to the data in the "resource" field. It does not apply
  // to the data in the "scope_metrics" field which have their own schema_url field.
  string schema_url = 3;
}
```

**objek Sumber Daya**

Objek `Resource` adalah sebuah objek pasangan-nilai yang berisikan beberapa informasi tentang sumber daya yang dihasilkan metrik. Untuk metrik yang dibuat oleh AWS, struktur data yang berisikan Amazon Resource Name (ARN) dari sumber daya yang berkaitan dengan metrik, seperti instans EC2 atau bucket S3.

Objek `Resource` berisikan atribut yang disebut `attributes`, yang menyimpan daftar pasangan nilai-kunci.
+ `cloud.account.id` berisi ID akun
+ `cloud.region` berisi Wilayah
+ `aws.exporter.arn` berisi ARN stream metrik
+ `cloud.provider` selalu `aws`.

```
// Resource information.
message Resource {
  // Set of attributes that describe the resource.
  // Attribute keys MUST be unique (it is not allowed to have more than one
  // attribute with the same key).
  repeated opentelemetry.proto.common.v1.KeyValue attributes = 1;

  // dropped_attributes_count is the number of dropped attributes. If the value is 0, then
  // no attributes were dropped.
  uint32 dropped_attributes_count = 2;
}
```

** ScopeMetrics Objeknya**

Bidang `scope` tidak akan diisi. Kami hanya akan mengisi bidang metrik yang kami ekspor.

```
// A collection of Metrics produced by an Scope.
message ScopeMetrics {
  // The instrumentation scope information for the metrics in this message.
  // Semantically when InstrumentationScope isn't set, it is equivalent with
  // an empty instrumentation scope name (unknown).
  opentelemetry.proto.common.v1.InstrumentationScope scope = 1;

  // A list of metrics that originate from an instrumentation library.
  repeated Metric metrics = 2;

  // This schema_url applies to all metrics in the "metrics" field.
  string schema_url = 3;
}
```

**Objek metrik**

Objek metrik berisikan beberapa metadata dan kolom data `Summary` yang berisi sebuah daftar `SummaryDataPoint`.

Untuk stream metrik, metadatanya adalah sebagai berikut:
+ `name` adalah `amazonaws.com/metric_namespace/metric_name`
+ `description` akan menjadi kosong
+ `unit` akan diisi dengan pemetaan unit datum metrik ke varian yang sensitif huruf besar-kecil dari kode Terpadu untuk Unit Ukur. Untuk informasi selengkapnya, silakan lihat [Terjemahan dengan format OpenTelemetry 1.0.0 di CloudWatch](CloudWatch-metric-streams-formats-opentelemetry-translation-100.md) dan [Kode Terpadu Untuk Unit Ukur](https://ucum.org/ucum.html).
+ `type` adalah `SUMMARY`

```
message Metric {
  reserved 4, 6, 8;

  // name of the metric, including its DNS name prefix. It must be unique.
  string name = 1;

  // description of the metric, which can be used in documentation.
  string description = 2;

  // unit in which the metric value is reported. Follows the format
  // described by http://unitsofmeasure.org/ucum.html.
  string unit = 3;

  // Data determines the aggregation type (if any) of the metric, what is the
  // reported value type for the data points, as well as the relatationship to
  // the time interval over which they are reported.
  oneof data {
    Gauge gauge = 5;
    Sum sum = 7;
    Histogram histogram = 9;
    ExponentialHistogram exponential_histogram = 10;
    Summary summary = 11;
  }
}

message Summary {
  repeated SummaryDataPoint data_points = 1;
}
```

** SummaryDataPoint Objeknya**

 SummaryDataPoint Objek berisi nilai titik data tunggal dalam deret waktu dalam DoubleSummary metrik.

```
// SummaryDataPoint is a single data point in a timeseries that describes the
// time-varying values of a Summary metric.
message SummaryDataPoint {
  reserved 1;

  // The set of key/value pairs that uniquely identify the timeseries from
  // where this point belongs. The list may be empty (may contain 0 elements).
  // Attribute keys MUST be unique (it is not allowed to have more than one
  // attribute with the same key).
  repeated opentelemetry.proto.common.v1.KeyValue attributes = 7;

  // StartTimeUnixNano is optional but strongly encouraged, see the
  // the detailed comments above Metric.
  //
  // Value is UNIX Epoch time in nanoseconds since 00:00:00 UTC on 1 January
  // 1970.
  fixed64 start_time_unix_nano = 2;

  // TimeUnixNano is required, see the detailed comments above Metric.
  //
  // Value is UNIX Epoch time in nanoseconds since 00:00:00 UTC on 1 January
  // 1970.
  fixed64 time_unix_nano = 3;

  // count is the number of values in the population. Must be non-negative.
  fixed64 count = 4;

  // sum of the values in the population. If count is zero then this field
  // must be zero.
  //
  // Note: Sum should only be filled out when measuring non-negative discrete
  // events, and is assumed to be monotonic over the values of these events.
  // Negative events *can* be recorded, but sum should not be filled out when
  // doing so.  This is specifically to enforce compatibility w/ OpenMetrics,
  // see: https://github.com/OpenObservability/OpenMetrics/blob/main/specification/OpenMetrics.md#summary
  double sum = 5;

  // Represents the value at a given quantile of a distribution.
  //
  // To record Min and Max values following conventions are used:
  // - The 1.0 quantile is equivalent to the maximum value observed.
  // - The 0.0 quantile is equivalent to the minimum value observed.
  //
  // See the following issue for more context:
  // https://github.com/open-telemetry/opentelemetry-proto/issues/125
  message ValueAtQuantile {
    // The quantile of a distribution. Must be in the interval
    // [0.0, 1.0].
    double quantile = 1;

    // The value at the given quantile of a distribution.
    //
    // Quantile values must NOT be negative.
    double value = 2;
  }

  // (Optional) list of values at different quantiles of the distribution calculated
  // from the current snapshot. The quantiles must be strictly increasing.
  repeated ValueAtQuantile quantile_values = 6;

  // Flags that apply to this specific data point.  See DataPointFlags
  // for the available flags and their meaning.
  uint32 flags = 8;
}
```

Untuk informasi selengkapnya, lihat [Terjemahan dengan format OpenTelemetry 1.0.0 di CloudWatch](CloudWatch-metric-streams-formats-opentelemetry-translation-100.md).

# Terjemahan dengan format OpenTelemetry 1.0.0 di CloudWatch
<a name="CloudWatch-metric-streams-formats-opentelemetry-translation-100"></a>

CloudWatch melakukan beberapa transformasi untuk memasukkan CloudWatch data ke dalam OpenTelemetry format.

**Menerjemahkan namespace, nama metrik, dan dimensi**

Atribut ini adalah pasangan nilai-kunci yang dikodekan ke dalam pemetaan.
+ Satu atribut memiliki kunci `Namespace` dan nilainya adalah namespace dari metrik tersebut
+ Satu atribut memiliki kunci `MetricName` dan nilainya adalah nama dari metrik tersebut
+ Satu pasangan memiliki kunci `Dimensions` dan nilainya adalah sebuah daftar pasangan nilai-kunci tersarang. Setiap pasangan dalam daftar ini memetakan ke dimensi CloudWatch metrik, di mana kunci pasangan adalah nama dimensi dan nilainya adalah nilai dimensi.

**Menerjemahkan Rata-rata, Jumlah, SampleCount, Min dan Maks**

Titik data Ringkasan memungkinkan CloudWatch untuk mengekspor semua statistik ini menggunakan satu titik data.
+ `startTimeUnixNano`berisi CloudWatch `startTime`
+ `timeUnixNano`berisi CloudWatch `endTime`
+ `sum` berisi statistik Jumlah.
+ `count`berisi SampleCount statistik.
+ `quantile_values` berisi dua objek `valueAtQuantile.value`:
  + `valueAtQuantile.quantile = 0.0` dengan `valueAtQuantile.value = Min value`
  + `valueAtQuantile.quantile = 0.99` dengan `valueAtQuantile.value = p99 value`
  + `valueAtQuantile.quantile = 0.999` dengan `valueAtQuantile.value = p99.9 value`
  + `valueAtQuantile.quantile = 1.0` dengan `valueAtQuantile.value = Max value`

Sumber daya yang menggunakan aliran metrik dapat menghitung statistik Rata-rata sebagai **Jumlah/ SampleCount**.

**Menerjemahkan unit-unit**

CloudWatch unit dipetakan ke varian peka huruf besar/kecil dari kode Terpadu untuk Satuan Ukuran, seperti yang ditunjukkan pada tabel berikut. Untuk informasi selengkapnya, silakan lihat [Kode Terpadu Untuk Unit Ukur](https://ucum.org/ucum.html).


| CloudWatch | OpenTelemetry | 
| --- | --- | 
|  Detik |  d | 
|  Detik atau Detik |  detik | 
|  Mikrodetik |  µs | 
|  Milidetik |  ms | 
|  Byte |  Oleh | 
|  Kilobyte |  kBy | 
|  Megabyte |  MBy | 
|  Gigabyte |  GBy | 
|  Terabyte |  TBy | 
|  Bit |  bit | 
|  Kilobit |  kbit | 
|  Megabit |  MBit | 
|  Gigabit |  GBit | 
|  Terabit |  TBit | 
|  Persen |  % | 
|  Hitungan |  \$1Count\$1 | 
|  Tidak ada |  1 | 

Unit yang digabungkan dengan garis miring dipetakan dengan menerapkan OpenTelemetry konversi kedua unit. Misalnya, Bytes/Second dipetakan ke BY/s.

# Cara mengurai pesan OpenTelemetry 1.0.0
<a name="CloudWatch-metric-streams-formats-opentelemetry-parse-100"></a>

Bagian ini memberikan informasi untuk membantu Anda memulai dengan parsing OpenTelemetry 1.0.0.

Pertama, Anda harus mendapatkan binding khusus bahasa, yang memungkinkan Anda mengurai pesan OpenTelemetry 1.0.0 dalam bahasa pilihan Anda.

**Untuk mendapatkan ikatan bahasa tertentu**
+ Langkah-langkahnya tergantung pada bahasa pilihan Anda.
  + [Untuk menggunakan Java, tambahkan dependensi Maven berikut ke proyek Java Anda: Java >> 0.14.1OpenTelemetry .](https://mvnrepository.com/artifact/io.opentelemetry/opentelemetry-proto/0.14.1)
  + Untuk menggunakan bahasa lain, ikuti langkah-langkah ini:

    1. Pastikan bahasa Anda didukung dengan memeriksa daftar di [Menghasilkan Kelas Anda](https://developers.google.com/protocol-buffers/docs/proto3#generating).

    1. Instal alat kompilasi Protobuf dengan mengikuti langkah-langkah di [Unduh Buffer Protokol](https://developers.google.com/protocol-buffers/docs/downloads).

    1. Unduh ProtoBuf definisi OpenTelemetry 1.0.0 di [Rilis versi](https://github.com/open-telemetry/opentelemetry-proto/releases/tag/v1.0.0) 1.0.0. 

    1. Konfirmasikan bahwa Anda berada di folder root dari definisi OpenTelemetry 1.0.0 ProtoBuf yang diunduh. Kemudian buatlah folder `src` lalu jalankan perintah untuk menghasilkan ikatan bahasa khusus. Untuk informasi selengkapnya, silakan lihat [Menghasilkan Kelas Anda](https://developers.google.com/protocol-buffers/docs/proto3#generating). 

       Berikut ini adalah contoh untuk cara menghasilkan ikatan Javascript.

       ```
       protoc --proto_path=./ --js_out=import_style=commonjs,binary:src \
       opentelemetry/proto/common/v1/common.proto \
       opentelemetry/proto/resource/v1/resource.proto \
       opentelemetry/proto/metrics/v1/metrics.proto \
       opentelemetry/proto/collector/metrics/v1/metrics_service.proto
       ```

Bagian berikut mencakup contoh-contoh menggunakan ikatan bahasa khusus yang dapat Anda bangun dengan menggunakan petunjuk sebelumnya.

**Java**

```
package com.example;

import io.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest;

import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

public class MyOpenTelemetryParser {

    public List<ExportMetricsServiceRequest> parse(InputStream inputStream) throws IOException {
        List<ExportMetricsServiceRequest> result = new ArrayList<>();

        ExportMetricsServiceRequest request;
        /* A Kinesis record can contain multiple `ExportMetricsServiceRequest`
           records, each of them starting with a header with an
           UnsignedVarInt32 indicating the record length in bytes:
            ------ --------------------------- ------ -----------------------
           |UINT32|ExportMetricsServiceRequest|UINT32|ExportMetricsService...
            ------ --------------------------- ------ -----------------------
         */
        while ((request = ExportMetricsServiceRequest.parseDelimitedFrom(inputStream)) != null) {
            // Do whatever we want with the parsed message
            result.add(request);
        }

        return result;
    }
}
```

**Javascript**

Contoh ini mengasumsikan bahwa folder akar dengan ikatan yang dihasilkan adalah `./`

Argumen data dari fungsi `parseRecord` dapat menjadi salah satu dari jenis berikut:
+ `Uint8Array` ini adalah optimal
+ `Buffer` menjadi optimal di bawah simpul
+ `Array.number` adalah bilangan bulat 8-bit

```
const pb = require('google-protobuf')
const pbMetrics =
    require('./opentelemetry/proto/collector/metrics/v1/metrics_service_pb')

function parseRecord(data) {
    const result = []

    // Loop until we've read all the data from the buffer
    while (data.length) {
        /* A Kinesis record can contain multiple `ExportMetricsServiceRequest`
           records, each of them starting with a header with an
           UnsignedVarInt32 indicating the record length in bytes:
            ------ --------------------------- ------ -----------------------
           |UINT32|ExportMetricsServiceRequest|UINT32|ExportMetricsService...
            ------ --------------------------- ------ -----------------------
         */
        const reader = new pb.BinaryReader(data)
        const messageLength = reader.decoder_.readUnsignedVarint32()
        const messageFrom = reader.decoder_.cursor_
        const messageTo = messageFrom + messageLength

        // Extract the current `ExportMetricsServiceRequest` message to parse
        const message = data.subarray(messageFrom, messageTo)

        // Parse the current message using the ProtoBuf library
        const parsed =
            pbMetrics.ExportMetricsServiceRequest.deserializeBinary(message)

        // Do whatever we want with the parsed message
        result.push(parsed.toObject())

        // Shrink the remaining buffer, removing the already parsed data
        data = data.subarray(messageTo)
    }

    return result
}
```

**Python**

Anda harus membaca anti pembatas `var-int` oleh Anda sendiri atau gunakan metode internal `_VarintBytes(size)` dan `_DecodeVarint32(buffer, position)`. Hal ini akan mengembalikan posisi dalam buffer langsung menyusul ukuran bita. Bagian baca akan mengonstruksi buffer baru yang terbatas pada pembacaan byte pesan saja. 

```
size = my_metric.ByteSize()
f.write(_VarintBytes(size))
f.write(my_metric.SerializeToString())
msg_len, new_pos = _DecodeVarint32(buf, 0)
msg_buf = buf[new_pos:new_pos+msg_len]
request = metrics_service_pb.ExportMetricsServiceRequest()
request.ParseFromString(msg_buf)
```

**Kunjungi**

Gunakan `Buffer.DecodeMessage()`.

**C\$1**

Gunakan `CodedInputStream`. Kelas ini dapat membaca pesan dengan ukuran tak terbatas.

**C\$1\$1**

Fungsi yang dijelaskan dalam `google/protobuf/util/delimited_message_util.h` dapat membaca pesan yang dibatasi ukuran.

**Bahasa lain**

Untuk bahasa lain, silakan lihat [Unduh Protokol Buffer](https://developers.google.com/protocol-buffers/docs/downloads).

Saat menerapkan alat pengurai, pertimbangkan bahwa sebuah catatan Kinesis dapat berisikan beberapa pesan Protokol Buffer `ExportMetricsServiceRequest` , masing-masing dimulai dengan sebuah header dengan sebuah `UnsignedVarInt32` yang menunjukkan panjang catatan dalam bita.

# CloudWatch keluaran aliran metrik dalam format OpenTelemetry 0.7.0
<a name="CloudWatch-metric-streams-formats-opentelemetry"></a>

OpenTelemetry adalah kumpulan alat, APIs, dan SDKs. Anda dapat menggunakannya untuk instrumen, menghasilkan, mengumpulkan, dan mengekspor data telemetri (metrik, log, dan jejak) untuk analisis. OpenTelemetry adalah bagian dari Cloud Native Computing Foundation. Untuk informasi selengkapnya, lihat [OpenTelemetry](https://opentelemetry.io/).

Untuk informasi tentang spesifikasi OpenTelemetry 0.7.0 lengkap, lihat rilis [v0.7.0](https://github.com/open-telemetry/opentelemetry-proto/releases/tag/v0.7.0).

Catatan Kinesis dapat berisi satu atau lebih struktur `ExportMetricsServiceRequest` OpenTelemetry data. Setiap struktur data dimulai dengan header dengan sebuah `UnsignedVarInt32` yang mengindikasikan panjang catatan dalam Byte. Setiap `ExportMetricsServiceRequest` dapat berisikan data dari beberapa metrik sekaligus.

Berikut ini adalah representasi string dari pesan struktur `ExportMetricsServiceRequest` OpenTelemetry data. OpenTelemetry membuat serial protokol biner Google Protocol Buffers, dan ini tidak dapat dibaca manusia.

```
resource_metrics {
  resource {
    attributes {
      key: "cloud.provider"
      value {
        string_value: "aws"
      }
    }
    attributes {
      key: "cloud.account.id"
      value {
        string_value: "2345678901"
      }
    }
    attributes {
      key: "cloud.region"
      value {
        string_value: "us-east-1"
      }
    }
    attributes {
      key: "aws.exporter.arn"
      value {
        string_value: "arn:aws:cloudwatch:us-east-1:123456789012:metric-stream/MyMetricStream"
      }
    }
  }
  instrumentation_library_metrics {
    metrics {
      name: "amazonaws.com/AWS/DynamoDB/ConsumedReadCapacityUnits"
      unit: "1"
      double_summary {
        data_points {
          labels {
            key: "Namespace"
            value: "AWS/DynamoDB"
          }
          labels {
            key: "MetricName"
            value: "ConsumedReadCapacityUnits"
          }
          labels {
            key: "TableName"
            value: "MyTable"
          }
          start_time_unix_nano: 1604948400000000000
          time_unix_nano: 1604948460000000000
          count: 1
          sum: 1.0
          quantile_values {
            quantile: 0.0
            value: 1.0
          }
          quantile_values {
            quantile: 0.95
            value: 1.0
          }          
          quantile_values {
            quantile: 0.99
            value: 1.0
          }
          quantile_values {
            quantile: 1.0
            value: 1.0
          }
        }
        data_points {
          labels {
            key: "Namespace"
            value: "AWS/DynamoDB"
          }
          labels {
            key: "MetricName"
            value: "ConsumedReadCapacityUnits"
          }
          labels {
            key: "TableName"
            value: "MyTable"
          }
          start_time_unix_nano: 1604948460000000000
          time_unix_nano: 1604948520000000000
          count: 2
          sum: 5.0
          quantile_values {
            quantile: 0.0
            value: 2.0
          }
          quantile_values {
            quantile: 1.0
            value: 3.0
          }
        }
      }
    }
  }
}
```

**Objek tingkat atas untuk membuat serial data metrik OpenTelemetry **

`ExportMetricsServiceRequest`adalah pembungkus tingkat atas untuk membuat serial muatan eksportir. OpenTelemetry Itu berisikan satu atau beberapa `ResourceMetrics`.

```
message ExportMetricsServiceRequest {
  // An array of ResourceMetrics.
  // For data coming from a single resource this array will typically contain one
  // element. Intermediary nodes (such as OpenTelemetry Collector) that receive
  // data from multiple origins typically batch the data before forwarding further and
  // in that case this array will contain multiple elements.
  repeated opentelemetry.proto.metrics.v1.ResourceMetrics resource_metrics = 1;
}
```

`ResourceMetrics`adalah objek tingkat atas untuk mewakili MetricData objek. 

```
// A collection of InstrumentationLibraryMetrics from a Resource.
message ResourceMetrics {
  // The resource for the metrics in this message.
  // If this field is not set then no resource info is known.
  opentelemetry.proto.resource.v1.Resource resource = 1;
  
  // A list of metrics that originate from a resource.
  repeated InstrumentationLibraryMetrics instrumentation_library_metrics = 2;
}
```

**objek Sumber Daya**

Objek `Resource` adalah sebuah objek pasangan-nilai yang berisikan beberapa informasi tentang sumber daya yang dihasilkan metrik. Untuk metrik yang dibuat oleh AWS, struktur data yang berisikan Amazon Resource Name (ARN) dari sumber daya yang berkaitan dengan metrik, seperti instans EC2 atau bucket S3.

Objek `Resource` berisikan atribut yang disebut `attributes`, yang menyimpan daftar pasangan nilai-kunci.
+ `cloud.account.id` berisi ID akun
+ `cloud.region` berisi Wilayah
+ `aws.exporter.arn` berisi ARN stream metrik
+ `cloud.provider` selalu `aws`.

```
// Resource information.
message Resource {
  // Set of labels that describe the resource.
  repeated opentelemetry.proto.common.v1.KeyValue attributes = 1;
  
  // dropped_attributes_count is the number of dropped attributes. If the value is 0,
  // no attributes were dropped.
  uint32 dropped_attributes_count = 2;
}
```

** InstrumentationLibraryMetrics Objeknya**

Bidang instrumentation\$1library tidak akan diisi. Kami hanya akan mengisi bidang metrik yang kami ekspor.

```
// A collection of Metrics produced by an InstrumentationLibrary.
message InstrumentationLibraryMetrics {
  // The instrumentation library information for the metrics in this message.
  // If this field is not set then no library info is known.
  opentelemetry.proto.common.v1.InstrumentationLibrary instrumentation_library = 1;
  // A list of metrics that originate from an instrumentation library.
  repeated Metric metrics = 2;
}
```

**objek Metrik**

Objek metrik berisikan kolom data `DoubleSummary` yang berisi daftar `DoubleSummaryDataPoint`.

```
message Metric {
  // name of the metric, including its DNS name prefix. It must be unique.
  string name = 1;

  // description of the metric, which can be used in documentation.
  string description = 2;

  // unit in which the metric value is reported. Follows the format
  // described by http://unitsofmeasure.org/ucum.html.
  string unit = 3;

  oneof data {
    IntGauge int_gauge = 4;
    DoubleGauge double_gauge = 5;
    IntSum int_sum = 6;
    DoubleSum double_sum = 7;
    IntHistogram int_histogram = 8;
    DoubleHistogram double_histogram = 9;
    DoubleSummary double_summary = 11;
  }
}

message DoubleSummary {
  repeated DoubleSummaryDataPoint data_points = 1;
}
```

** MetricDescriptor Objeknya**

 MetricDescriptor Objek berisi metadata. Untuk informasi selengkapnya, lihat [metrics.proto](https://github.com/open-telemetry/opentelemetry-proto/blob/main/opentelemetry/proto/metrics/v1/metrics.proto#L110) di. GitHub

Untuk aliran metrik, MetricDescriptor memiliki konten berikut:
+ `name` akan menjadi `amazonaws.com/metric_namespace/metric_name`
+ `description` akan menjadi kosong.
+ `unit` akan diisi dengan pemetaan unit datum metrik ke varian yang sensitif huruf besar-kecil dari kode Terpadu untuk Unit Ukur. Untuk informasi selengkapnya, silakan lihat [Terjemahan dengan format OpenTelemetry 0.7.0 di CloudWatch](CloudWatch-metric-streams-formats-opentelemetry-translation.md) dan [Kode Terpadu Untuk Unit Ukur](https://ucum.org/ucum.html).
+ `type` akan menjadi `SUMMARY`.

** DoubleSummaryDataPoint Objeknya**

 DoubleSummaryDataPoint Objek berisi nilai titik data tunggal dalam deret waktu dalam DoubleSummary metrik.

```
// DoubleSummaryDataPoint is a single data point in a timeseries that describes the
// time-varying values of a Summary metric.
message DoubleSummaryDataPoint {
  // The set of labels that uniquely identify this timeseries.
  repeated opentelemetry.proto.common.v1.StringKeyValue labels = 1;

  // start_time_unix_nano is the last time when the aggregation value was reset
  // to "zero". For some metric types this is ignored, see data types for more
  // details.
  //
  // The aggregation value is over the time interval (start_time_unix_nano,
  // time_unix_nano].
  //
  // Value is UNIX Epoch time in nanoseconds since 00:00:00 UTC on 1 January
  // 1970.
  //
  // Value of 0 indicates that the timestamp is unspecified. In that case the
  // timestamp may be decided by the backend.
  fixed64 start_time_unix_nano = 2;

  // time_unix_nano is the moment when this aggregation value was reported.
  //
  // Value is UNIX Epoch time in nanoseconds since 00:00:00 UTC on 1 January
  // 1970.
  fixed64 time_unix_nano = 3;

  // count is the number of values in the population. Must be non-negative.
  fixed64 count = 4;

  // sum of the values in the population. If count is zero then this field
  // must be zero.
  double sum = 5;

  // Represents the value at a given quantile of a distribution.
  //
  // To record Min and Max values following conventions are used:
  // - The 1.0 quantile is equivalent to the maximum value observed.
  // - The 0.0 quantile is equivalent to the minimum value observed.
  message ValueAtQuantile {
    // The quantile of a distribution. Must be in the interval
    // [0.0, 1.0].
    double quantile = 1;

    // The value at the given quantile of a distribution.
    double value = 2;
  }

  // (Optional) list of values at different quantiles of the distribution calculated
  // from the current snapshot. The quantiles must be strictly increasing.
  repeated ValueAtQuantile quantile_values = 6;
}
```

Untuk informasi selengkapnya, lihat [Terjemahan dengan format OpenTelemetry 0.7.0 di CloudWatch](CloudWatch-metric-streams-formats-opentelemetry-translation.md).

# Terjemahan dengan format OpenTelemetry 0.7.0 di CloudWatch
<a name="CloudWatch-metric-streams-formats-opentelemetry-translation"></a>

CloudWatch melakukan beberapa transformasi untuk memasukkan CloudWatch data ke dalam OpenTelemetry format.

**Menerjemahkan namespace, nama metrik, dan dimensi**

Atribut ini adalah pasangan nilai-kunci yang dikodekan ke dalam pemetaan.
+ Satu pasangan berisikan namespace metrik
+ Satu pasangan berisikan name metrik
+ Untuk setiap dimensi, CloudWatch simpan pasangan berikut: `metricDatum.Dimensions[i].Name, metricDatum.Dimensions[i].Value`

**Menerjemahkan Rata-rata, Jumlah, SampleCount, Min dan Maks**

Titik data Ringkasan memungkinkan CloudWatch untuk mengekspor semua statistik ini menggunakan satu titik data.
+ `startTimeUnixNano`berisi CloudWatch `startTime`
+ `timeUnixNano`berisi CloudWatch `endTime`
+ `sum` berisi statistik Jumlah.
+ `count`berisi SampleCount statistik.
+ `quantile_values` berisi dua objek `valueAtQuantile.value`:
  + `valueAtQuantile.quantile = 0.0` dengan `valueAtQuantile.value = Min value`
  + `valueAtQuantile.quantile = 0.99` dengan `valueAtQuantile.value = p99 value`
  + `valueAtQuantile.quantile = 0.999` dengan `valueAtQuantile.value = p99.9 value`
  + `valueAtQuantile.quantile = 1.0` dengan `valueAtQuantile.value = Max value`

Sumber daya yang menggunakan aliran metrik dapat menghitung statistik Rata-rata sebagai **Jumlah/ SampleCount**.

**Menerjemahkan unit-unit**

CloudWatch unit dipetakan ke varian peka huruf besar/kecil dari kode Terpadu untuk Satuan Ukuran, seperti yang ditunjukkan pada tabel berikut. Untuk informasi selengkapnya, silakan lihat [Kode Terpadu Untuk Unit Ukur](https://ucum.org/ucum.html).


| CloudWatch | OpenTelemetry | 
| --- | --- | 
|  Detik |  d | 
|  Detik atau Detik |  d | 
|  Mikrodetik |  µs | 
|  Milidetik |  ms | 
|  Byte |  Oleh | 
|  Kilobyte |  kBy | 
|  Megabyte |  MBy | 
|  Gigabyte |  GBy | 
|  Terabyte |  TBy | 
|  Bit |  bit | 
|  Kilobit |  kbit | 
|  Megabit |  MBit | 
|  Gigabit |  GBit | 
|  Terabit |  TBit | 
|  Persen |  % | 
|  Hitungan |  \$1Count\$1 | 
|  Tidak ada |  1 | 

Unit yang digabungkan dengan garis miring dipetakan dengan menerapkan OpenTelemetry konversi kedua unit. Misalnya, Bytes/Second dipetakan ke BY/s.

# Cara mengurai pesan OpenTelemetry 0.7.0
<a name="CloudWatch-metric-streams-formats-opentelemetry-parse"></a>

Bagian ini memberikan informasi untuk membantu Anda memulai dengan parsing OpenTelemetry 0.7.0.

Pertama, Anda harus mendapatkan binding khusus bahasa, yang memungkinkan Anda mengurai pesan OpenTelemetry 0.7.0 dalam bahasa pilihan Anda.

**Untuk mendapatkan ikatan bahasa tertentu**
+ Langkah-langkahnya tergantung pada bahasa pilihan Anda.
  + [Untuk menggunakan Java, tambahkan dependensi Maven berikut ke proyek Java Anda: Java >> 0.14.1OpenTelemetry .](https://mvnrepository.com/artifact/io.opentelemetry/opentelemetry-proto/0.14.1)
  + Untuk menggunakan bahasa lain, ikuti langkah-langkah ini:

    1. Pastikan bahasa Anda didukung dengan memeriksa daftar di [Menghasilkan Kelas Anda](https://developers.google.com/protocol-buffers/docs/proto3#generating).

    1. Instal alat kompilasi Protobuf dengan mengikuti langkah-langkah di [Unduh Buffer Protokol](https://developers.google.com/protocol-buffers/docs/downloads).

    1. Unduh ProtoBuf definisi OpenTelemetry 0.7.0 pada rilis [v0.7.0](https://github.com/open-telemetry/opentelemetry-proto/releases/tag/v0.7.0). 

    1. Konfirmasikan bahwa Anda berada di folder root dari definisi OpenTelemetry 0.7.0 ProtoBuf yang diunduh. Kemudian buatlah folder `src` lalu jalankan perintah untuk menghasilkan ikatan bahasa khusus. Untuk informasi selengkapnya, silakan lihat [Menghasilkan Kelas Anda](https://developers.google.com/protocol-buffers/docs/proto3#generating). 

       Berikut ini adalah contoh untuk cara menghasilkan ikatan Javascript.

       ```
       protoc --proto_path=./ --js_out=import_style=commonjs,binary:src \
       opentelemetry/proto/common/v1/common.proto \
       opentelemetry/proto/resource/v1/resource.proto \
       opentelemetry/proto/metrics/v1/metrics.proto \
       opentelemetry/proto/collector/metrics/v1/metrics_service.proto
       ```

Bagian berikut mencakup contoh-contoh menggunakan ikatan bahasa khusus yang dapat Anda bangun dengan menggunakan petunjuk sebelumnya.

**Java**

```
package com.example;

import io.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest;

import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

public class MyOpenTelemetryParser {

    public List<ExportMetricsServiceRequest> parse(InputStream inputStream) throws IOException {
        List<ExportMetricsServiceRequest> result = new ArrayList<>();

        ExportMetricsServiceRequest request;
        /* A Kinesis record can contain multiple `ExportMetricsServiceRequest`
           records, each of them starting with a header with an
           UnsignedVarInt32 indicating the record length in bytes:
            ------ --------------------------- ------ -----------------------
           |UINT32|ExportMetricsServiceRequest|UINT32|pExportMetricsService...
            ------ --------------------------- ------ -----------------------
         */
        while ((request = ExportMetricsServiceRequest.parseDelimitedFrom(inputStream)) != null) {
            // Do whatever we want with the parsed message
            result.add(request);
        }

        return result;
    }
}
```

**Javascript**

Contoh ini mengasumsikan bahwa folder akar dengan ikatan yang dihasilkan adalah `./`

Argumen data dari fungsi `parseRecord` dapat menjadi salah satu dari jenis berikut:
+ `Uint8Array` ini adalah optimal
+ `Buffer` menjadi optimal di bawah simpul
+ `Array.number` adalah bilangan bulat 8-bit

```
const pb = require('google-protobuf')
const pbMetrics =
    require('./opentelemetry/proto/collector/metrics/v1/metrics_service_pb')

function parseRecord(data) {
    const result = []

    // Loop until we've read all the data from the buffer
    while (data.length) {
        /* A Kinesis record can contain multiple `ExportMetricsServiceRequest`
           records, each of them starting with a header with an
           UnsignedVarInt32 indicating the record length in bytes:
            ------ --------------------------- ------ -----------------------
           |UINT32|ExportMetricsServiceRequest|UINT32|ExportMetricsService...
            ------ --------------------------- ------ -----------------------
         */
        const reader = new pb.BinaryReader(data)
        const messageLength = reader.decoder_.readUnsignedVarint32()
        const messageFrom = reader.decoder_.cursor_
        const messageTo = messageFrom + messageLength

        // Extract the current `ExportMetricsServiceRequest` message to parse
        const message = data.subarray(messageFrom, messageTo)

        // Parse the current message using the ProtoBuf library
        const parsed =
            pbMetrics.ExportMetricsServiceRequest.deserializeBinary(message)

        // Do whatever we want with the parsed message
        result.push(parsed.toObject())

        // Shrink the remaining buffer, removing the already parsed data
        data = data.subarray(messageTo)
    }

    return result
}
```

**Python**

Anda harus membaca anti pembatas `var-int` oleh Anda sendiri atau gunakan metode internal `_VarintBytes(size)` dan `_DecodeVarint32(buffer, position)`. Hal ini akan mengembalikan posisi dalam buffer langsung menyusul ukuran bita. Bagian baca akan mengonstruksi buffer baru yang terbatas pada pembacaan byte pesan saja. 

```
size = my_metric.ByteSize()
f.write(_VarintBytes(size))
f.write(my_metric.SerializeToString())
msg_len, new_pos = _DecodeVarint32(buf, 0)
msg_buf = buf[new_pos:new_pos+msg_len]
request = metrics_service_pb.ExportMetricsServiceRequest()
request.ParseFromString(msg_buf)
```

**Kunjungi**

Gunakan `Buffer.DecodeMessage()`.

**C\$1**

Gunakan `CodedInputStream`. Kelas ini dapat membaca pesan dengan ukuran tak terbatas.

**C\$1\$1**

Fungsi yang dijelaskan dalam `google/protobuf/util/delimited_message_util.h` dapat membaca pesan yang dibatasi ukuran.

**Bahasa lain**

Untuk bahasa lain, silakan lihat [Unduh Protokol Buffer](https://developers.google.com/protocol-buffers/docs/downloads).

Saat menerapkan alat pengurai, pertimbangkan bahwa sebuah catatan Kinesis dapat berisikan beberapa pesan Protokol Buffer `ExportMetricsServiceRequest` , masing-masing dimulai dengan sebuah header dengan sebuah `UnsignedVarInt32` yang menunjukkan panjang catatan dalam bita.

# Memecahkan masalah aliran metrik di CloudWatch
<a name="CloudWatch-metric-streams-troubleshoot"></a>

Jika Anda tidak melihat data metrik di tujuan akhir Anda, periksa hal berikut:
+ Pastikan stream metrik dalam status berjalan. Untuk langkah-langkah tentang cara menggunakan CloudWatch konsol untuk melakukan ini, lihat[Operasi dan pemeliharaan stream metrik](CloudWatch-metric-streams-operation.md).
+ Metrik yang diterbitkan lebih dari dua hari di masa lalu tidak dialirkan. Untuk menentukan apakah metrik tertentu akan dialirkan, buat grafik metrik di CloudWatch konsol dan periksa berapa umur titik data terakhir yang terlihat. Jika lebih dari dua hari di masa lalu, maka itu tidak akan diambil oleh aliran metrik.
+ Periksa metrik yang dihasilkan oleh stream metrik. Di CloudWatch konsol, di bawah **Metrik**, lihat **AWS/CloudWatch/MetricStreams**namespace untuk **MetricUpdate**, **TotalMetricUpdate**, dan metrik. **PublishErrorRate**
+ Jika **PublishErrorRate**metrik tinggi, konfirmasikan bahwa tujuan yang digunakan oleh aliran pengiriman Firehose ada dan bahwa peran IAM yang ditentukan dalam konfigurasi aliran metrik memberikan izin utama `CloudWatch` layanan untuk menulis ke metrik. Untuk informasi selengkapnya, lihat [Kepercayaan antara CloudWatch dan Firehose](CloudWatch-metric-streams-trustpolicy.md).
+ Periksa apakah aliran pengiriman Firehose memiliki izin untuk menulis ke tujuan akhir.
+ Di Firehose console, lihat aliran pengiriman Firehose yang digunakan untuk aliran metrik dan periksa tab **Monitoring** untuk melihat apakah aliran pengiriman Firehose menerima data.
+ Konfirmasikan bahwa Anda telah mengonfigurasi aliran pengiriman Firehose dengan detail yang benar.
+ Periksa log atau metrik yang tersedia untuk tujuan akhir yang dituliskan oleh aliran pengiriman Firehose.
+ Untuk mendapatkan informasi lebih rinci, aktifkan CloudWatch log kesalahan Log pada aliran pengiriman Firehose. Untuk informasi selengkapnya, lihat [Memantau Amazon Data Firehose Menggunakan CloudWatch ](https://docs.aws.amazon.com/firehose/latest/dev/monitoring-with-cloudwatch-logs.html) Log.

**catatan**  
Setelah titik data untuk metrik dan stempel waktu tertentu dikirim, titik tersebut tidak akan dikirim lagi meskipun nilai titik data berubah nanti.