

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

# CloudWatch RUM
<a name="CloudWatch-RUM"></a>

Dengan CloudWatch RUM, Anda dapat melakukan pemantauan pengguna nyata untuk mengumpulkan dan melihat data sisi klien tentang kinerja web dan aplikasi seluler Anda dari sesi pengguna aktual dalam waktu dekat. Untuk aplikasi Web, Anda dapat menganalisis waktu muat halaman, kesalahan sisi klien, dan perilaku pengguna. Untuk aplikasi Mobile, Anda dapat memantau waktu muat layar, waktu peluncuran aplikasi, kesalahan jaringan, crash, dan masalah khusus platform seperti Android Application Not Responding (ANR) dan iOS App Hang. Ketika Anda melihat data ini, Anda dapat melihat semuanya digabungkan bersama-sama dan juga melihat rincian berdasarkan jenis perangkat, sistem operasi, dan karakteristik lain dari penggunaan aplikasi Anda.

Anda dapat menggunakan data yang dikumpulkan untuk mengidentifikasi dan men-debug masalah kinerja sisi klien dengan cepat. CloudWatch RUM membantu Anda memvisualisasikan anomali dalam kinerja aplikasi Anda dan menemukan data debugging yang relevan seperti pesan kesalahan, jejak tumpukan, dan sesi pengguna. Anda juga dapat menggunakan RUM untuk memahami rentang dampak pengguna akhir termasuk jumlah pengguna, geolokasi, dan yang browsers/devices digunakan.

Data pengguna akhir yang Anda kumpulkan untuk CloudWatch RUM disimpan selama 30 hari dan kemudian dihapus secara otomatis. Jika Anda ingin menyimpan data telemetri RUM untuk waktu yang lebih lama, Anda dapat memilih agar monitor aplikasi mengirim salinan telemetri ke CloudWatch Log di akun Anda. Kemudian, Anda dapat menyesuaikan periode retensi untuk grup log tersebut.

Untuk menggunakan RUM, Anda membuat *monitor aplikasi* dan memberikan beberapa informasi. RUM menghasilkan cuplikan kode yang dapat Anda gunakan untuk menambahkan injeksi ketergantungan ke dalam aplikasi Anda. Cuplikan menarik kode klien RUM sesuai kebutuhan. Klien RUM menangkap data dari persentase sesi pengguna aplikasi Anda, yang ditampilkan di dasbor pra-bangun. Anda dapat menentukan berapa persentase sesi pengguna untuk mengumpulkan data.

 CloudWatch RUM terintegrasi dengan [Application Signals](CloudWatch-Application-Monitoring-Sections.md), yang dapat menemukan dan memantau layanan aplikasi, klien, kenari Synthetics, dan dependensi layanan Anda. Gunakan Sinyal Aplikasi untuk melihat daftar atau peta visual layanan Anda, melihat metrik kesehatan berdasarkan sasaran tingkat layanan Anda (SLOs), dan menelusuri untuk melihat jejak X-Ray yang berkorelasi untuk pemecahan masalah yang lebih rinci. Untuk melihat permintaan halaman klien RUM di Sinyal Aplikasi, aktifkan [penelusuran aktif X-Ray saat membuat monitor aplikasi](CloudWatch-RUM-get-started-create-app-monitor.md). Untuk aplikasi web, Anda juga dapat mengaktifkan ini dengan [mengkonfigurasi klien web RUM secara manual](CloudWatch-RUM-configure-client.md). Klien RUM Anda ditampilkan pada [Peta Aplikasi](ServiceMap.md) yang terhubung ke layanan Anda, dan di halaman [detail Layanan](ServiceDetail.md) dari layanan yang mereka panggil. 

Klien RUM adalah open source. Untuk informasi selengkapnya, lihat [klien web CloudWatch RUM](https://github.com/aws-observability/aws-rum-web), SDK [Android AWS Distro for OpenTelemetry (ADOT), dan SDK iOS AWS](https://github.com/aws-observability/aws-otel-android) [Distro for ( OpenTelemetry ADOT](https://github.com/aws-observability/aws-otel-swift)).

**Harga RUM** 

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

**Ketersediaan Wilayah**

CloudWatch RUM saat ini tersedia di Wilayah berikut:
+ Timur AS (N. Virginia)
+ AS Timur (Ohio)
+ AS Barat (California Utara)
+ AS Barat (Oregon)
+ Africa (Cape Town)
+ AWS GovCloud (AS-Timur)
+ AWS GovCloud (AS-Barat)
+ Asia Pasifik (Mumbai)
+ Asia Pasifik (Hyderabad)
+ Asia Pacific (Melbourne)
+ Asia Pasifik (Osaka)
+ Asia Pasifik (Seoul)
+ Asia Pasifik (Singapura)
+ Asia Pasifik (Sydney)
+ Asia Pasifik (Jakarta)
+ Asia Pasifik (Malaysia)
+ Asia Pasifik (Thailand)
+ Asia Pasifik (Tokyo)
+ Asia Pacific (Hong Kong)
+ Kanada (Pusat)
+ Eropa (Frankfurt)
+ Eropa (Irlandia)
+ Eropa (London)
+ Eropa (Milan)
+ Eropa (Paris)
+ Eropa (Spanyol)
+ Eropa (Stockholm)
+ Europe (Zurich)
+ AWS European Sovereign Cloud (Jerman)
+ Timur Tengah (Bahrain)
+ Middle East (UAE)
+ Meksiko (Tengah)
+ Amerika Selatan (Sao Paulo)
+ Israel (Tel Aviv)
+ Kanada Barat (Calgary)

# Siapkan aplikasi seluler untuk menggunakan CloudWatch RUM
<a name="CloudWatch-RUM-web-mobile"></a>

Untuk memantau aplikasi seluler, Anda membuat monitor aplikasi, mengonfigurasinya untuk platform seluler, dan mengintegrasikan AWS Distro for OpenTelemetry (ADOT) SDK ke dalam aplikasi Anda. Mobile RUM menggunakan OpenTelemetry Protokol (OTLP) untuk mengirim data telemetri ke titik akhir OTLP khusus. 

## Untuk membuat monitor aplikasi untuk platform seluler
<a name="mobile-platform-app-monitor"></a>

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

1. Di panel navigasi, pilih **Sinyal Aplikasi**, **RUM**.

1. Pilih **Tambahkan monitor aplikasi**.

1. Untuk **nama monitor Aplikasi**, masukkan nama yang akan digunakan untuk mengidentifikasi monitor aplikasi ini dalam konsol CloudWatch RUM.

1. Pilih **Android** atau **iOS** sebagai platformnya.

1. Di bawah **Penyimpanan data**, Anda dapat memilih untuk menyimpan salinan peristiwa log RUM OTEL dan rentang di CloudWatch Log dan mengonfigurasi retensi. Secara default, grup CloudWatch log Log menyimpan data selama 30 hari. Anda dapat menyesuaikan periode retensi di konsol CloudWatch Log.

1. (Opsional) Di bawah **Kebijakan Berbasis Sumber Daya**, pilih untuk menambahkan kebijakan berbasis sumber daya untuk mengontrol siapa yang dapat mengirim permintaan ke monitor aplikasi Anda. Jika Anda memilih **Buat kebijakan publik, kebijakan** sumber daya akan dilampirkan yang memungkinkan siapa pun mengirim permintaan ke monitor aplikasi Anda. Untuk informasi selengkapnya, lihat [Menggunakan kebijakan berbasis sumber daya dengan RUM CloudWatch](CloudWatch-RUM-resource-policies.md).

1. Untuk mengaktifkan penelusuran AWS X-Ray dari sesi pengguna sampel, pilih **Penelusuran aktif dan pilih Lacak** layanan **saya dengan** X-Ray. AWS 

   Jika dipilih, rentang OTEL yang dihasilkan selama sesi pengguna sampel dilacak. Anda kemudian dapat melihat jejak dan bentang dari sesi ini di dasbor RUM, dan peta jejak X-Ray dan halaman detail pelacakan. Sesi pengguna ini juga akan muncul sebagai halaman klien di Sinyal Aplikasi setelah Anda mengaktifkannya untuk aplikasi Anda.

1. (Opsional) Untuk menambahkan tag ke monitor aplikasi:

   1. Pilih **Tag**, **Tambahkan tag baru**.

   1. Untuk **Key**, masukkan nama untuk tag. Anda dapat menambahkan nilai opsional di **Nilai**.

   1. Untuk menambahkan tanda lainnya, silakan pilih **Tambahkan tanda baru** lagi.

   Untuk informasi selengkapnya, lihat [Menandai AWS Sumber Daya](https://docs.aws.amazon.com/tagging/latest/userguide/tagging-resources.html) di *Panduan Pengguna AWS Penandaan dan Editor Tag*.

1. Pilih **Tambahkan monitor aplikasi**.

1. Di bagian **kode Contoh**, Anda dapat menyalin cuplikan kode untuk ditambahkan ke aplikasi Anda. Menggunakan AWS Distro for OpenTelemetry (ADOT) SDK, Anda dapat memilih antara **Instrumentasi Manual** untuk mengonfigurasi pemantauan dalam kode aplikasi Anda, atau Instrumentasi Kode Nol yang **memerlukan perubahan konfigurasi minimal**.

   Untuk aplikasi Android dan iOS, Zero-Code Instrumentation adalah opsi paling sederhana karena secara otomatis menginisialisasi pengumpulan telemetri menggunakan file konfigurasi. Instrumentasi Manual memberi Anda kontrol lebih besar atas proses inisialisasi dan konfigurasi.

1. Pilih **Salin** atau **Unduh**, lalu pilih **Selesai**.

### Pengaturan Aplikasi iOS
<a name="CloudWatch-RUM-ios-setup"></a>

Untuk aplikasi iOS, integrasikan [AWS Distro for OpenTelemetry (ADOT) iOS SDK](https://github.com/aws-observability/aws-otel-swift) untuk mengaktifkan pemantauan RUM. SDK mendukung iOS 16 dan versi yang lebih baru dan menyediakan instrumentasi otomatis untuk skenario kinerja umum.

### Pengaturan Aplikasi Android
<a name="CloudWatch-RUM-android-setup"></a>

Untuk aplikasi Android, integrasikan [AWS Distro for OpenTelemetry (ADOT) Android SDK](https://github.com/aws-observability/aws-otel-android) untuk mengaktifkan pemantauan RUM. SDK menyediakan instrumentasi otomatis dan mendukung model otentikasi yang ditandatangani dan tidak ditandatangani.

## Otentikasi dan Keamanan
<a name="CloudWatch-RUM-authentication"></a>

Mobile RUM mendukung model otentikasi fleksibel seperti yang didefinisikan dalam model mereka SDKs.
+ Aplikasi iOS menggunakan [AWS Distro for OpenTelemetry (ADOT) iOS SDK](https://github.com/aws-observability/aws-otel-swift). 
+ Aplikasi Android menggunakan [AWS Distro for OpenTelemetry (ADOT) Android](https://github.com/aws-observability/aws-otel-android) SDK.

# Kebijakan IAM untuk menggunakan CloudWatch RUM
<a name="CloudWatch-RUM-permissions"></a>

Untuk dapat mengelola CloudWatch RUM sepenuhnya, Anda harus masuk sebagai pengguna IAM atau peran yang memiliki kebijakan **AmazonCloudWatchRUMFullAccess** IAM. Selain itu, Anda mungkin memerlukan kebijakan atau izin lain:
+ Untuk membuat monitor aplikasi yang membuat kumpulan identitas Amazon Cognito baru untuk otorisasi, Anda harus memiliki peran **Admin** IAM atau kebijakan IAM. **AdministratorAccess**
+ Untuk membuat monitor aplikasi yang mengirimkan data ke CloudWatch Log, Anda harus login ke peran atau kebijakan IAM yang memiliki izin berikut:

  ```
  {
      "Effect": "Allow",
      "Action": [
          "logs:PutResourcePolicy"
      ],
      "Resource": [
          "*"
      ]
  }
  ```
+ Untuk mengaktifkan peta JavaScript sumber di monitor aplikasi, Anda harus mengunggah file peta sumber ke bucket Amazon S3. Peran atau kebijakan IAM Anda memerlukan izin Amazon S3 khusus yang memungkinkan pembuatan bucket Amazon S3, menyetel kebijakan bucket, dan mengelola file di bucket. Untuk keamanan, lingkup izin ini ke sumber daya tertentu. Kebijakan contoh di bawah ini membatasi akses ke bucket yang berisi `rum` namanya dan menggunakan kunci `aws:ResourceAccount` kondisi untuk membatasi izin hanya ke akun utama.

  ```
  {
      "Sid": "AllowS3BucketCreationAndListing",
      "Effect": "Allow",
      "Action": [
          "s3:CreateBucket",
          "s3:ListAllMyBuckets"
      ],
      "Resource": "arn:aws:s3:::*",
      "Condition": {
          "StringEquals": {
              "aws:ResourceAccount": "${aws:PrincipalAccount}"
          }
      }
  },
  {
      "Sid": "AllowS3BucketActions",
      "Effect": "Allow",
      "Action": [
          "s3:GetBucketLocation",
          "s3:ListBucket"
      ],
      "Resource": "arn:aws:s3:::*rum*",
      "Condition": {
          "StringEquals": {
              "aws:ResourceAccount": "${aws:PrincipalAccount}"
          }
      }
  },
  {
      "Sid": "AllowS3BucketPolicyActions",
      "Effect": "Allow",
      "Action": [
          "s3:PutBucketPolicy",
          "s3:GetBucketPolicy"
      ],
      "Resource": "arn:aws:s3:::*rum*",
      "Condition": {
          "StringEquals": {
              "aws:ResourceAccount": "${aws:PrincipalAccount}"
          }
      }
  },
  {
      "Sid": "AllowS3ObjectActions",
      "Effect": "Allow",
      "Action": [
          "s3:GetObject",
          "s3:PutObject",
          "s3:DeleteObject",
          "s3:AbortMultipartUpload"
      ],
      "Resource": "arn:aws:s3:::*rum*",
      "Condition": {
          "StringEquals": {
              "aws:ResourceAccount": "${aws:PrincipalAccount}"
          }
      }
  }
  ```
+ Untuk menggunakan AWS KMS kunci Anda sendiri untuk enkripsi sisi server di bucket peta sumber, peran atau kebijakan IAM Anda akan memerlukan AWS KMS izin khusus yang memungkinkan pembuatan kunci, memperbarui kebijakan kunci, menggunakan kunci dengan AWS KMS Amazon S3, dan menyetel konfigurasi enkripsi bucket Amazon S3 Anda. Untuk keamanan, lingkup izin ini untuk tujuan tertentu. Contoh di bawah ini membatasi akses ke kunci untuk wilayah dan accountID tertentu dan memiliki batasan S3 yang serupa seperti contoh di atas. 

  ```
  {
      "Sid": "AllowKMSKeyCreation",
      "Effect": "Allow",
      "Action": [
          "kms:CreateKey",
          "kms:CreateAlias"
      ],
      "Resource": "*"
  },
  {
      "Sid": "KMSReadPermissions",
      "Effect": "Allow",
      "Action": [
          "kms:ListAliases"
      ],
      "Resource": "*"
  },
  {
      "Sid": "AllowUpdatingKeyPolicy",
      "Effect": "Allow",
      "Action": [
          "kms:PutKeyPolicy",
          "kms:GetKeyPolicy",
          "kms:ListKeyPolicies"
      ],
      "Resource": "arn:aws:kms:REGION:ACCOUNT_ID:key/*"
  },
  {
      "Sid": "AllowUseOfKMSKeyForS3",
      "Effect": "Allow",
      "Action": [
          "kms:DescribeKey",
          "kms:Encrypt",
          "kms:Decrypt",
          "kms:GenerateDataKey"
      ],
      "Resource": "arn:aws:kms:REGION:ACCOUNT_ID:key/*"
  },
  {
      "Sid": "AllowS3EncryptionConfiguration",
      "Effect": "Allow",
      "Action": [
          "s3:PutEncryptionConfiguration",
          "s3:GetEncryptionConfiguration"
      ],
      "Resource": "arn:aws:s3:::*rum*",
      "Condition": {
          "StringEquals": {
              "aws:ResourceAccount": "${aws:PrincipalAccount}"
          }
      }
  }
  ```

Pengguna lain yang perlu melihat data CloudWatch RUM tetapi tidak perlu membuat sumber daya CloudWatch RUM, dapat diberikan **AmazonCloudWatchRUMReadOnlyAccess**kebijakan.

# Siapkan aplikasi web untuk menggunakan CloudWatch RUM
<a name="CloudWatch-RUM-get-started"></a>

Gunakan langkah-langkah di bagian ini untuk mengatur aplikasi web Anda untuk mulai menggunakan CloudWatch RUM untuk mengumpulkan data kinerja dari sesi pengguna nyata.

**Topics**
+ [Otorisasi aplikasi web Anda untuk mengirim data AWS](CloudWatch-RUM-get-started-authorization.md)
+ [Membuat monitor aplikasi CloudWatch RUM untuk aplikasi web](CloudWatch-RUM-get-started-create-app-monitor.md)
+ [Memodifikasi cuplikan kode untuk mengkonfigurasi klien web CloudWatch RUM (opsional)](CloudWatch-RUM-modify-snippet.md)
+ [Memasukkan cuplikan kode monitor CloudWatch aplikasi ke dalam aplikasi Anda](CloudWatch-RUM-get-started-insert-code-snippet.md)
+ [Menguji penyiapan monitor CloudWatch aplikasi Anda dengan membuat peristiwa pengguna](CloudWatch-RUM-get-started-generate-data.md)

# Otorisasi aplikasi web Anda untuk mengirim data AWS
<a name="CloudWatch-RUM-get-started-authorization"></a>

Anda memiliki empat opsi untuk mengatur otentikasi data:
+ Gunakan Amazon Cognito dan biarkan CloudWatch RUM membuat kumpulan identitas Amazon Cognito baru untuk aplikasi. Metode ini membutuhkan usaha paling sedikit untuk mengatur.

  Kolam identitas akan berisi identitas yang tidak diautentikasi. Hal ini memungkinkan klien web CloudWatch RUM untuk mengirim data ke CloudWatch RUM tanpa mengautentikasi pengguna aplikasi.

  Kolam identitas Amazon Cognito memiliki peran IAM terlampir. Identitas Amazon Cognito yang tidak diautentikasi memungkinkan klien web untuk mengambil peran IAM yang berwenang untuk mengirim data ke RUM. CloudWatch 
+ Gunakan Amazon Cognito untuk otentikasi. Jika Anda menggunakan ini, Anda dapat menggunakan kumpulan identitas Amazon Cognito yang ada atau membuat yang baru untuk digunakan dengan monitor aplikasi ini. Jika Anda menggunakan kumpulan identitas yang ada, Anda juga harus memodifikasi peran IAM yang dilampirkan ke kumpulan identitas. Gunakan opsi ini untuk kumpulan identitas yang mendukung pengguna yang tidak diautentikasi. Anda dapat menggunakan kumpulan identitas hanya dari Wilayah yang sama.
+ Gunakan autentikasi dari penyedia identitas yang sudah ada yang telah Anda atur. Dalam hal ini, Anda harus mendapatkan kredensial dari penyedia identitas dan aplikasi Anda harus meneruskan kredensial ini ke klien web RUM.

  Gunakan opsi ini untuk kumpulan identitas yang hanya mendukung pengguna yang diautentikasi.
+ Gunakan kebijakan berbasis sumber daya untuk mengelola akses ke monitor aplikasi Anda. Ini termasuk kemampuan untuk mengirim permintaan yang tidak diautentikasi ke CloudWatch RUM tanpa AWS kredensil. Untuk mempelajari lebih lanjut tentang kebijakan berbasis sumber daya dan RUM, lihat[Menggunakan kebijakan berbasis sumber daya dengan RUM CloudWatch](CloudWatch-RUM-resource-policies.md).

Bagian berikut mencakup detail lebih lanjut tentang opsi ini.

## Gunakan kolam identitas Amazon Cognito yang ada
<a name="CloudWatch-RUM-get-started-authorization-existingcognito"></a>

Jika Anda memilih untuk menggunakan kumpulan identitas Amazon Cognito, Anda menentukan kumpulan identitas saat menambahkan aplikasi ke CloudWatch RUM. Kolam harus mendukung pengaktifan ke identitas yang tidak diautentikasi. Anda dapat menggunakan kumpulan identitas hanya dari Wilayah yang sama.

Anda juga harus menambahkan izin berikut ke kebijakan IAM yang dilampirkan ke peran IAM yang terkait dengan kolam identitas ini.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        { 
            "Effect": "Allow",
            "Action": [
                "rum:PutRumEvents"
            ],
            "Resource": "arn:aws:rum:us-east-1:123456789012:appmonitor/app monitor name" 
        }
    ]
}
```

------

Amazon Cognito kemudian akan mengirim token keamanan yang diperlukan untuk memungkinkan aplikasi Anda mengakses CloudWatch RUM.

## Penyedia pihak ketiga
<a name="CloudWatch-RUM-get-started-authorization-thirdparty"></a>

Jika memilih untuk menggunakan autentikasi privat dari penyedia pihak ketiga, Anda harus mendapatkan kredensial dari penyedia identitas dan meneruskannya ke AWS. Cara terbaik untuk melakukannya adalah dengan menggunakan *vendor token keamanan*. Anda dapat menggunakan vendor token keamanan apa pun, termasuk Amazon Cognito dengan. AWS Security Token Service Untuk informasi selengkapnya AWS STS, lihat [Selamat Datang di Referensi AWS Security Token Service API](https://docs.aws.amazon.com/STS/latest/APIReference/welcome.html). 

Jika Anda ingin menggunakan Amazon Cognito sebagai vendor token dalam skenario ini, Anda dapat mengonfigurasi Amazon Cognito agar berfungsi dengan penyedia autentikasi. Untuk informasi selengkapnya, silakan lihat [Memulai Kolam Identitas Amazon Cognito (Gabungan Identitas)](https://docs.aws.amazon.com/cognito/latest/developerguide/getting-started-with-identity-pools.html).

Setelah mengonfigurasi Amazon Cognito untuk bekerja dengan penyedia identitas Anda, Anda juga perlu melakukan hal berikut ini:
+ Buat peran IAM dengan izin sebagai berikut. Aplikasi Anda akan menggunakan peran ini untuk mengakses AWS.

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

****  

  ```
  { 
   "Version":"2012-10-17",		 	 	 
   "Statement": [ 
     { 
       "Effect": "Allow",
       "Action": "rum:PutRumEvents",
       "Resource": "arn:aws:rum:us-east-2:123456789012:appmonitor/AppMonitorName"
     }
   ]
  }
  ```

------
+ Tambahkan yang berikut ini ke aplikasi Anda agar dapat meneruskan kredensi dari penyedia Anda ke CloudWatch RUM. Masukkan baris sehingga berjalan setelah pengguna masuk ke aplikasi Anda dan aplikasi telah menerima kredensial yang akan digunakan untuk mengakses AWS.

  ```
  cwr('setAwsCredentials', {/* Credentials or CredentialProvider */});
  ```

[Untuk informasi selengkapnya tentang penyedia kredensi di AWS JavaScript SDK, lihat [Menyetel kredensional di browser web di](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-credentials-browser.html) panduan pengembang v3 untuk SDK for JavaScript, [Menyetel kredensional di browser web di panduan pengembang v2 untuk SDK for, dan @aws -sdk/credential-providers](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/setting-credentials-browser.html). JavaScript](https://www.npmjs.com/package/@aws-sdk/credential-providers) 

Anda juga dapat menggunakan SDK untuk klien web CloudWatch RUM untuk mengkonfigurasi metode otentikasi klien web. Untuk informasi selengkapnya tentang SDK klien web, lihat SDK [klien web CloudWatch RUM](https://github.com/aws-observability/aws-rum-web). 

# Membuat monitor aplikasi CloudWatch RUM untuk aplikasi web
<a name="CloudWatch-RUM-get-started-create-app-monitor"></a>

Untuk mulai menggunakan CloudWatch RUM dengan aplikasi Anda, Anda membuat *monitor aplikasi*. Saat monitor aplikasi dibuat, RUM menghasilkan cuplikan kode untuk Anda tempelkan ke aplikasi Anda. Cuplikan menarik kode klien RUM. Klien RUM menangkap data dari sesi pengguna aplikasi Anda dan mengirimkannya ke RUM.

## Untuk membuat monitor aplikasi untuk platform web
<a name="web-platform-app-monitor"></a>

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

1. Di panel navigasi, pilih **Sinyal Aplikasi**, **RUM**.

1. Pilih **Tambahkan monitor aplikasi**.

1. Untuk **nama monitor Aplikasi**, masukkan nama yang akan digunakan untuk mengidentifikasi monitor aplikasi ini dalam konsol CloudWatch RUM.

1. Pilih **Web** sebagai platformnya.

1. Untuk **daftar domain Aplikasi**, masukkan nama domain terdaftar di mana aplikasi Anda memiliki otoritas administratif. Anda juga dapat menggunakan karakter wildcard `*` untuk mengizinkan sub-domain atau domain tingkat atas (misalnya, \$1.amazon.com, amazon.\$1, \$1.amazon.\$1).

1. Untuk **Mengonfigurasi pengumpulan data RUM**, tentukan apakah Anda ingin monitor aplikasi mengumpulkan masing-masing hal berikut:
   + **Telemetri performa** – Mengumpulkan informasi tentang pemuatan halaman dan waktu muat sumber daya
   + **JavaScript kesalahan** — Mengumpulkan informasi tentang kesalahan yang tidak tertangani yang ditimbulkan oleh JavaScript aplikasi Anda

     Anda dapat memilih **Unminify jejak tumpukan JavaScript kesalahan untuk** men-debug kesalahan yang tidak diperkecil. JavaScript Untuk menggunakan fitur ini, unggah file peta sumber Anda ke bucket atau folder Amazon S3 dan berikan URI Amazon S3. Setelah diaktifkan, RUM akan menggunakan peta sumber ini dan memperkaya peristiwa JavaScript kesalahan dengan menambahkan jejak tumpukan yang tidak diperkecil. Perhatikan bahwa setelah mengaktifkan, fitur ini hanya memproses peristiwa JavaScript kesalahan baru dan tidak dapat digunakan pada data yang dikumpulkan sebelumnya. Untuk informasi selengkapnya, lihat [Mengaktifkan unminifikasi jejak tumpukan kesalahan JavaScript](CloudWatch-RUM-JavaScriptStackTraceSourceMaps.md).
   + **Kesalahan HTTP** – Mengumpulkan informasi tentang kesalahan HTTP yang dilemparkan oleh aplikasi Anda

   Memilih opsi ini memberikan informasi lebih lanjut tentang aplikasi Anda, tetapi juga menghasilkan lebih banyak acara CloudWatch RUM dan dengan demikian menimbulkan lebih banyak biaya.

   Jika Anda tidak memilih salah satu dari ini, monitor aplikasi masih mengumpulkan acara dan halaman mulai sesi IDs sehingga Anda dapat melihat berapa banyak pengguna yang menggunakan aplikasi Anda, termasuk kerusakan berdasarkan jenis dan versi sistem operasi, jenis dan versi browser, jenis perangkat, dan lokasi.

1. Pilih **Periksa opsi ini untuk memungkinkan Klien Web CloudWatch RUM mengatur cookie** jika Anda ingin dapat mengumpulkan pengguna IDs dan sesi IDs dari sesi pengguna sampel. Pengguna dihasilkan IDs secara acak oleh RUM. Untuk informasi selengkapnya, lihat [CloudWatch Cookie klien web RUM (atau teknologi serupa)](CloudWatch-RUM-privacy.md#CloudWatch-RUM-cookies).

1. Untuk **Sampel sesi**, masukkan persentase sesi pengguna yang akan digunakan untuk mengumpulkan data RUM. Bawaannya adalah 100%. Mengurangi angka ini memberi Anda lebih sedikit data, tetapi mengurangi biaya Anda. Untuk informasi selengkapnya tentang harga RUM, silakan lihat [Harga RUM](CloudWatch-RUM.md#RUMpricing).

1. Data pengguna akhir yang Anda kumpulkan untuk CloudWatch RUM disimpan selama 30 hari dan kemudian dihapus. Jika Anda ingin menyimpan salinan peristiwa RUM di CloudWatch Log dan mengonfigurasi berapa lama untuk menyimpan salinan ini, pilih **Periksa opsi ini untuk menyimpan data telemetri aplikasi Anda di akun CloudWatch Log Anda di bawah Penyimpanan** **data**. Secara default, grup CloudWatch log Log menyimpan data selama 30 hari. Anda dapat menyesuaikan periode retensi di konsol CloudWatch Log.

1. (Opsional) Pilih untuk menambahkan kebijakan berbasis sumber daya ke monitor aplikasi Anda untuk mengontrol siapa yang dapat mengirim `PutRumEvents` permintaan ke monitor aplikasi Anda. Jika Anda memilih **Buat kebijakan publik, kebijakan** sumber daya akan dilampirkan ke monitor aplikasi Anda yang memungkinkan siapa pun mengirim `PutRumEvents` permintaan ke monitor aplikasi Anda. Untuk informasi lebih lanjut tentang metode ini, lihat[Menggunakan kebijakan berbasis sumber daya dengan RUM CloudWatch](CloudWatch-RUM-resource-policies.md).

1. Jika Anda melampirkan kebijakan berbasis sumber daya pada langkah sebelumnya, Anda tidak perlu menandatangani permintaan ke CloudWatch RUM dengan AWS kredensil, dan Anda dapat melewati pengaturan otorisasi. Jika tidak, untuk **Otorisasi**, tentukan apakah akan menggunakan kumpulan identitas Amazon Cognito baru atau yang sudah ada atau gunakan penyedia identitas yang berbeda. Membuat kolam identitas baru merupakan opsi paling sederhana yang tidak memerlukan langkah pengaturan lainnya. Untuk informasi lebih lanjut, lihat[Otorisasi aplikasi web Anda untuk mengirim data AWS](CloudWatch-RUM-get-started-authorization.md).

   Membuat kolam identitas Amazon Cognito baru memerlukan izin administratif. Untuk informasi selengkapnya, lihat [Kebijakan IAM untuk menggunakan CloudWatch RUM](CloudWatch-RUM-permissions.md).

1. (Opsional) Secara default, ketika Anda menambahkan cuplikan kode RUM ke aplikasi Anda, klien web menyuntikkan JavaScript tag untuk memantau penggunaan ke dalam kode HTML semua halaman aplikasi Anda. Untuk mengubah ini, pilih **Konfigurasi halaman** dan kemudian pilih **Sertakan hanya halaman ini** atau **Kecualikan halaman ini**. Kemudian, tentukan halaman yang akan disertakan atau dikecualikan. Untuk menentukan halaman yang akan disertakan atau dikecualikan, masukkan yang lengkap URLs. Untuk menentukan halaman tambahan, pilih **Tambahkan URL**.

1. Untuk mengaktifkan AWS X-Ray penelusuran sesi pengguna yang diambil sampelnya oleh monitor aplikasi, pilih **Penelusuran aktif dan pilih Lacak** layanan **saya** dengan. AWS X-Ray

   Jika Anda memilih ini, permintaan `XMLHttpRequest` dan `fetch` yang dibuat selama sesi pengguna yang diambil sampelnya oleh monitor aplikasi akan dilacak. Anda kemudian dapat melihat jejak dan segmen dari sesi pengguna ini di dasbor RUM, dan peta jejak X-Ray dan halaman detail pelacakan. Sesi pengguna ini juga akan muncul sebagai halaman klien di [Sinyal Aplikasi](CloudWatch-Application-Monitoring-Sections.md) setelah Anda mengaktifkannya untuk aplikasi Anda.

   Dengan membuat perubahan konfigurasi tambahan pada klien web CloudWatch RUM, Anda dapat menambahkan header jejak X-Ray ke permintaan HTTP untuk mengaktifkan end-to-end penelusuran sesi pengguna melalui layanan AWS terkelola hilir. Untuk informasi selengkapnya, lihat [Mengaktifkan penelusuran X-Ray end-to-end](CloudWatch-RUM-modify-snippet.md#CloudWatch-RUM-xraytraceheader).

1. (Opsional) Untuk menambahkan tanda ke monitor aplikasi, pilih **Tag**, **Tambahkan tanda baru**.

   Kemudian, untuk **Kunci**, masukkan nama untuk tanda tersebut. Anda dapat menambahkan sebuah nilai opsional untuk tanda di **Nilai**. 

   Untuk menambahkan tanda lainnya, silakan pilih **Tambahkan tanda baru** lagi.

   Untuk informasi selengkapnya, silakan lihat [Pemberian Tanda Sumber Daya AWS](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html).

1. Pilih **Tambahkan monitor aplikasi**.

1. Di bagian **kode Sampel**, Anda dapat menyalin potongan kode yang akan digunakan untuk ditambahkan ke aplikasi Anda. Kami menyarankan Anda memilih **JavaScript**atau **TypeScript**dan menggunakan NPM untuk menginstal klien web CloudWatch RUM sebagai JavaScript modul.

   Atau, Anda dapat memilih **HTML** untuk menggunakan jaringan pengiriman konten (CDN) untuk menginstal klien web CloudWatch RUM. Kerugian menggunakan CDN adalah bahwa klien web sering diblokir oleh pemblokir iklan.

1. Pilih **Salin** atau **Unduh**, lalu pilih **Selesai**.

# Memodifikasi cuplikan kode untuk mengkonfigurasi klien web CloudWatch RUM (opsional)
<a name="CloudWatch-RUM-modify-snippet"></a>

Anda dapat memodifikasi potongan kode sebelum memasukkannya ke dalam aplikasi Anda, untuk mengaktifkan atau menonaktifkan beberapa opsi. Untuk informasi selengkapnya, lihat [dokumentasi klien web CloudWatch RUM.](https://github.com/aws-observability/aws-rum-web/blob/main/docs/cdn_installation.md)

Ada empat opsi konfigurasi yang harus Anda ketahui, seperti yang dibahas di bagian ini.

## Mencegah pengumpulan sumber daya URLs yang mungkin berisi informasi pribadi
<a name="CloudWatch-RUM-resourceURL"></a>

Secara default, klien web CloudWatch RUM dikonfigurasi untuk merekam URLs sumber daya yang diunduh oleh aplikasi. Sumber daya ini termasuk file HTML, gambar, file CSS, JavaScript file, dan sebagainya. Untuk beberapa aplikasi, URLs mungkin berisi informasi identitas pribadi (PII).

Jika ini adalah kasus untuk aplikasi Anda, kami sangat menyarankan agar Anda menonaktifkan pengumpulan sumber daya URLs dengan menyetel `recordResourceUrl: false` dalam konfigurasi potongan kode, sebelum memasukkannya ke dalam aplikasi Anda.

## Merekam tampilan halaman secara manual
<a name="CloudWatch-RUM-pageload"></a>

Secara default, klien web mencatat tampilan halaman saat halaman pertama kali dimuat dan saat API riwayat browser dipanggil. ID halaman default adalah `window.location.pathname`. Namun demikian, dalam beberapa kasus Anda mungkin ingin mengganti perilaku ini dan instrumen aplikasi untuk merekam tampilan halaman secara terprogram. Melakukannya memberi Anda kendali atas ID halaman dan kapan direkam. Sebagai contoh, pertimbangkan aplikasi web yang memiliki URI dengan pengenal variabel, seperti `/entity/123` atau `/entity/456`. Secara default, CloudWatch RUM menghasilkan peristiwa tampilan halaman untuk setiap URI dengan ID halaman berbeda yang cocok dengan nama jalur, tetapi Anda mungkin ingin mengelompokkannya dengan ID halaman yang sama. Untuk mencapai hal ini, nonaktifkan otomatisasi tampilan halaman klien web menggunakan konfigurasi `disableAutoPageView`, dan gunakan perintah `recordPageView` untuk mengatur ID halaman yang diinginkan. Untuk informasi selengkapnya, lihat [Konfigurasi Khusus Aplikasi](https://github.com/aws-observability/aws-rum-web/blob/main/docs/configuration.md) pada. GitHub

**Contoh skrip tersemat:**

```
cwr('recordPageView', { pageId: 'entityPageId' });
```

**JavaScript contoh modul:**

```
awsRum.recordPageView({ pageId: 'entityPageId' });
```

## Mengaktifkan penelusuran X-Ray end-to-end
<a name="CloudWatch-RUM-xraytraceheader"></a>

Saat Anda membuat monitor aplikasi, memilih **Lacak layanan saya dengan AWS X-Ray** memungkinkan pelacakan permintaan `XMLHttpRequest` dan `fetch` yang dibuat selama sesi pengguna yang diambil sampelnya oleh monitor aplikasi. Anda kemudian dapat melihat jejak dari permintaan HTTP ini di dasbor CloudWatch RUM, dan halaman detail X-Ray Trace Map dan Trace.

Secara default, jejak sisi klien ini tidak terhubung ke jejak sisi server hilir. Untuk menghubungkan jejak sisi klien ke jejak sisi server dan mengaktifkan end-to-end penelusuran, atur `addXRayTraceIdHeader` opsi ke klien web. `true` Hal ini menyebabkan klien web CloudWatch RUM menambahkan header jejak X-Ray ke permintaan HTTP.

Blok kode berikut menunjukkan contoh penambahan jejak sisi klien. Beberapa opsi konfigurasi dihilangkan dari sampel ini untuk kemudahan pembacaan.

```
<script>
    (function(n,i,v,r,s,c,u,x,z){...})(
        'cwr',
        '00000000-0000-0000-0000-000000000000',
        '1.0.0',
        'us-west-2',
        'https://client.rum.us-east-1.amazonaws.com/1.0.2/cwr.js',
        {
            enableXRay: true,
            telemetries: [ 
                'errors', 
                'performance',
                [ 'http', { addXRayTraceIdHeader: true } ]
            ]
        }
    );
</script>
```

**Awas**  
Mengonfigurasi klien web CloudWatch RUM untuk menambahkan header jejak X-Ray ke permintaan HTTP dapat menyebabkan berbagi sumber daya lintas asal (CORS) gagal atau membatalkan tanda tangan permintaan jika permintaan ditandatangani dengan SigV4. Untuk informasi selengkapnya, lihat [dokumentasi klien web CloudWatch RUM](https://github.com/aws-observability/aws-rum-web/blob/main/docs/cdn_installation.md). Kami sangat menyarankan Anda menguji aplikasi Anda sebelum menambahkan header jejak sinar X sisi klien di lingkungan produksi.

Untuk informasi selengkapnya, lihat [dokumentasi klien web CloudWatch RUM](https://github.com/aws-observability/aws-rum-web/blob/main/docs/cdn_installation.md#http)

## Mengirim permintaan yang tidak ditandatangani ke CloudWatch RUM
<a name="CloudWatch-RUM-unsigned"></a>

Secara default, klien web RUM menandatangani semua permintaan yang dikirim ke RUM. Jika Anda mengatur `signing:false` konfigurasi klien, permintaan akan dibatalkan saat dikirim ke CloudWatch RUM. Data akan dicerna ke RUM hanya jika ada kebijakan berbasis sumber daya publik yang dilampirkan ke monitor aplikasi. Untuk informasi selengkapnya, lihat [Menggunakan kebijakan berbasis sumber daya dengan RUM CloudWatch](CloudWatch-RUM-resource-policies.md).

# Memasukkan cuplikan kode monitor CloudWatch aplikasi ke dalam aplikasi Anda
<a name="CloudWatch-RUM-get-started-insert-code-snippet"></a>

Berikutnya, Anda memasukkan potongan kode yang Anda buat di bagian sebelumnya ke dalam aplikasi Anda.

**Awas**  
Klien web, yang diunduh dan dikonfigurasi oleh snippet kode, menggunakan cookie (atau teknologi serupa) untuk membantu Anda mengumpulkan data pengguna akhir. Sebelum Anda memasukkan potongan kode, silakan lihat [Memfilter berdasarkan atribut metadata di konsolPerlindungan data dan privasi data dengan CloudWatch RUM](CloudWatch-RUM-privacy.md).

Jika Anda tidak memiliki potongan kode yang dibuat sebelumnya, Anda dapat menemukannya dengan mengikuti petunjuk di [Bagaimana cara saya menemukan potongan kode yang sudah saya buat?](CloudWatch-RUM-find-code-snippet.md).

**Untuk memasukkan cuplikan kode CloudWatch RUM ke dalam aplikasi Anda**

1. Masukkan potongan kode yang Anda salin atau unduh di bagian sebelumnya di dalam elemen `<head>` aplikasi Anda. Masukkan potongan tersebut sebelum elemen `<body>` atau tanda `<script>` lainnya.

   Berikut ini contoh potongan kode yang dihasilkan:

   ```
   <script>
   (function (n, i, v, r, s, c, x, z) {
       x = window.AwsRumClient = {q: [], n: n, i: i, v: v, r: r, c: c};
       window[n] = function (c, p) {
           x.q.push({c: c, p: p});
       };
       z = document.createElement('script');
       z.async = true;
       z.src = s;
       document.head.insertBefore(z, document.getElementsByTagName('script')[0]);
   })('cwr',
       '194a1c89-87d8-41a3-9d1b-5c5cd3dafbd0',
       '1.0.0',
       'us-east-2',
       'https://client.rum.us-east-1.amazonaws.com/1.0.2/cwr.js',
       {
           sessionSampleRate: 1,
           identityPoolId: "us-east-2:c90ef0ac-e3b8-4d1a-b313-7e73cfd21443",
           endpoint: "https://dataplane.rum.us-east-2.amazonaws.com",
           telemetries: ["performance", "errors", "http"],
           allowCookies: true,
           enableXRay: false
       });
   </script>
   ```

1. Jika aplikasi Anda adalah aplikasi web multipage, Anda harus mengulangi langkah 1 untuk setiap halaman HTML yang ingin Anda sertakan dalam pengumpulan data.

# Menguji penyiapan monitor CloudWatch aplikasi Anda dengan membuat peristiwa pengguna
<a name="CloudWatch-RUM-get-started-generate-data"></a>

Setelah Anda memasukkan potongan kode dan aplikasi Anda yang diperbarui berjalan, Anda dapat mengujinya dengan membuat peristiwa pengguna secara manual. Untuk menguji ini, kami menyarankan Anda melakukan hal berikut. Pengujian ini menimbulkan biaya CloudWatch RUM standar.
+ Menavigasi antar halaman dalam aplikasi web Anda.
+ Buat beberapa sesi pengguna, menggunakan browser dan perangkat yang berbeda.
+ Buat permintaan.
+ Menyebabkan JavaScript kesalahan.

Setelah Anda membuat beberapa acara, lihat di dasbor CloudWatch RUM. Untuk informasi selengkapnya, lihat [Melihat dasbor CloudWatch RUM](CloudWatch-RUM-view-data.md).

Data dari sesi pengguna mungkin membutuhkan waktu hingga 15 menit untuk muncul di dasbor.

Jika tidak melihat data 15 menit setelah Anda membuat peristiwa dalam aplikasi, silakan lihat [Pemecahan Masalah CloudWatch RUM](CloudWatch-RUM-troubleshooting.md).

# Menggunakan kebijakan berbasis sumber daya dengan RUM CloudWatch
<a name="CloudWatch-RUM-resource-policies"></a>

Anda dapat melampirkan kebijakan sumber daya ke monitor aplikasi CloudWatch RUM. Secara default, monitor aplikasi tidak memiliki kebijakan sumber daya yang dilampirkan padanya. CloudWatch Kebijakan berbasis sumber daya RUM tidak mendukung akses lintas akun.

Untuk mempelajari lebih lanjut tentang kebijakan AWS sumber daya, lihat Kebijakan [berbasis identitas dan kebijakan berbasis](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html) sumber daya.

Untuk mempelajari lebih lanjut tentang bagaimana kebijakan sumber daya dan kebijakan identitas dievaluasi, lihat [Logika evaluasi kebijakan](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html).

Untuk mempelajari lebih lanjut tentang tata bahasa kebijakan IAM, lihat referensi elemen kebijakan [IAM JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html).

## Tindakan yang didukung
<a name="RUM-resource-policies-actions"></a>

Kebijakan berbasis sumber daya pada monitor aplikasi mendukung tindakan tersebut. `rum:PutRumEvents`

## Contoh kebijakan untuk digunakan dengan CloudWatch RUM
<a name="RUM-resource-policies-samples"></a>

Contoh berikut memungkinkan siapa saja untuk menulis data ke monitor aplikasi Anda, termasuk yang tidak memiliki kredensi SigV4.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "rum:PutRumEvents",
            "Resource": "arn:aws:rum:us-east-1:123456789012:appmonitor/app monitor name",
            "Principal": "*"
        }
    ]
}
```

------

Anda dapat mengubah kebijakan untuk memblokir alamat IP sumber tertentu dengan menggunakan tombol `aws:SourceIp` kondisi. Dengan contoh ini, Menggunakan kebijakan ini, PutRumEvents dari alamat IP yang tercantum akan ditolak. Semua permintaan lain dari alamat IP lainnya akan diterima. Untuk informasi selengkapnya tentang kunci kondisi ini, lihat [Properti jaringan](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-network-properties) di Panduan Pengguna IAM.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "rum:PutRumEvents",
            "Resource": "arn:aws:rum:us-east-1:123456789012:appmonitor/AppMonitorName",
            "Principal": "*"
        },
        {
            "Effect": "Deny",
            "Action": "rum:PutRumEvents",
            "Resource": "arn:aws:rum:us-east-1:123456789012:appmonitor/AppMonitorName",
            "Principal": "*",
            "Condition": {
                "NotIpAddress": {
                "aws:SourceIp": "198.51.100.252"
                }
            }
        }
    ]
}
```

------

Selain itu, Anda dapat menggunakan kunci konteks `rum:alias` layanan untuk mengontrol permintaan mana yang diterima. 

Untuk monitor aplikasi web, Anda harus mengonfigurasi klien web Anda untuk mengirim `Alias` menggunakan klien web CloudWatch RUM versi 1.20 atau yang lebih baru, seperti yang dijelaskan dalam Konfigurasi [Khusus Aplikasi](https://github.com/aws-observability/aws-rum-web/blob/main/docs/configuration.md) pada. GitHub

Untuk monitor aplikasi seluler, Anda harus mengonfigurasi instrumentasi sesuai dengan SDK.
+ Aplikasi iOS menggunakan [AWS Distro for OpenTelemetry (ADOT) iOS SDK](https://github.com/aws-observability/aws-otel-swift). 
+ Aplikasi Android menggunakan [AWS Distro for OpenTelemetry (ADOT) Android](https://github.com/aws-observability/aws-otel-android) SDK.

Dalam contoh berikut, kebijakan sumber daya mengharuskan permintaan harus berisi salah satu `alias1` atau `alias2` agar acara dapat diterima.

```
    {
    "Version":"2012-10-17",                   
    "Statement": [
        {
            "Sid": "AllowRUMPutEvents",
            "Effect": "Allow",
            "Action": "rum:PutRumEvents",
            "Resource": "arn:aws:rum:us-east-1:123456789012:appmonitor/MyApplication",
            "Principal": "*",
            "Condition": {
                "StringEquals": {
                    "rum:alias":["alias1", "alias2"]
                }
            }
        }
    ]
}
```

# Mengkonfigurasi klien web CloudWatch RUM
<a name="CloudWatch-RUM-configure-client"></a>

Aplikasi Anda dapat menggunakan salah satu cuplikan kode yang dihasilkan oleh CloudWatch RUM untuk menginstal klien web CloudWatch RUM. Cuplikan yang dihasilkan mendukung dua metode instalasi: sebagai JavaScript modul melalui NPM, atau dari jaringan pengiriman konten (CDN). Untuk performa terbaik, kami menyarankan menggunakan metode instalasi NPM. Untuk informasi selengkapnya tentang menggunakan metode ini, lihat [Menginstal sebagai JavaScript Modul](https://github.com/aws-observability/aws-rum-web/blob/main/docs/npm_installation.md).

Jika Anda menggunakan opsi instalasi CDN, pemblokir iklan mungkin memblokir CDN default yang disediakan oleh RUM. CloudWatch Ini menonaktifkan pemantauan aplikasi untuk pengguna yang melakukan instalasi pemblokir iklan. Karena itu, kami menyarankan Anda menggunakan CDN default hanya untuk orientasi awal dengan CloudWatch RUM. Untuk informasi selengkapnya tentang cara mengurangi masalah ini, silakan lihat [Instrumen aplikasi](https://github.com/aws-observability/aws-rum-web/blob/main/docs/cdn_installation.md#instrument-the-application).

Potongan kode berada di tanda `<head>` file HTML dan melakukan instalasi klien web dengan mengunduh klien web, dan kemudian mengonfigurasi klien web untuk aplikasi yang dipantau. Potongan ini adalah fungsi yang mengeksekusi diri sendiri yang terlihat mirip dengan yang berikut ini. Dalam contoh ini, tubuh fungsi potongan kode telah dihilangkan untuk kemudahaan pembacaan.

```
<script>
(function(n,i,v,r,s,c,u,x,z){...})(
'cwr',
'00000000-0000-0000-0000-000000000000',
'1.0.0',
'us-west-2',
'https://client.rum.us-east-1.amazonaws.com/1.0.2/cwr.js',
{ /* Configuration Options Here */ }
);
<script>
```

## Argumen
<a name="CloudWatch-RUM-configure-client-arguments"></a>

Potongan kode menerima enam argumen:
+ Namespace untuk menjalankan perintah pada klien web, seperti `'cwr'`
+ ID monitor aplikasi, seperti `'00000000-0000-0000-0000-000000000000'`
+ Versi aplikasi, seperti `'1.0.0'`
+  AWS Wilayah monitor aplikasi, seperti `'us-west-2'`
+ URL dari klien web, seperti `'https://client.rum.us-east-1.amazonaws.com/1.0.2/cwr.js'`
+ Opsi konfigurasi khusus aplikasi. Untuk informasi selengkapnya, silakan lihat bagian berikut ini.

## Mengabaikan kesalahan
<a name="CloudWatch-RUM-configure-ignore-errors"></a>

Klien web CloudWatch RUM mendengarkan semua jenis kesalahan yang terjadi dalam aplikasi Anda. Jika aplikasi Anda memancarkan JavaScript kesalahan yang tidak ingin Anda lihat di dasbor CloudWatch RUM, Anda dapat mengonfigurasi klien web CloudWatch RUM untuk menyaring kesalahan ini sehingga Anda hanya melihat peristiwa kesalahan yang relevan di dasbor CloudWatch RUM. Misalnya, Anda mungkin memilih untuk tidak melihat beberapa JavaScript kesalahan di dasbor karena Anda telah mengidentifikasi perbaikan untuk mereka dan volume kesalahan ini menutupi kesalahan lainnya. Anda mungkin juga ingin mengabaikan kesalahan yang tidak dapat Anda perbaiki karena dimiliki oleh perpustakaan yang dimiliki oleh pihak ketiga.

Untuk informasi selengkapnya tentang cara instrumen klien web untuk memfilter JavaScript kesalahan tertentu, lihat contoh di [Kesalahan](https://github.com/aws-observability/aws-rum-web/blob/main/docs/configuration.md#errors) dalam dokumentasi Github klien web.

## Opsi konfigurasi
<a name="CloudWatch-RUM-configure-options"></a>

Untuk informasi tentang opsi konfigurasi yang tersedia untuk klien web CloudWatch RUM, lihat [dokumentasi klien web CloudWatch RUM](https://github.com/aws-observability/aws-rum-web/blob/main/docs/configuration.md)

# Mengaktifkan unminifikasi jejak tumpukan kesalahan JavaScript
<a name="CloudWatch-RUM-JavaScriptStackTraceSourceMaps"></a>

Ketika kode JavaScript sumber aplikasi web Anda diperkecil, jejak tumpukan kesalahan bisa sulit dibaca. Anda dapat mengaktifkan unminifikasi ke jejak tumpukan dengan mengunggah peta sumber Anda ke Amazon S3. CloudWatch RUM akan mengambil peta sumber untuk memetakan nomor baris dan kolom dalam kode sumber yang diperkecil kembali ke kode sumber asli yang tidak diperkecil. Ini akan meningkatkan keterbacaan jejak tumpukan kesalahan Anda dan membantu mengidentifikasi lokasi kesalahan dalam kode sumber asli. 

## Persyaratan dan sintaks
<a name="CloudWatch-RUM-RequirementsJavaScriptStackTraceSourceMaps"></a>

Peta sumber sangat penting untuk men-debug dan melacak masalah dalam aplikasi web Anda di berbagai rilis. Pastikan bahwa setiap rilis aplikasi web memiliki peta sumber yang unik. Setiap rilis harus memiliki releaseId uniknya sendiri. ReleaseId harus berupa string antara 1 dan 200 karakter dan hanya dapat berisi huruf, angka, garis bawah, tanda hubung, titik dua, garis miring, dan titik. Untuk menambahkan metadata `releaseId` as ke acara RUM, konfigurasikan klien web CloudWatch RUM.

Peta sumber diharapkan menjadi file JSON biasa mengikuti struktur yang ditentukan oleh spesifikasi [Source Map V3](https://sourcemaps.info/spec.html). Bidang yang diperlukan adalah:`version`,`file`,`sources`,`names`, dan`mappings`.

Pastikan ukuran setiap peta sumber tidak melebihi batas 50 MB. Selain itu, layanan RUM hanya akan mengambil hingga 50 MB peta sumber per jejak tumpukan. Jika perlu, bagi kode sumber menjadi beberapa bagian yang lebih kecil. Untuk informasi selengkapnya, lihat [Pemisahan Kode dengan WebpackJS](https://webpack.js.org/guides/code-splitting/).

**Topics**
+ [Persyaratan dan sintaks](#CloudWatch-RUM-RequirementsJavaScriptStackTraceSourceMaps)
+ [Konfigurasikan kebijakan sumber daya bucket Amazon S3 Anda untuk mengizinkan akses layanan RUM](#CloudWatch-RUM-ConfigureS3)
+ [Unggah peta sumber](#CloudWatch-RUM-UploadSourceMaps)
+ [Konfigurasikan releaseId di klien web CloudWatch RUM Anda](#CloudWatch-RUM-ConfigureRumID)
+ [Mengaktifkan monitor aplikasi CloudWatch RUM untuk menghapus jejak tumpukan JavaScript](#CloudWatch-RUM-unminifyjavascript)
+ [Melihat jejak tumpukan yang tidak diperkecil di konsol RUM](#CloudWatch-RUM-viewunminifiedstacktraces)
+ [Melihat jejak tumpukan yang tidak diperkecil di Log CloudWatch](#CloudWatch-RUM-viewunminifiedstacktracesCWL)
+ [Pemecahan masalah peta sumber](#CloudWatch-RUM-troubleshootsourcemaps)

## Konfigurasikan kebijakan sumber daya bucket Amazon S3 Anda untuk mengizinkan akses layanan RUM
<a name="CloudWatch-RUM-ConfigureS3"></a>

Pastikan bucket Amazon S3 Anda berada di wilayah yang sama dengan RUM AppMonitor Anda. Konfigurasikan bucket Amazon S3 Anda untuk mengizinkan akses layanan RUM untuk mengambil file peta sumber. Sertakan kunci konteks kondisi `aws:SourceAccount` global `aws:SourceArn` dan untuk membatasi izin layanan ke sumber daya. Ini adalah cara paling efektif untuk melindungi dari [masalah deputi yang membingungkan](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html).

Contoh berikut menunjukkan bagaimana Anda dapat menggunakan `aws:SourceArn` dan kunci konteks kondisi `aws:SourceAccount` global di Amazon S3 untuk mencegah masalah wakil yang membingungkan.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "RUM Service S3 Read Permissions",
            "Effect": "Allow",
            "Principal": {
                "Service": "rum.amazonaws.com"
            },
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::BUCKET_NAME",
                "arn:aws:s3:::BUCKET_NAME/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "ACCOUNT_ID",
                    "aws:SourceArn": "arn:aws:rum:REGION:ACCOUNT_ID:appmonitor/APP_MONITOR_NAME"
                }
            }
        }
    ]
}
```

------

Jika Anda menggunakan AWS KMS kunci untuk mengenkripsi data, pastikan kebijakan sumber daya kunci dikonfigurasi serupa untuk menyertakan kunci konteks kondisi `aws:SourceAccount` global `aws:SourceArn` dan untuk memberikan akses layanan RUM untuk menggunakan kunci untuk mengambil file peta sumber.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "RUM Service KMS Read Permissions",
            "Effect": "Allow",
            "Principal": {
                "Service": "rum.amazonaws.com"
            },
            "Action": "kms:Decrypt",
            "Resource": "arn:aws:kms:us-east-1:123456789012:key/KEY_ID",
            "Condition": {
                "StringEquals": {
                "aws:SourceAccount": "123456789012",
    "aws:SourceArn": "arn:aws:rum:us-east-1:123456789012/APP_MONITOR_NAME"
                }
            }
        }
    ]
}
```

------

## Unggah peta sumber
<a name="CloudWatch-RUM-UploadSourceMaps"></a>

Konfigurasikan JavaScript bundel Anda untuk menghasilkan peta sumber selama minifikasi. Saat Anda membangun aplikasi, bundel akan membuat direktori (misalnya, dist) yang berisi JavaScript file yang diperkecil dan peta sumber yang sesuai. Lihat di bawah untuk contoh.

```
./dist
    |-index.d5a07c87.js
    |-index.d5a07c87.js.map
```

Unggah file peta sumber ke bucket Amazon S3 Anda. File harus ditempatkan di folder dengan nama `releaseId` sebagai. Misalnya, jika nama bucket saya adalah `my-application-source-maps` dan 2.0.0, maka file peta sumber terletak di lokasi berikut: `releaseId`

```
my-application-source-maps
    |-2.0.0
        |-index.d5a07c87.js.map
```

Untuk mengotomatiskan pengunggahan peta sumber Anda, Anda dapat membuat skrip bash berikut dan menjalankannya sebagai bagian dari proses pembuatan.

```
#!/bin/bash
# Ensure the script is called with required arguments
if [ "$#" -ne 2 ]; then
 echo "Usage: $0 S3_BUCKET_NAME RELEASE_ID"
 exit 1
fi

# Read arguments
S3_BUCKET="$1"
RELEASE_ID="$2"

# Set the path to your build directory
BUILD_DIR="./dist"


# Upload all .map files recursively
 if aws s3 cp "$BUILD_DIR" "s3://$S3_BUCKET/$RELEASE_ID/" --recursive --exclude "*" --include "*.map"; then
    echo "Successfully uploaded all source map files"
else
    echo "Failed to upload source map files"
fi
```

## Konfigurasikan releaseId di klien web CloudWatch RUM Anda
<a name="CloudWatch-RUM-ConfigureRumID"></a>

CloudWatch RUM menggunakan konfigurasi `releaseId` untuk menentukan folder untuk mengambil file peta sumber. Beri nama `releaseId` yang sama dengan folder file peta sumber Anda. Jika Anda menggunakan skrip bash yang disediakan di atas atau yang serupa, yang `releaseId` dikonfigurasi dalam skrip harus sama dengan yang dikonfigurasi di klien web CloudWatch RUM Anda. Anda harus menggunakan versi 1.21.0 atau yang lebih baru dari klien web CloudWatch RUM.

```
import { AwsRum, AwsRumConfig } from "aws-rum-web";

try {
    const config: AwsRumConfig = {
        sessionSampleRate: 1,
        endpoint: "https://dataplane.rum.us-west-2.amazonaws.com",
        telemetries: ["performance", "errors", "http"],
        allowCookies: true,
        releaseId: "RELEASE_ID", //Add this
    };

    const APPLICATION_ID: string = "APP_MONITOR_ID";
    const APPLICATION_VERSION: string = "1.0.0";
    const APPLICATION_REGION: string = "us-west-2";

    new AwsRum(APPLICATION_ID, APPLICATION_VERSION, APPLICATION_REGION, config);
} catch (error: any) {
    // Ignore errors thrown during CloudWatch RUM web client initialization
}
```

## Mengaktifkan monitor aplikasi CloudWatch RUM untuk menghapus jejak tumpukan JavaScript
<a name="CloudWatch-RUM-unminifyjavascript"></a>

Untuk mengecilkan jejak JavaScript tumpukan, setel SourceMap status monitor aplikasi ke. `ENABLED` Berikan URI Amazon S3 ke bucket atau folder yang berisi semua peta sumber untuk monitor aplikasi Anda.

Saat menyimpan peta sumber secara langsung di bucket utama (bukan di subfolder), maka URI Amazon S3 harus diformat sebagai. `Amazon S3://BUCKET_NAME` Dalam hal ini, file peta sumber harus ditempatkan di lokasi berikut.

```
BUCKET_NAME
    |- RELEASE_ID
        |-index.d5a07c87.js.map
```

Ketika direktori anak adalah root, maka Amazon S3 URI harus diformat sebagai. `Amazon S3://BUCKET_NAME/DIRECTORY` Dalam hal ini, file peta sumber harus ditempatkan di lokasi berikut.

```
BUCKET_NAME
    |- DIRECTORY
        |-RELEASE_ID
            |-index.d5a07c87.js.map
```

## Melihat jejak tumpukan yang tidak diperkecil di konsol RUM
<a name="CloudWatch-RUM-viewunminifiedstacktraces"></a>

Setelah mengunggah peta sumber Anda ke Amazon S3, mengaktifkan peta sumber di monitor aplikasi RUM Anda, dan menerapkan aplikasi web Anda dengan `releaseId` yang dikonfigurasi di klien web RUM, **pilih** Acara di CloudWatch konsol RUM. Tab ini menampilkan data acara RUM mentah. Filter berdasarkan jenis peristiwa kesalahan JS dan lihat peristiwa kesalahan JS terbaru. Anda akan melihat jejak tumpukan yang tidak diperkecil di `event_details.unminifiedStack` bidang baru untuk peristiwa yang dicerna setelah fitur diaktifkan.

## Melihat jejak tumpukan yang tidak diperkecil di Log CloudWatch
<a name="CloudWatch-RUM-viewunminifiedstacktracesCWL"></a>

Aktifkan penyimpanan acara RUM di CloudWatch Log dengan mengaktifkan **penyimpanan Data**. Setelah diaktifkan, Anda dapat mencari bidang **Event\$1details.unminifiedStack** baru. Ini memungkinkan Anda menganalisis tren dan menghubungkan masalah di beberapa sesi menggunakan kueri CloudWatch Log.

## Pemecahan masalah peta sumber
<a name="CloudWatch-RUM-troubleshootsourcemaps"></a>

CloudWatch RUM menyediakan metrik di luar kotak untuk memecahkan masalah penyiapan peta sumber Anda. Metrik-metrik ini diterbitkan di namespace metrik yang disebut `AWS/RUM`. Metrik berikut diterbitkan dengan dimensi application\$1name. Nilai dimensi ini adalah nama monitor aplikasi. Metrik juga diterbitkan dengan `aws:releaseId` dimensi. Nilai dimensi ini `releaseId` terkait dengan peristiwa JavaScript kesalahan.


| MetricName | Unit | Deskripsi | 
| --- | --- | --- | 
|  UnminifyLineFailureCount  |  Hitungan  |  Hitungan garis jejak tumpukan dalam peristiwa kesalahan JS yang gagal di-unminified. Detail tambahan mengenai kegagalan akan ditambahkan ke baris tertentu yang gagal di bidang Event\$1details.unminifiedStack.  | 
|  UnminifyLineSuccessCount  |  Hitungan  | Hitungan garis jejak tumpukan dalam peristiwa kesalahan JS yang berhasil di-unminified. | 
| UnminifyEventFailureCount | Hitungan | Hitungan peristiwa kesalahan JS yang gagal membuat baris apa pun tidak diperkecil. Rincian tambahan mengenai kegagalan akan ditambahkan di bidang Event\$1details.unminifiedStack. | 
| UnminifyEventSuccessCount | Hitungan | Hitungan peristiwa kesalahan JS yang berhasil memiliki setidaknya satu baris jejak tumpukan yang tidak diperkecil. | 

CloudWatch RUM mungkin gagal mengecilkan baris dalam jejak tumpukan karena berbagai alasan, termasuk tetapi tidak terbatas pada:
+ Kegagalan untuk mengambil file peta sumber yang sesuai karena masalah izin. Pastikan kebijakan sumber daya bucket dikonfigurasi dengan benar.
+ File peta sumber yang sesuai tidak ada. Pastikan file peta sumber telah diunggah ke bucket atau folder yang benar yang memiliki nama yang sama dengan releaseId yang dikonfigurasi di klien web CloudWatch RUM Anda.
+ File peta sumber yang sesuai terlalu besar. Pisahkan kode sumber Anda menjadi potongan-potongan yang lebih kecil.
+ File peta sumber senilai 50 MB sudah diambil untuk jejak tumpukan. Kurangi panjang jejak tumpukan karena 50 MB adalah batasan sisi layanan.
+ Peta sumber tidak valid dan tidak dapat diindeks. Pastikan peta sumber adalah JSON biasa mengikuti struktur yang ditentukan oleh spesifikasi Source Map V3 dan termasuk bidang berikut: versi, file, sumber, nama, pemetaan.
+ Peta sumber tidak dapat memetakan kode sumber yang diperkecil kembali ke jejak tumpukan yang tidak diperkecil. Pastikan peta sumber adalah peta sumber yang benar untuk releaseId yang diberikan.

# Regionalisasi
<a name="CloudWatch-RUM-Regionalization"></a>

Bagian ini menggambarkan strategi untuk menggunakan CloudWatch RUM dengan aplikasi di Wilayah yang berbeda.

## Aplikasi saya diterapkan di beberapa Wilayah AWS
<a name="CloudWatch-RUM-Regionalization-multiple"></a>

Jika aplikasi Anda di-deploy di beberapa AWS Region, Anda memiliki tiga opsi:
+ Terapkan satu monitor aplikasi di satu Wilayah, dalam satu akun, yang melayani semua Wilayah.
+ Terapkan monitor aplikasi terpisah untuk setiap Wilayah, di akun unik.
+ Terapkan monitor aplikasi terpisah untuk setiap Wilayah, semuanya dalam satu akun.

Keuntungan menggunakan satu monitor aplikasi adalah bahwa semua data akan dipusatkan menjadi satu visualisasi, dan semua log ditulis ke grup log yang sama di CloudWatch Log. Dengan monitor aplikasi tunggal ada sejumlah kecil latensi tambahan untuk permintaan, dan satu titik kegagalan.

Menggunakan beberapa monitor aplikasi menghilangkan satu titik kegagalan, tetapi mencegah semua data digabungkan menjadi satu visualisasi.

### CloudWatch RUM belum diluncurkan di beberapa Wilayah tempat aplikasi saya digunakan
<a name="CloudWatch-RUM-Regionalization-notavailable"></a>

CloudWatch RUM diluncurkan ke banyak Wilayah dan memiliki cakupan geografis yang luas. Dengan menyiapkan CloudWatch RUM di Wilayah yang tersedia, Anda bisa mendapatkan manfaatnya. Pengguna akhir dapat berada di mana saja dan masih menyertakan sesi mereka jika Anda telah mengatur monitor aplikasi di Wilayah yang menghubungkannya.

Namun, CloudWatch RUM belum diluncurkan di Wilayah mana pun di Tiongkok. Anda tidak dapat mengirim data ke CloudWatch RUM dari Wilayah ini.

# Gunakan grup halaman
<a name="CloudWatch-RUM-page-groups"></a>

Gunakan grup halaman untuk mengaitkan halaman yang berbeda dalam aplikasi Anda satu sama lain sehingga Anda dapat melihat analitik gabungan untuk grup halaman. Sebagai contoh, Anda mungkin ingin melihat waktu unggah halaman gabungan dari semua halaman arahan Anda. 

Anda menempatkan halaman ke dalam grup halaman dengan menambahkan satu atau beberapa tag ke acara tampilan halaman di klien web CloudWatch RUM. Contoh berikut menempatkan halaman `/home` ke dalam grup halaman yang disebut `en` dan grup halaman yang disebut `landing`.

**Contoh skrip tertanam**

```
cwr('recordPageView', { pageId: '/home', pageTags: ['en', 'landing']});
```

**JavaScript contoh modul**

```
awsRum.recordPageView({ pageId: '/home', pageTags: ['en', 'landing']});
```

**catatan**  
Grup halaman dimaksudkan untuk memudahkan penggabungan analitik di berbagai halaman. Untuk informasi tentang cara mendefinisikan dan memanipulasi `pageIds` untuk aplikasi Anda, silakan lihat bagian **Merekam tampilan halaman secara manual** di [Memodifikasi cuplikan kode untuk mengkonfigurasi klien web CloudWatch RUM (opsional)](CloudWatch-RUM-modify-snippet.md).

# Tentukan metadata kustom
<a name="CloudWatch-RUM-custom-metadata"></a>

CloudWatch RUM melampirkan data tambahan ke setiap peristiwa sebagai metadata. Metadata peristiwa terdiri atas atribut dalam bentuk pasangan nilai kunci. Anda dapat menggunakan atribut ini untuk mencari atau memfilter peristiwa di konsol CloudWatch RUM. Secara default, CloudWatch RUM membuat beberapa metadata untuk Anda. Untuk informasi selengkapnya tentang metadata instans, silakan lihat [Metadata peristiwa RUM](CloudWatch-RUM-datacollected.md#CloudWatch-RUM-datacollected-metadata).

Anda juga dapat menggunakan klien web CloudWatch RUM untuk menambahkan metadata khusus ke acara CloudWatch RUM. Metadata kustom dapat mencakup atribut sesi dan atribut halaman.

Untuk menambahkan metadata kustom, Anda harus menggunakan versi 1.10.0 atau yang lebih baru dari klien web RUM. CloudWatch 

## Persyaratan dan sintaks
<a name="CloudWatch-RUM-custom-metadata-syntax"></a>

Setiap peristiwa dapat menyertakan sebanyak 10 atribut khusus dalam metadata. Persyaratan sintaks untuk atribut kustom adalah sebagai berikut:
+ **Kunci**
  + Maksimal 128 karakter
  + Dapat menyertakan karakter alfanumerik, titik bawah (:), dan garis bawah (\$1)
  + Tidak bisa mulai dengan `aws:`.
  + Tidak dapat sepenuhnya terdiri atas salah satu kata kunci yang dicadangkan yang tercantum di bagian berikut. Dapat menggunakan kata kunci tersebut sebagai bagian dari nama kunci yang lebih panjang.
+ **Nilai-nilai**
  + Maksimal 256 karakter
  + Harus berupa string, angka, atau nilai Boolean

**Kata Kunci Cadangan**

Anda tidak dapat menggunakan kata kunci berikut sebagai nama kunci lengkap. Anda dapat menggunakan kata kunci berikut sebagai bagian dari nama kunci yang lebih panjang, seperti `applicationVersion`.
+ `browserLanguage`
+ `browserName`
+ `browserVersion`
+ `countryCode`
+ `deviceType`
+ `domain`
+ `interaction`
+ `osName`
+ `osVersion`
+ `pageId`
+ `pageTags`
+ `pageTitle`
+ `pageUrl`
+ `parentPageId`
+ `platformType`
+ `referrerUrl`
+ `subdivisionCode`
+ `title`
+ `url`
+ `version`

**catatan**  
CloudWatch RUM menghapus atribut kustom dari peristiwa RUM jika atribut menyertakan kunci atau nilai yang tidak valid, atau jika batas 10 atribut kustom per peristiwa telah tercapai. 

## Tambahkan atribut sesi
<a name="CloudWatch-RUM-session-attributes"></a>

Jika Anda mengonfigurasi atribut sesi kustom, atribut tersebut akan ditambahkan ke semua peristiwa dalam sesi. Anda mengonfigurasi atribut sesi baik selama inisialisasi klien web CloudWatch RUM atau saat runtime dengan menggunakan perintah. `addSessionAttributes`

Sebagai contoh, Anda dapat menambahkan versi aplikasi Anda sebagai atribut sesi. Kemudian, di konsol CloudWatch RUM, Anda dapat memfilter kesalahan berdasarkan versi untuk mengetahui apakah tingkat kesalahan yang meningkat dikaitkan dengan versi tertentu dari aplikasi Anda. 

**Menambahkan atribut sesi pada inisialisasi, contoh NPM**

Bagian kode dalam huruf tebal menambahkan atribut sesi.

```
import { AwsRum, AwsRumConfig } from 'aws-rum-web';

try {
  const config: AwsRumConfig = {
    allowCookies: true,
    endpoint: "https://dataplane.rum.us-west-2.amazonaws.com",
    guestRoleArn: "arn:aws:iam::000000000000:role/RUM-Monitor-us-west-2-000000000000-00xx-Unauth",
    identityPoolId: "us-west-2:00000000-0000-0000-0000-000000000000",
    sessionSampleRate: 1,
    telemetries: ['errors', 'performance'],
    sessionAttributes: {
        applicationVersion: "1.3.8"
    }
  };

  const APPLICATION_ID: string = '00000000-0000-0000-0000-000000000000';
  const APPLICATION_VERSION: string = '1.0.0';
  const APPLICATION_REGION: string = 'us-west-2';

  const awsRum: AwsRum = new AwsRum(
    APPLICATION_ID,
    APPLICATION_VERSION,
    APPLICATION_REGION,
    config
  );
} catch (error) {
  // Ignore errors thrown during CloudWatch RUM web client initialization
}
```

**Menambahkan atribut sesi pada runtime, contoh NPM**

```
awsRum.addSessionAttributes({ 
    applicationVersion: "1.3.8"    
})
```

**Menambahkan atribut sesi pada inisialisasi, contoh skrip tersemat**

Bagian kode dalam huruf tebal menambahkan atribut sesi.

```
<script>
    (function(n,i,v,r,s,c,u,x,z){...})(
        'cwr',
        '00000000-0000-0000-0000-000000000000',
        '1.0.0',
        'us-west-2',
        'https://client.rum.us-east-1.amazonaws.com/1.0.2/cwr.js',
        {
            sessionSampleRate:1,
            guestRoleArn:'arn:aws:iam::000000000000:role/RUM-Monitor-us-west-2-000000000000-00xx-Unauth',
            identityPoolId:'us-west-2:00000000-0000-0000-0000-000000000000',
            endpoint:'https://dataplane.rum.us-west-2.amazonaws.com',
            telemetries:['errors','http','performance'],
            allowCookies:true,
            sessionAttributes: {
                applicationVersion: "1.3.8"
            }
        }
    );
</script>
```

**Menambahkan atribut sesi pada runtime, contoh skrip tersemat**

```
<script>
    function addSessionAttribute() {
        cwr('addSessionAttributes', {
            applicationVersion: "1.3.8"
        })
    }
            
</script>
```

## Menambahkan atribut halaman
<a name="CloudWatch-RUM-page-attributes"></a>

Jika Anda mengonfigurasi atribut sesi kustom, atribut tersebut akan ditambahkan ke semua peristiwa di halaman saat ini. Anda mengonfigurasi atribut halaman baik selama inisialisasi klien web CloudWatch RUM atau saat runtime dengan menggunakan perintah. `recordPageView`

Sebagai contoh, Anda dapat menambahkan template Anda sebagai atribut halaman. Kemudian, di konsol CloudWatch RUM, Anda dapat memfilter kesalahan berdasarkan templat halaman untuk mengetahui apakah tingkat kesalahan yang meningkat dikaitkan dengan templat halaman tertentu dari aplikasi Anda. 

**Menambahkan atribut halaman pada inisialisasi, contoh NPM**

Bagian kode dalam huruf tebal menambahkan atribut halaman.

```
const awsRum: AwsRum = new AwsRum(
    APPLICATION_ID,
    APPLICATION_VERSION,
    APPLICATION_REGION,
    { disableAutoPageView:  true // optional }
);
awsRum.recordPageView({  
    pageId:'/home',  
    pageAttributes: {
      template: 'artStudio'
    }
});
const credentialProvider = new CustomCredentialProvider();
if(awsCreds) awsRum.setAwsCredentials(credentialProvider);
```

**Menambahkan atribut halaman pada runtime, contoh NPM**

```
awsRum.recordPageView({ 
    pageId: '/home', 
    pageAttributes: {
        template: 'artStudio'
    } 
});
```

**Menambahkan atribut halaman pada inisialisasi, contoh skrip yang ditanamkan**

Bagian kode dalam huruf tebal menambahkan atribut halaman.

```
<script>
    (function(n,i,v,r,s,c,u,x,z){...})(
        'cwr',
        '00000000-0000-0000-0000-000000000000',
        '1.0.0',
        'us-west-2',
        'https://client.rum.us-east-1.amazonaws.com/1.0.2/cwr.js',
        {
            disableAutoPageView: true //optional
        }
    );
    cwr('recordPageView', { 
       pageId: '/home',  
       pageAttributes: {
           template: 'artStudio'
       }
    });
    const awsCreds = localStorage.getItem('customAwsCreds');
    if(awsCreds) cwr('setAwsCredentials', awsCreds)
</script>
```

**Menambahkan atribut halaman pada runtime, contoh skrip yang ditanamkan**

```
<script>
    function recordPageView() {
        cwr('recordPageView', { 
            pageId: '/home', 
            pageAttributes: {
                template: 'artStudio'
            }
        });
    }        
</script>
```

## Memfilter berdasarkan atribut metadata di konsol
<a name="CloudWatch-RUM-custom-attiributes-console"></a>

Untuk memfilter visualisasi di konsol CloudWatch RUM dengan atribut metadata bawaan atau kustom, gunakan bilah pencarian. Di bilah pencarian, Anda dapat menentukan sebanyak 20 istilah filter dalam bentuk **key=value** untuk diterapkan pada visualisasi. Misalnya, untuk memfilter data hanya untuk browser Chrome, Anda dapat menambahkan istilah filter **browserName=Chrome**.

Secara default, konsol CloudWatch RUM mengambil 100 kunci dan nilai atribut paling umum untuk ditampilkan di dropdown di bilah pencarian. Untuk menambahkan lebih banyak atribut metadata sebagai istilah filter, masukkan kunci atribut lengkap dan nilai ke dalam bilah pencarian. 

Filter dapat mencakup sebanyak 20 istilah filter, dan Anda dapat menyimpan hingga 20 filter per monitor aplikasi. Saat Anda menyimpan filter, itu disimpan di dropdown **Filter yang disimpan**. Anda juga dapat menghapus filter yang disimpan. 

# Kirim peristiwa kustom
<a name="CloudWatch-RUM-custom-events"></a>

CloudWatch RUM mencatat dan mencerna peristiwa yang tercantum di[Informasi yang dikumpulkan oleh klien web CloudWatch RUM](CloudWatch-RUM-datacollected.md). Jika Anda menggunakan versi 1.12.0 atau yang lebih baru dari klien web CloudWatch RUM, Anda dapat menentukan, merekam, dan mengirim acara khusus tambahan. Anda menentukan nama jenis peristiwa dan data yang akan dikirim untuk setiap jenis peristiwa yang Anda tentukan. Setiap muatan peristiwa khusus dapat mencapai 6 KB.

Peristiwa kustom hanya diserap jika monitor aplikasi telah mengaktifkan peristiwa kustom. Untuk memperbarui setelan konfigurasi monitor aplikasi Anda, gunakan konsol CloudWatch RUM atau [UpdateAppMonitor](https://docs.aws.amazon.com/cloudwatchrum/latest/APIReference/API_UpdateAppMonitor.html)API. 

Setelah mengaktifkan peristiwa kustom, dan kemudian menentukan dan mengirim peristiwa kustom, Anda dapat mencarinya. Untuk mencarinya, gunakan tab **Acara** di konsol CloudWatch RUM. Cari menggunakan jenis peristiwa.

## Persyaratan dan sintaks
<a name="CloudWatch-RUM-custom-event-syntax"></a>

Peristiwa kustom terdiri atas jenis peristiwa dan detail peristiwa. Persyaratan untuk ini adalah sebagai berikut:
+ **Jenis peristiwa**
  + Ini bisa berupa **jenis** atau **nama** peristiwa Anda. Misalnya, tipe acara bawaan CloudWatch RUM yang disebut **JsError**memiliki tipe acara`com.amazon.rum.js_error_event`.
  + Harus antara 1 hingga 256 karakter.
  + Dapat berupa kombinasi karakter alfanumerik, garis bawah, tanda hubung, dan titik.
+ **Detail peristiwa**
  + Berisi data aktual yang ingin Anda rekam dalam CloudWatch RUM.
  + Harus berupa objek yang terdiri atas bidang dan nilai.

## Contoh merekam peristiwa kustom
<a name="CloudWatch-RUM-custom-event-examples"></a>

Ada dua cara untuk merekam peristiwa khusus di klien web CloudWatch RUM. 
+ Gunakan `recordEvent` API klien web CloudWatch RUM.
+ Gunakan plugin yang disesuaikan.

**Kirim peristiwa kustom menggunakan API `recordEvent`, contoh NPM**

```
awsRum.recordEvent('my_custom_event', {
        location: 'IAD', 
        current_url: 'amazonaws.com', 
        user_interaction: {
            interaction_1 : "click",
            interaction_2 : "scroll"
        }, 
        visit_count:10
    }
)
```

**Kirim peristiwa kustom menggunakan API `recordEvent`, contoh skrip yang ditanamkan**

```
cwr('recordEvent', {
    type: 'my_custom_event', 
    data: {
        location: 'IAD', 
        current_url: 'amazonaws.com', 
        user_interaction: {
            interaction_1 : "click",
            interaction_2 : "scroll"
        }, 
        visit_count:10
    }
})
```

**Contoh pengiriman peristiwa khusus menggunakan plugin yang disesuaikan**

```
// Example of a plugin that listens to a scroll event, and
// records a 'custom_scroll_event' that contains the timestamp of the event.
class MyCustomPlugin implements Plugin {
    // Initialize MyCustomPlugin.
    constructor() {
        this.enabled;
        this.context;
        this.id = 'custom_event_plugin';
    }
    // Load MyCustomPlugin.
    load(context) {
        this.context = context;
        this.enable();
    }
    // Turn on MyCustomPlugin.
    enable() {
        this.enabled = true;
        this.addEventHandler();
    }
    // Turn off MyCustomPlugin.
    disable() {
        this.enabled = false;
        this.removeEventHandler();
    }
    // Return MyCustomPlugin Id.
    getPluginId() {
        return this.id;
    }
    // Record custom event.
    record(data) {
        this.context.record('custom_scroll_event', data);
    }
    // EventHandler.
    private eventHandler = (scrollEvent: Event) => {
        this.record({timestamp: Date.now()})
    }
    // Attach an eventHandler to scroll event.
    private addEventHandler(): void {
        window.addEventListener('scroll', this.eventHandler);
    }
    // Detach eventHandler from scroll event.
    private removeEventHandler(): void {
        window.removeEventListender('scroll', this.eventHandler);
    }
}
```

# Melihat dasbor CloudWatch RUM
<a name="CloudWatch-RUM-view-data"></a>

CloudWatch RUM membantu Anda mengumpulkan data dari sesi pengguna tentang kinerja aplikasi Anda, termasuk waktu muat, skor Apdex, informasi perangkat, geolokasi sesi pengguna, dan sesi dengan kesalahan. Semua informasi ini ditampilkan di dasbor.

Untuk melihat dasbor RUM:

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

1. Di panel navigasi, pilih **Sinyal Aplikasi**, **RUM**.

Konsol RUM menampilkan tampilan daftar semua monitor aplikasi Anda. Kolom **Platform** menunjukkan apakah setiap monitor aplikasi untuk aplikasi Web, Android, atau iOS. Pilih monitor aplikasi untuk mengakses tampilan terperinci dengan tab **Performa**, **Kesalahan**, **Sesi**, **Metrik**, dan **Konfigurasi**.

## Dasbor Aplikasi Web
<a name="CloudWatch-RUM-web-dashboard"></a>

Ketika Anda memilih monitor aplikasi web, Anda akan melihat tab berikut:
+ Tab **Kinerja** menampilkan informasi kinerja halaman termasuk waktu muat, informasi permintaan, vital web, dan pemuatan halaman dari waktu ke waktu. Tampilan ini menampilkan grafik vital web interaktif di mana Anda dapat melihat nilai persentil yang berbeda dari vital web inti untuk halaman Anda dan memilih titik data pada grafik untuk melihat peristiwa terkait yang ditangkap oleh RUM. CloudWatch Dari sana, Anda dapat menjelajahi lebih banyak peristiwa yang terkait dengan lonjakan metrik atau melihat detail halaman untuk acara yang dipilih guna mengidentifikasi kondisi tertentu yang menyebabkan masalah kinerja.

  Pada tab ini Anda juga dapat beralih tampilan antara **pemuatan Halaman**, **Permintaan**, dan **Lokasi** untuk melihat detail selengkapnya tentang kinerja halaman.
+ Tab **Kesalahan** menampilkan informasi kesalahan Javascript termasuk pesan kesalahan yang paling sering dilihat pengguna serta perangkat dan browser dengan kesalahan terbanyak. Tampilan ini mencakup histogram kesalahan dan tampilan daftar kesalahan. Anda dapat memfilter daftar kesalahan berdasarkan detail pengguna dan peristiwa. Pilih pesan kesalahan untuk melihat detail lebih lanjut.
+ Tab **permintaan HTTP** menampilkan informasi permintaan HTTP termasuk URL permintaan dengan sebagian besar kesalahan serta perangkat dan browser dengan kesalahan terbanyak. Tab ini mencakup histogram permintaan, tampilan daftar permintaan, dan tampilan daftar kesalahan jaringan. Anda dapat memfilter daftar berdasarkan detail pengguna dan peristiwa. Pilih kode respons atau pesan kesalahan untuk melihat detail selengkapnya tentang permintaan atau kesalahan jaringan.
+ Tab **Sesi** menampilkan metrik sesi. Tab ini mencakup histogram peristiwa awal sesi dan tampilan daftar sesi. Anda dapat memfilter daftar sesi berdasarkan jenis peristiwa, detail pengguna, dan detail peristiwa. Pilih **sessionId** untuk melihat detail lebih lanjut tentang sesi.
+ Tab **Peristiwa** menampilkan histogram peristiwa RUM dan tampilan daftar peristiwa. Anda dapat memfilter daftar peristiwa berdasarkan jenis peristiwa, detail pengguna, dan detail peristiwa. Pilih peristiwa RUM untuk melihat peristiwa mentah.
+ Tab **Browser & Perangkat** menampilkan informasi seperti performa dan penggunaan berbagai browser dan perangkat untuk mengakses aplikasi Anda. Tampilan ini mencakup kendali untuk mengaktifkan tampilan antara fokus pada **Browser** dan **Perangkat**.

  Jika mempersempit cakupan ke satu browser, Anda melihat data dipecah berdasarkan versi browser.
+ Tab **Perjalanan Pengguna** menampilkan jalur yang digunakan pelanggan Anda untuk menavigasi aplikasi Anda. Anda dapat melihat dari mana pelanggan Anda memasukkan aplikasi Anda dan dari halaman mana mereka keluar dari aplikasi Anda. Anda juga dapat melihat jalur yang mereka ambil dan persentase pelanggan yang mengikuti jalur tersebut. Anda dapat berhenti sejenak pada simpul untuk mendapatkan detail lebih lanjut tentang halaman itu. Anda dapat memilih satu jalur untuk menyorot koneksi agar lebih mudah dilihat.
+  Tab **Metrik** menampilkan semua CloudWatch metrik default yang diterbitkan oleh monitor aplikasi Anda, termasuk data vital web kinerja, metrik kesalahan (kesalahan, JavaScript kesalahan/kesalahan HTTP), volume, alur pengguna, dan metrik apdex. Jika Anda membuat metrik yang diperluas untuk aplikasi Anda, tab juga menyertakan subset metrik ini di bagian metrik yang diperluas. Subset ini mencakup metrik tipe,, http4xxCount PageViewCount PerformanceNavigationDuration, Http5xxCount dan. JsErrorCount Dasbor menunjukkan tiga variasi metrik per jenis metrik. Karena ini adalah CloudWatch metrik, Anda juga dapat mengekspor tab ini ke dasbor Anda sendiri menggunakan opsi **Tambahkan ke dasbor** dan memperbaruinya untuk menyertakan lebih banyak metrik. 

(Opsional) Pada salah satu dari enam tab pertama, Anda dapat memilih tombol **Halaman** dan memilih halaman atau grup halaman dari daftar. Ini mempersempit data yang ditampilkan ke satu halaman atau grup halaman aplikasi Anda. Anda juga dapat menandai halaman dan grup halaman dalam daftar sebagai favorit.

## Dasbor Aplikasi Seluler
<a name="CloudWatch-RUM-mobile-dashboard"></a>

Ketika Anda memilih monitor aplikasi seluler, Anda akan melihat tab berikut:
+ Tab **Performance** memberikan wawasan tentang kinerja aplikasi seluler Anda termasuk waktu muat layar, waktu peluncuran aplikasi (dingin dan hangat), metrik kinerja, dan skor Apdex dari waktu ke waktu. Tampilan mendetail memecah kinerja berdasarkan nama layar, versi OS, versi aplikasi, perangkat, dan negara. **Mengklik waktu buka layar, waktu peluncuran aplikasi, atau titik data lokasi di bagan akan membuka panel diagnostik di sebelah kanan yang memberikan wawasan lebih lanjut yang relevan dengan titik data yang terdiri dari sesi berkorelasi terbaru dan tautan ke tab Sesi untuk pemecahan masalah.**

  Pada tab ini Anda juga dapat mengaktifkan tampilan antara **pemuatan Layar**, **Peluncuran aplikasi**, dan **Lokasi** untuk melihat detail selengkapnya tentang kinerja aplikasi.

  Tab ini juga menampilkan skor indeks kinerja aplikasi (Apdex) yang menunjukkan tingkat kepuasan pengguna akhir. Skor berkisar dari 0 (paling tidak puas) hingga 1 (paling puas). Skor didasarkan pada performa aplikasi saja. Untuk informasi selengkapnya tentang skor Apdex, silakan lihat [Bagaimana CloudWatch RUM menetapkan skor Apdex](#CloudWatch-RUM-apdex).
+ Tab **Errors** memecah masalah aplikasi dalam tiga kategori: Network Errors, Crashes, dan ANRs (Android) /App Hang (iOS). Tab **Kesalahan Jaringan** memiliki bagan garis yang menunjukkan latensi jaringan, kesalahan klien (kode status 4xx), dan kesalahan server (kode status 5xx). Mengklik titik data untuk salah satu baris ini dalam bagan akan membuka panel diagnostik. Tabel bawah mencantumkan 100 rute jaringan yang paling umum. Mengklik tombol radio akan memfilter bagan garis dengan rute jaringan yang dipilih.

  Demikian pula, **tab **Crashes** dan ANRs /App Hang** menunjukkan rangkaian baris untuk hitungan setiap kesalahan, dan ini tidak dapat dipecahkan. Tabel bawah menampilkan pesan crash atas yang paling umum atau jejak tumpukan ANR/App Hang. Mengklik tombol radio akan memfilter bagan, dan mengklik pesan kesalahan akan menampilkan jejak tumpukan lengkap.
+ Tab **Sessions** menampilkan tabel yang mencantumkan semua sesi dalam urutan kronologis menurun. Di bagian bawah, visualisasi air terjun menunjukkan semua telemetri untuk sesi yang dipilih, membantu Anda melacak interaksi pengguna dan mengidentifikasi masalah kinerja. Setiap baris di air terjun dapat dipilih untuk membuka panel diagnostik. Untuk permintaan HTTP, Anda akan melihat **TraceID** yang menautkan ke konsol Traces.

  Untuk permintaan HTTP dengan kode status non-2xx, crash, atau ANRs (Android)/App Hang (iOS), panel diagnostik menyertakan tab **Pengecualian** dengan jejak tumpukan. Tombol **Lihat** di air terjun menyediakan akses cepat ke informasi ini.
+ Tab **Metrik** menampilkan semua CloudWatch metrik default yang diterbitkan oleh monitor aplikasi Anda, termasuk metrik kinerja (waktu muat layar, waktu peluncuran aplikasi dingin), metrik kesalahan (crash, ANRs/App Hang, HTTP, dan. errors/faults), volume and apdex metrics. If you created extended metrics for your application, the tab also includes a subset of these metrics in the extended metrics section. This subset includes metrics of type ScreenLoadTime, ScreenLoadCount, CrashCount, Http4xxCount, Http5xxCount, ANRCount/AppHangCount ColdLaunchTime WarmLaunchTime Dasbor menunjukkan tiga variasi metrik per jenis metrik. Karena ini adalah CloudWatch metrik, Anda juga dapat mengekspor tab ini ke dasbor Anda sendiri menggunakan opsi **Tambahkan ke dasbor** dan memperbaruinya untuk menyertakan lebih banyak metrik.
+ Tab **Konfigurasi** menyediakan akses ke setelan umum dan detail konfigurasi monitor aplikasi Anda. Anda juga dapat mengakses tab **Cuplikan Kode** yang berisi instruksi untuk menginstrumentasi aplikasi seluler Anda dengan ADOT SDK, termasuk opsi instrumentasi Manual dan Kode Nol.

### Bagaimana CloudWatch RUM menetapkan skor Apdex
<a name="CloudWatch-RUM-apdex"></a>

Apdex (Application Performance Index) adalah standar terbuka yang mendefinisikan metode untuk melaporkan, mengukur, dan menilai waktu respons aplikasi. Skor Apdex membantu Anda memahami dan mengidentifikasi dampak pada performa aplikasi dari waktu ke waktu.

Skor Apdex menunjukkan tingkat kepuasan pengguna akhir. Skor berkisar dari 0 (paling tidak puas) hingga 1 (paling puas). Skor didasarkan pada performa aplikasi saja. Pengguna tidak diminta untuk menilai aplikasi.

Setiap skor Apdex individu jatuh ke dalam salah satu dari tiga ambang batas. Berdasarkan ambang batas Apdex dan waktu respons aplikasi aktual, ada tiga jenis performa, sebagai berikut:
+ **Puas** - Waktu respons aplikasi sebenarnya kurang dari atau sama dengan ambang Apdex. Untuk CloudWatch RUM, ambang batas ini adalah 2000 ms atau kurang.
+ **Tolerable** — Waktu respons aplikasi sebenarnya lebih besar dari ambang Apdex, tetapi kurang dari atau sama dengan empat kali ambang Apdex. Untuk CloudWatch RUM, kisaran ini adalah 2000-8000 ms.
+ **Frustrasi** — Waktu respons aplikasi sebenarnya lebih besar dari empat kali ambang Apdex. Untuk CloudWatch RUM, kisaran ini lebih dari 8000 ms.

Total skor Apdex 0-1 dihitung menggunakan rumus berikut:

`(positive scores + tolerable scores/2)/total scores * 100`

# CloudWatch metrik yang dapat Anda kumpulkan dengan CloudWatch RUM
<a name="CloudWatch-RUM-metrics"></a>

Tabel di bagian ini mencantumkan metrik yang Anda kumpulkan secara otomatis dengan CloudWatch RUM dari aplikasi web, aplikasi seluler, atau keduanya. Anda dapat melihat metrik ini di CloudWatch konsol. Untuk informasi selengkapnya, lihat [Lihat metrik yang tersedia](viewing_metrics_with_cloudwatch.md).

Anda juga dapat secara opsional mengirim metrik yang diperluas ke. CloudWatch Untuk informasi selengkapnya, lihat [Metrik yang diperluas](CloudWatch-RUM-custom-and-extended-metrics.md#CloudWatch-RUM-vended-metrics).

Metrik-metrik ini diterbitkan di namespace metrik yang disebut `AWS/RUM`. Semua metrik berikut diterbitkan dengan dimensi `application_name`. Nilai dimensi ini adalah nama monitor aplikasi. Beberapa metrik juga diterbitkan dengan dimensi tambahan, seperti yang tercantum dalam tabel berikut.


**Metrik web**  

| Metrik | Unit | Deskripsi | 
| --- | --- | --- | 
|  `HttpStatusCodeCount` |  Hitungan  |  Hitungan respons HTTP dalam aplikasi, dengan kode status responsnya. Dimensi tambahan: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM-metrics.html)  | 
|  `Http4xxCount` |  Hitungan  |  Hitungan respons HTTP dalam aplikasi, dengan kode status respons 4xx. Ini dihitung berdasarkan peristiwa `http_event` RUM yang menghasilkan kode 4xx.  | 
|  `Http4xxCountPerSession` |  Hitungan  |  Hitungan respons HTTP dalam sesi, dengan kode status respons 4xx. Ini dihitung berdasarkan peristiwa `http_event` RUM yang menghasilkan kode 4xx.  | 
|  `Http4xxCountPerPageView` |  Hitungan  |  Hitungan respons HTTP dalam tinjauan halaman, dengan kode status respons 4xx. Ini dihitung berdasarkan peristiwa `http_event` RUM yang menghasilkan kode 4xx.  | 
|  `Http5xxCount` |  Hitungan  |  Hitungan respons HTTP dalam aplikasi, dengan kode status respons 5xx. Ini dihitung berdasarkan peristiwa `http_event` RUM yang menghasilkan kode 5xx.  | 
|  `Http5xxCountPerSession` |  Hitungan  |  Hitungan respons HTTP dalam sesi, dengan kode status respons 5xx. Ini dihitung berdasarkan peristiwa `http_event` RUM yang menghasilkan kode 5xx.  | 
|  `Http5xxCountPerPageView` |  Hitungan  |  Hitungan respons HTTP dalam tinjauan halaman, dengan kode status respons 5xx. Ini dihitung berdasarkan peristiwa `http_event` RUM yang menghasilkan kode 5xx.  | 
|  `JsErrorCount` |  Hitungan  |  Hitungan peristiwa JavaScript kesalahan yang dicerna.   | 
|  `JsErrorCountPerSession` |  Hitungan  |  Hitungan peristiwa JavaScript kesalahan yang dicerna dalam sesi.  | 
|  `JsErrorCountPerPageView` |  Hitungan  |  Hitungan peristiwa JavaScript kesalahan yang dicerna dalam tinjauan halaman.  | 
|  `NavigationFrustratedTransaction` |  Hitungan  |  Hitungan peristiwa navigasi dengan ambang batas `duration` yang lebih tinggi dari ambang batas mengecewakan, yaitu 8000 ms. Durasi peristiwa navigasi dilacak dalam metrik `PerformanceNavigationDuration`.  | 
|  `NavigationSatisfiedTransaction` |  Hitungan  |  Hitungan peristiwa navigasi dengan `duration` yang kurang dari tujuan Apdex, yaitu 2000 ms. Durasi peristiwa navigasi dilacak dalam metrik `PerformanceNavigationDuration`.  | 
|  `NavigationToleratedTransaction` |  Hitungan  |  Hitungan peristiwa navigasi dengan `duration` antara 2000 ms dan 8000 ms. Durasi peristiwa navigasi dilacak dalam metrik `PerformanceNavigationDuration`.  | 
|  `PageViewCount` |  Hitungan  |  Hitungan peristiwa tampilan halaman yang dicerna oleh monitor aplikasi. Ini dihitung dengan menghitung peristiwa `page_view_event` RUM.  | 
|  `PageViewCountPerSession` |  Hitungan  |  Hitungan acara tampilan halaman dalam sesi. | 
|  `PerformanceResourceDuration` |  Milidetik  |  `duration` dari peristiwa sumber daya. Dimensi tambahan: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM-metrics.html)  | 
|  `PerformanceNavigationDuration` |  Milidetik  |  `duration` dari peristiwa navigasi.  | 
|  `RumEventPayloadSize` |  Byte  |  Ukuran setiap acara yang dicerna oleh CloudWatch RUM. Anda juga dapat menggunakan statistik `SampleCount` untuk metrik ini untuk memantau jumlah peristiwa yang diserap monitor aplikasi.  | 
|  `SessionCount` |  Hitungan  |  Hitungan peristiwa awal sesi yang diserap monitor aplikasi. Dengan kata lain, jumlah sesi baru dimulai.  | 
|  `SessionDuration` |  Milidetik  |  Durasi sesi. Ini dihitung berdasarkan waktu antara peristiwa pertama dan terakhir dalam suatu sesi.  | 
|  `TimeOnPage` |  Milidetik  |  Durasi tampilan halaman. Ini dihitung berdasarkan waktu hingga tampilan halaman berikutnya, kecuali untuk halaman terakhir dalam sesi di mana waktu antara peristiwa pertama dan terakhir di halaman itu.  | 
|  `WebVitalsCumulativeLayoutShift` |  Tidak ada  |  Melacak nilai peristiwa pergeseran tata letak kumulatif.  | 
|  `WebVitalsFirstInputDelay` |  Milidetik  |  Melacak nilai peristiwa penundaan input pertama.  | 
|  `WebVitalsLargestContentfulPaint` |  Milidetik  |  Melacak nilai peristiwa catatan terbesar yang memuaskan.  | 
|  `WebVitalsInteractionToNextPaint` |  Milidetik  |  Melacak nilai interaksi ke acara cat berikutnya.  | 

Anda dapat mengonfigurasi metrik yang diperluas untuk aplikasi seluler Anda untuk memberikan dimensi tambahan untuk analisis.


**Metrik seluler**  

| Metrik | Unit | Deskripsi | 
| --- | --- | --- | 
|  `ANRCount`  |  Hitungan  |  Hanya untuk Android: Jumlah insiden Application Not Responding (ANR), terjadi ketika aplikasi tidak responsif selama lebih dari 5 detik, mengakibatkan aplikasi crash.  | 
|  `AppHangCount`  |  Hitungan  |  Hanya untuk iOS: Berapa kali aplikasi menjadi tidak responsif selama lebih dari 250 ms pada loop utama.  | 
|  `ColdAppLaunchFrustratedTransaction`  |  Hitungan  |  Jumlah peluncuran aplikasi dingin yang membutuhkan waktu lebih dari 8 detik untuk diselesaikan, kemungkinan menyebabkan frustrasi pengguna.  | 
|  `ColdAppLaunchSatisfiedTransaction`  |  Hitungan  |  Jumlah peluncuran aplikasi dingin yang selesai dalam waktu kurang dari 2 detik, memberikan pengalaman pengguna yang memuaskan.  | 
|  `ColdAppLaunchToleratedTransaction`  |  Hitungan  |  Jumlah peluncuran aplikasi dingin yang selesai antara 2 dan 8 detik, memberikan pengalaman pengguna yang dapat ditoleransi, tetapi tidak ideal.  | 
|  `ColdLaunchTime`  |  Milidetik  |  Waktu yang dibutuhkan untuk meluncurkan aplikasi dari status yang dihentikan. Untuk Android: Waktu dari Aplikasi `onCreate` hingga Aktivitas pertama selesai dibuat. Untuk iOS: Waktu dari mulai aplikasi (ditentukan oleh perintah mulai `sysctl` proses) hingga`didBecomeActiveNotification`.  | 
|  `CrashCount`  |  Hitungan  |  Jumlah penghentian aplikasi yang tidak terduga yang disebabkan oleh pengecualian yang tidak tertangani atau penghentian OS. Untuk Android: Crash karena pengecualian yang tidak tertangani atau penghentian sistem. Untuk iOS: Crash karena pengecualian yang tidak tertangani, kesalahan fatal, atau penghentian sistem. Data kerusakan disimpan secara lokal dan dilaporkan pada peluncuran aplikasi berikutnya.  | 
|  `DroppedEventsCount`  |  Hitungan  |  Jumlah peristiwa log yang dijatuhkan karena melebihi batas ukuran maksimum 30KB per peristiwa.  | 
|  `DroppedSpansCount`  |  Hitungan  |  Jumlah bentang yang dijatuhkan karena melebihi batas ukuran maksimum 30KB per rentang.  | 
|  `Http4xxCount`  |  Hitungan  |  Mencatat jumlah kesalahan klien HTTP yang dihadapi oleh web atau aplikasi seluler selama permintaan HTTP.  | 
|  `Http5xxCount`  |  Hitungan  |  Mencatat jumlah kesalahan server HTTP yang dihadapi oleh web atau aplikasi seluler selama permintaan HTTP.  | 
|  `LogPayloadSize`  |  Byte  |  Ukuran dalam byte data telemetri log yang dikirim ke RUM. CloudWatch  Anda juga dapat menggunakan `SampleCount` statistik untuk metrik ini untuk memantau jumlah Peristiwa Log yang diserap oleh monitor aplikasi.  | 
|  `NetworkLatency`  |  Milidetik  |  Waktu yang dibutuhkan untuk menyelesaikan permintaan jaringan, mengukur waktu pulang-pergi dari inisiasi permintaan hingga penyelesaian respons.  | 
|  `ScreenLoadCount`  |  Hitungan  |  Jumlah total beban layar.  | 
|  `ScreenLoadToleratedTransaction`  |  Hitungan  |  Jumlah beban layar yang diselesaikan antara 2 dan 8 detik, memberikan pengalaman pengguna yang dapat ditoleransi, tetapi tidak ideal.  | 
|  `SessionCount`  |  Hitungan  |  Jumlah total sesi pengguna unik dengan aplikasi. Sesi dimulai saat pengguna membuka aplikasi dan berakhir setelah 30 menit tidak aktif atau ketika dihentikan secara eksplisit.  | 
|  `SpanPayloadSize`  |  Byte  |  Ukuran dalam byte data telemetri rentang yang dikirim ke RUM. CloudWatch  Anda juga dapat menggunakan `SampleCount` statistik untuk metrik ini untuk memantau jumlah Rentang yang dikonsumsi oleh monitor aplikasi.  | 
|  `WarmAppLaunchFrustratedTransaction`  |  Hitungan  |  Jumlah peluncuran aplikasi hangat yang membutuhkan waktu lebih dari 8 detik untuk diselesaikan, kemungkinan menyebabkan frustrasi pengguna.  | 
|  `WarmAppLaunchSatisfiedTransaction`  |  Hitungan  |  Jumlah peluncuran aplikasi hangat yang selesai dalam waktu kurang dari 2 detik, memberikan pengalaman pengguna yang memuaskan.  | 
|  `WarmAppLaunchToleratedTransaction`  |  Hitungan  |  Jumlah peluncuran aplikasi hangat yang selesai antara 2 dan 8 detik, memberikan pengalaman pengguna yang dapat ditoleransi, tetapi tidak ideal.  | 
|  `WarmLaunchTime`  |  Milidetik  |  Waktu yang dibutuhkan untuk meluncurkan aplikasi dari status latar belakang. Untuk Android: Waktu dari Aplikasi `onCreate` hingga Aktivitas pertama selesai dibuat. Untuk iOS: Waktu dari `UIApplicationWillEnterForegroundNotification` hingga`didBecomeActiveNotification`.  | 

# Metrik kustom dan metrik diperpanjang yang dapat Anda kirim CloudWatch
<a name="CloudWatch-RUM-custom-and-extended-metrics"></a>

Secara default, monitor aplikasi RUM mengirim metrik ke CloudWatch. Metrik dan dimensi default ini tercantum dalam [CloudWatch metrik yang dapat Anda kumpulkan dengan CloudWatch ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM-metrics.html) RUM.

Anda juga dapat mengatur monitor aplikasi untuk mengekspor metrik. Monitor aplikasi dapat mengirim metrik yang diperluas, metrik khusus, atau keduanya. Itu dapat mengirim mereka ke CloudWatch.
+ **Metrik kustom** — Metrik kustom adalah metrik yang Anda tentukan. Dengan metrik kustom, Anda dapat menggunakan nama metrik dan namespace apa pun. Untuk mendapatkan metrik, Anda dapat menggunakan peristiwa kustom, peristiwa bawaan, atribut kustom, atau atribut default.

  Anda dapat mengirim metrik khusus ke CloudWatch.
+ **Metrik yang diperluas** — Anda dapat mengirim salah satu metrik CloudWatch RUM default CloudWatch dengan dimensi tambahan. Dengan cara ini, metrik ini dapat memberi Anda tampilan yang lebih halus.

**Topics**
+ [Metrik-metrik kustom](#CloudWatch-RUM-custom-metrics)
+ [Metrik yang diperluas](#CloudWatch-RUM-vended-metrics)

## Metrik-metrik kustom
<a name="CloudWatch-RUM-custom-metrics"></a>

Untuk mengirim metrik khusus, Anda harus menggunakan AWS APIs atau AWS CLI bukan konsol. Untuk informasi lebih lanjut tentang menggunakan AWS APIs, lihat [PutRumMetricsDestination](https://docs.aws.amazon.com/cloudwatchrum/latest/APIReference/API_PutRumMetricsDestination.html)dan [BatchCreateRumMetricDefinitions](https://docs.aws.amazon.com/cloudwatchrum/latest/APIReference/API_BatchCreateRumMetricDefinitions.html).

Jumlah maksimum definisi metrik yang diperluas dan metrik kustom yang dapat memuat satu tujuan adalah 2000. Untuk setiap metrik kustom atau metrik yang diperluas yang Anda kirim ke setiap tujuan, setiap kombinasi nama dimensi dan nilai dimensi diperhitungkan dalam batas ini. Anda tidak dikenakan biaya untuk metrik khusus yang berasal dari segala jenis peristiwa atau atribut CloudWatch RUM.

Contoh berikut menunjukkan cara membuat metrik kustom yang berasal dari peristiwa kustom. Berikut adalah contoh peristiwa kustom yang digunakan:

```
cwr('recordEvent', {
    type: 'my_custom_event', 
    data: {
        location: 'IAD', 
        current_url: 'amazonaws.com', 
        user_interaction: {
            interaction_1 : "click",
            interaction_2 : "scroll"
        }, 
        visit_count:10
    }
})
```

Dengan peristiwa kustom ini, Anda dapat membuat metrik kustom yang menghitung jumlah kunjungan ke URL `amazonaws.com` dari browser Chrome. Definisi berikut membuat metrik yang disebut `AmazonVisitsCount` di akun Anda, di namespace `RUM/CustomMetrics/PageVisits`.

```
{
    "AppMonitorName":"customer-appMonitor-name",
    "Destination":"CloudWatch",
    "MetricDefinitions":[
        {
            "Name":"AmazonVisitsCount",
            "Namespace":"PageVisit",
            "ValueKey":"event_details.visit_count",
            "UnitLabel":"Count",
            "DimensionKeys":{
                "event_details.current_url": "URL"
            },
            "EventPattern":"{\"metadata\":{\"browserName\":[\"Chrome\"]},\"event_type\":[\"my_custom_event\"],\"event_details\": {\"current_url\": [\"amazonaws.com\"]}}" 
        }
    ]
}
```

## Metrik yang diperluas
<a name="CloudWatch-RUM-vended-metrics"></a>

Jika Anda menyiapkan metrik yang diperluas, Anda dapat mengirim salah satu metrik CloudWatch RUM default CloudWatch dengan dimensi tambahan sehingga metrik memberi Anda tampilan yang lebih halus.

Untuk informasi selengkapnya tentang metrik CloudWatch RUM default, lihat[CloudWatch metrik yang dapat Anda kumpulkan dengan CloudWatch RUM](CloudWatch-RUM-metrics.md).

Jumlah maksimum definisi metrik yang diperluas dan metrik kustom yang dapat memuat satu tujuan adalah 2000. Untuk setiap metrik kustom atau metrik yang diperluas yang Anda kirim ke setiap tujuan, setiap kombinasi nama dimensi dan nilai dimensi diperhitungkan untuk batas ini.

Saat Anda mengirim metrik yang diperluas ke CloudWatch, Anda dapat menggunakan konsol CloudWatch RUM untuk membuat CloudWatch alarm pada mereka.

Anda tidak dikenakan biaya untuk metrik tambahan yang dibuat untuk metrik default RUM. CloudWatch 

### Metrik Diperpanjang Aplikasi Web
<a name="CloudWatch-RUM-web-extended-metrics"></a>

Dimensi berikut didukung untuk metrik yang diperluas aplikasi web:
+ `BrowserName`

  Contoh nilai dimensi: `Chrome`, `Firefox`, `Chrome Headless`
+ `CountryCode` Ini menggunakan format ISO-3166, dengan kode dua huruf.

  Contoh nilai dimensi: `US`, `JP`, `DE`
+ `DeviceType`

  Contoh nilai dimensi: `desktop`, `mobile`, `tablet`, `embedded`
+ `FileType`

  Contoh nilai dimensi: `Image`, `Stylesheet`
+ `OSName`

  Contoh nilai dimensi: `Linux`, `Windows`, `iOS`, `Android`
+ `PageId`

### Metrik yang Diperpanjang Aplikasi Seluler
<a name="CloudWatch-RUM-mobile-extended-metrics"></a>

Dimensi berikut didukung untuk metrik yang diperluas aplikasi seluler:
+ `ScreenName`
  + Nilai dari atribut nama layar - `attributes.screen.name` aplikasi Anda
  + Contoh nilai: HomeScreen, SettingsView, ProfilePage
+ `DeviceModel`
  + Nilai dari atribut model perangkat - `resource.attributes.device.model.name`
  + Contoh nilai: iPhone14,3, SM-G998B
+ `OSVersion`
  + Nilai dari atribut versi sistem operasi - `resource.attributes.os.version`
  + Contoh nilai: 16.0, 13.0

**catatan**  
Metrik default yang saat ini didukung untuk aplikasi seluler:`ScreenLoadTime`,`ScreenLoadCount`,`NetworkLatency`,`Http4xxCount`,`Http5xxCount`,`CrashCount`,`ANRCount`,`AppHangCount`,`ColdLaunchTime`,, `WarmLaunchTime``SessionCount`, `SpanPayloadSize` dan`LogPayloadSize`.

### Atur metrik yang diperluas menggunakan konsol
<a name="CloudWatch-RUM-extended-metrics-console"></a>

Untuk menggunakan konsol untuk mengirim metrik yang diperluas CloudWatch, gunakan langkah-langkah berikut.

Untuk informasi tentang menggunakan metrik AWS APIs untuk mengirim diperluas ke salah satu CloudWatch, lihat [PutRumMetricsDestination](https://docs.aws.amazon.com/cloudwatchrum/latest/APIReference/API_PutRumMetricsDestination.html)dan [BatchCreateRumMetricDefinitions](https://docs.aws.amazon.com/cloudwatchrum/latest/APIReference/API_BatchCreateRumMetricDefinitions.html).

**Untuk menggunakan konsol untuk menyiapkan monitor aplikasi dan mengirim metrik diperpanjang RUM ke CloudWatch**

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

1. Di panel navigasi, pilih **Sinyal Aplikasi**, **RUM**.

1. Pilih nama monitor aplikasi yang akan mengirim metrik.

1. Pilih tab **Konfigurasi** dan kemudian pilih **metrik yang diperluas RUM**.

1. Pilih **Kirim metrik**.

1. Pilih satu atau beberapa nama metrik untuk dikirim dengan dimensi tambahan.

1. Pilih satu faktor atau lebih untuk digunakan sebagai dimensi untuk metrik ini. Saat Anda membuat pilihan, jumlah metrik tambahan yang dibuat pilihan Anda ditampilkan di **Jumlah metrik terekstensi**.

   Angka ini dihitung dengan mengalikan jumlah nama metrik yang dipilih dengan jumlah dimensi berbeda yang Anda buat.

   1. Untuk mengirim metrik dengan ID halaman sebagai dimensi, pilih **Browse for page ID** lalu pilih halaman IDs yang akan digunakan.

   1. Untuk mengirim metrik dengan tipe perangkat sebagai dimensi, pilih **perangkat Desktop** atau **Ponsel dan tablet**.

   1. Untuk mengirim metrik dengan sistem operasi sebagai dimensi, pilih satu atau beberapa sistem operasi di bawah **Sistem operasi**.

   1. Untuk mengirim metrik dengan jenis browser sebagai dimensi, pilih satu browser atau lebih di bawah **Browser**.

   1. Untuk mengirim metrik dengan geolokasi sebagai dimensi, pilih satu lokasi atau lebih di bawah **Lokasi**.

      Hanya lokasi tempat monitor aplikasi ini melaporkan metrik yang akan muncul dalam daftar yang akan dipilih.

1. Setelah Anda selesai dengan pilihan Anda, pilih **Kirim metrik**.

1. (Opsional) Dalam daftar **Metrik yang diperluas**, untuk membuat alarm yang mengawasi salah satu metrik, pilih **Buat alarm** di baris metrik tersebut.

   Untuk informasi umum tentang CloudWatch alarm, lihat[Menggunakan CloudWatch alarm Amazon](CloudWatch_Alarms.md). Untuk tutorial untuk mengatur alarm pada metrik diperpanjang CloudWatch RUM, lihat[Tutorial: membuat metrik yang diperluas dan membuatnya menjadi alarm](#CloudWatch-RUM-extended-metrics-alarmtutorial).

**Berhenti mengirim metrik terekstensi**

**Untuk menggunakan konsol untuk berhenti mengirim metrik terekstensi**

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

1. Di panel navigasi, pilih **Sinyal Aplikasi**, **RUM**.

1. Pilih nama monitor aplikasi yang akan mengirim metrik.

1. Pilih tab **Konfigurasi** dan kemudian pilih **metrik yang diperluas RUM**.

1. Pilih satu atau beberapa kombinasi nama dan dimensi metrik untuk berhenti mengirim. Kemudian pilih **Tindakan**, **Hapus**.

### Tutorial: membuat metrik yang diperluas dan membuatnya menjadi alarm
<a name="CloudWatch-RUM-extended-metrics-alarmtutorial"></a>

Tutorial ini menunjukkan cara mengatur metrik yang diperluas untuk dikirim CloudWatch, dan kemudian cara mengatur alarm pada metrik itu. Dalam tutorial ini, Anda membuat metrik yang melacak JavaScript kesalahan pada browser Chrome.

**Untuk mengatur metrik yang diperluas ini dan mengatur alarm di atasnya**

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

1. Di panel navigasi, pilih **Sinyal Aplikasi**, **RUM**.

1. Pilih nama monitor aplikasi yang akan mengirim metrik.

1. Pilih tab **Konfigurasi** dan kemudian pilih **metrik yang diperluas RUM**.

1. Pilih **Kirim metrik**.

1. Pilih **JSErrorHitung**.

1. Di bawah **Browser**, pilih **Chrome**.

   Kombinasi **JSErrorCount** dan **Chrome** ini akan mengirimkan satu metrik yang diperluas ke CloudWatch. Metrik menghitung JavaScript kesalahan hanya untuk sesi pengguna yang menggunakan browser Chrome. Nama metrik akan menjadi **JsErrorCount**dan nama dimensi akan menjadi **Browser**.

1. Pilih **Kirim metrik**.

1. Dalam daftar **Metrik diperpanjang**, pilih **Buat alarm** di baris yang ditampilkan **JsErrorCount**di bawah **Nama** dan menampilkan **Chrome** di bawah **BrowserName**.

1. Di bawah **Tentukan metrik dan kondisi**, konfirmasikan bahwa **nama dan **BrowserName**bidang Metrik** telah diisi sebelumnya dengan nilai yang benar.

1. Untuk **Statistik**, pilih statistik yang ingin Anda gunakan untuk alarm. **Rata-rata** adalah pilihan yang baik untuk jenis metrik penghitungan ini.

1. Untuk **Periode**, pilih **5 menit**.

1. Pada **Kondisi**, lakukan hal berikut:
   + Pilih **Statis**.
   + Pilih **Lebih Besar** untuk menentukan bahwa alarm harus masuk ke status ALARM ketika jumlah kesalahan lebih tinggi dari ambang batas yang akan Anda tentukan.
   + Di bawah **dari...** , masukkan angka untuk ambang batas alarm. Alarm masuk ke status ALARM ketika jumlah kesalahan selama periode 5 menit melebihi angka ini.

1. (Opsional) Secara default, alarm masuk ke status ALARM segera setelah jumlah kesalahan melebihi angka ambang batas yang Anda tetapkan selama periode 5 menit. Anda dapat mengubah ini secara opsional sehingga alarm masuk ke status ALARM hanya jika jumlah ini terlampaui selama lebih dari satu periode 5 menit.

   Untuk melakukan hal itu, pilih **Konfigurasi tambahan** dan kemudian untuk **Titik data untuk alarm**, tentukan berapa periode 5 menit yang perlu memiliki jumlah kesalahan melebihi ambang batas untuk memicu alarm. Sebagai contoh, Anda dapat memilih 2 dari 2 untuk membuat alarm hanya berbunyi saat dua periode 5 menit berturut-turut melampaui ambang batas, atau 2 dari 3 untuk membuat alarm berbunyi jika dua dari tiga periode 5 menit berturut-turut melampaui ambang batas. 

   Untuk informasi selengkapnya tentang jenis evaluasi alarm ini, silakan lihat [Evaluasi alarm](alarm-evaluation.md).

1. Pilih **Berikutnya**.

1. Untuk **Mengonfigurasi tindakan**, tentukan apa yang harus terjadi ketika alarm masuk ke status alarm. Untuk menerima notifikasi dengan Amazon SNS, lakukan hal berikut:
   + Pilih **Tambahkan notifikasi**.
   + Pilih **Dalam alarm**.
   + Pilih topik SNS yang ada atau buat yang baru. Jika Anda membuat yang baru, tentukan nama untuk itu dan tambahkan setidaknya satu alamat email ke dalamnya.

1. Pilih **Berikutnya**.

1. Masukkan nama dan deskripsi opsional untuk alarm, lalu pilih **Berikutnya**.

1. Tinjau detailnya dan pilih **Buat alarm**.

# Perlindungan data dan privasi data dengan CloudWatch RUM
<a name="CloudWatch-RUM-privacy"></a>

[Model tanggung jawab AWS bersama](https://aws.amazon.com/compliance/shared-responsibility-model/) berlaku untuk perlindungan data dan privasi data di Amazon CloudWatch RUM. Seperti yang dijelaskan dalam model AWS ini, bertanggung jawab untuk melindungi infrastruktur global yang menjalankan semua AWS cloud. Anda harus bertanggung jawab untuk memelihara kendali atas konten yang di-hosting di infrastruktur ini. Untuk informasi selengkapnya tentang privasi data, silakan lihat [ Pertanyaan Umum Privasi Data](https://aws.amazon.com/compliance/data-privacy-faq/). Untuk informasi tentang perlindungan data di Eropa, lihat [Model Tanggung Jawab AWS Bersama dan posting blog GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) di Blog AWS Keamanan. Untuk informasi selengkapnya tentang mematuhi persyaratan GDPR, silakan lihat [Pusat Peraturan Perlindungan Data Umum (GDPR)](https://aws.amazon.com/compliance/gdpr-center/).

Amazon CloudWatch RUM menghasilkan cuplikan kode untuk Anda sematkan ke situs web atau kode aplikasi web Anda, berdasarkan masukan data pengguna akhir yang ingin Anda kumpulkan. Klien web, yang diunduh dan dikonfigurasi oleh snippet kode, menggunakan cookie (atau teknologi serupa) untuk membantu Anda mengumpulkan data pengguna akhir. Penggunaan cookie (atau teknologi serupa) tunduk pada peraturan privasi data di wilayah hukum tertentu. Sebelum menggunakan Amazon CloudWatch RUM, kami sangat menyarankan agar Anda menilai kewajiban kepatuhan Anda berdasarkan hukum yang berlaku, termasuk persyaratan hukum yang berlaku untuk memberikan pemberitahuan privasi yang memadai secara hukum dan mendapatkan persetujuan yang diperlukan untuk penggunaan cookie dan pemrosesan (termasuk pengumpulan) data pengguna akhir. Untuk informasi lebih lanjut tentang bagaimana klien web menggunakan cookie (atau teknologi serupa) dan data pengguna akhir apa yang dikumpulkan klien web, lihat dan. [Informasi yang dikumpulkan oleh klien web CloudWatch RUM](CloudWatch-RUM-datacollected.md) [CloudWatch Cookie klien web RUM (atau teknologi serupa)](#CloudWatch-RUM-cookies)

Kami sangat merekomendasikan agar Anda tidak memasukkan informasi identifikasi yang sensitif, misalnya nomor akun, alamat email, atau informasi pribadi lain Anda atau para pengguna, ke dalam bidang formulir kosong. Data apa pun yang Anda masukkan ke Amazon CloudWatch RUM atau layanan lain mungkin disertakan dalam log diagnostik. 



## CloudWatch Cookie klien web RUM (atau teknologi serupa)
<a name="CloudWatch-RUM-cookies"></a>

Klien web CloudWatch RUM mengumpulkan data tertentu tentang sesi pengguna secara default. Anda dapat memilih untuk mengaktifkan cookie agar klien web mengumpulkan ID pengguna dan ID sesi yang bertahan di seluruh pemuatan halaman. ID pengguna secara acak dihasilkan RUM.

Jika cookie ini diaktifkan, RUM dapat menampilkan jenis data berikut saat Anda melihat dasbor RUM untuk monitor aplikasi ini.
+ Data agregat berdasarkan pengguna IDs, seperti jumlah pengguna unik dan jumlah pengguna berbeda yang mengalami kesalahan. 
+ Data agregat berdasarkan sesi IDs, seperti jumlah sesi dan jumlah sesi yang mengalami kesalahan. 
+ *Perjalanan pengguna*, yang merupakan urutan halaman yang disertakan oleh setiap sesi pengguna sampel. 

**penting**  
Jika Anda tidak mengaktifkan cookie ini (atau teknologi serupa), klien web masih mencatat informasi tertentu tentang sesi pengguna akhir seperti browsertype/version, operating system type/version, jenis perangkat, dan sebagainya. Ini dikumpulkan untuk memberikan wawasan khusus halaman agregat, seperti tanda vital web, tampilan halaman, dan halaman yang mengalami kesalahan. Untuk informasi selengkapnya tentang data yang direkam, silakan lihat [Informasi yang dikumpulkan oleh klien web CloudWatch RUM](CloudWatch-RUM-datacollected.md).

# Informasi yang dikumpulkan oleh klien web CloudWatch RUM
<a name="CloudWatch-RUM-datacollected"></a>

Bagian ini mendokumentasikan **PutRumEvents**skema, yang mendefinisikan struktur data yang dapat Anda kumpulkan dari sesi pengguna menggunakan CloudWatch RUM.

**PutRumEvents**Permintaan mengirimkan struktur data dengan bidang berikut ke CloudWatch RUM.
+ ID batch peristiwa RUM ini
+ Detail monitor aplikasi, yang mencakup hal berikut:
  + ID monitor aplikasi
  + Versi aplikasi yang dipantau
+ Detail monitor aplikasi, yang mencakup hal berikut.** Ini dikumpulkan hanya jika monitor aplikasi mengaktifkan cookie.**
  + ID pengguna yang dihasilkan klien web
  + ID Sesi
+ Susunan [peristiwa RUM](#CloudWatch-RUM-datacollected-event) dalam batch ini.

## Skema peristiwa RUM
<a name="CloudWatch-RUM-datacollected-event"></a>

Struktur setiap peristiwa RUM mencakup bidang-bidang berikut.
+ ID peristiwa
+ Timestamp
+ Jenis peristiwa
+ Agen pengguna
+ [Metadata](#CloudWatch-RUM-datacollected-metadata)
+ [Detail peristiwa RUM](#CloudWatch-RUM-datacollected-eventDetails)

## Metadata peristiwa RUM
<a name="CloudWatch-RUM-datacollected-metadata"></a>

Metadata mencakup metadata halaman, metadata agen pengguna, metadata geolokasi, dan metadata domain.

### Metadata halaman
<a name="CloudWatch-RUM-datacollected-metadata-page"></a>

Metadata halaman meliputi berikut ini:
+ ID Halaman
+ Judul halaman
+ ID halaman induk. – **Ini dikumpulkan hanya jika monitor aplikasi mengaktifkan cookie.**
+ Kedalaman interaksi – **Ini dikumpulkan hanya jika monitor aplikasi mengaktifkan cookie.**
+ Tanda halaman – Anda dapat menambahkan tanda ke peristiwa halaman untuk mengelompokkan halaman bersama–sama. Untuk informasi selengkapnya, lihat [Gunakan grup halaman](CloudWatch-RUM-page-groups.md).

### Metadata agen pengguna
<a name="CloudWatch-RUM-datacollected-metadata-useragent"></a>

Metadata agen pengguna meliputi berikut ini:
+ Bahasa Browser
+ Nama Browser
+ Versi browser
+ Nama sistem operasi
+ Versi Sistem Operasi
+ Jenis perangkat
+ Jenis platform

### Metadata geolokasi
<a name="CloudWatch-RUM-datacollected-metadata-geolocation"></a>

Metadata geolokasi meliputi berikut ini:
+ Kode negara
+ Kode subdivisi

### Metadata domain
<a name="CloudWatch-RUM-datacollected-metadata-domain"></a>

Metadata domain mencakup domain URL.

## Detail peristiwa RUM
<a name="CloudWatch-RUM-datacollected-eventDetails"></a>

Detail peristiwa mengikuti salah satu jenis skema berikut, tergantung jenis peristiwa.

### Peristiwa awal sesi
<a name="CloudWatch-RUM-datacollected-sessionstart"></a>

Peristiwa ini tidak berisi bidang. **Ini dikumpulkan hanya jika monitor aplikasi mengaktifkan cookie.**

### Skema tampilan halaman
<a name="CloudWatch-RUM-datacollected-pageview"></a>

Peristiwa **tampilan halaman** berisi properti berikut. Anda dapat menonaktifkan koleksi tampilan halaman dengan mengonfigurasi klien web. Untuk informasi selengkapnya, lihat [dokumentasi klien web CloudWatch RUM](https://github.com/aws-observability/aws-rum-web/blob/main/docs/cdn_installation.md).


| Nama | Tipe | Deskripsi | 
| --- | --- | --- | 
|  **ID Halaman** |  String  |  ID yang secara unik mewakili halaman ini dalam aplikasi. Secara default, ini adalah jalur URL.  | 
|  **ID halaman induk** |  String  |  ID halaman yang digunakan pengguna saat mereka menavigasi ke halaman saat ini. **Ini dikumpulkan hanya jika monitor aplikasi mengaktifkan cookie.**   | 
|  **Kedalaman interaksi** |  String  |  **Ini dikumpulkan hanya jika monitor aplikasi mengaktifkan cookie.**   | 

### JavaScript skema kesalahan
<a name="CloudWatch-RUM-datacollected-JavaScriptError"></a>

JavaScript peristiwa kesalahan yang dihasilkan oleh agen berisi properti berikut. Klien web mengumpulkan peristiwa ini hanya jika Anda memilih untuk mengumpulkan telemetri kesalahan.


| Nama | Tipe | Deskripsi | 
| --- | --- | --- | 
|  **Jenis kesalahan** |  String  |  Nama kesalahan, jika ada. Untuk informasi selengkapnya, silakan lihat [Error.prototype.name](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/name). Beberapa browser mungkin tidak mendukung jenis kesalahan.  | 
|  **Pesan kesalahan** |  String  |  Pesan kesalahan. Untuk informasi selengkapnya, silakan lihat [Error.prototype.message](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/message). Jika bidang kesalahan tidak ada, ini adalah pesan dari peristiwa kesalahan. Untuk informasi selengkapnya, lihat [ErrorEvent](https://developer.mozilla.org/en-US/docs/Web/API/ErrorEvent).  Pesan kesalahan mungkin tidak konsisten di berbagai browser.  | 
|  **Jejak tumpukan** |  String  |  Jejak tumpukan kesalahan, jika ada, terpotong menjadi 150 karakter. Untuk informasi selengkapnya, silakan lihat [Error.prototype.stack](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/Stack).  Beberapa browser mungkin tidak mendukung jejak tumpukan.  | 

### Skema peristiwa DOM
<a name="CloudWatch-RUM-datacollected-DOMEvent"></a>

Peristiwa document object model (DOM) yang dihasilkan agen berisi properti berikut. Peristiwa ini tidak dikumpulkan secara default. Mereka dikumpulkan hanya jika Anda mengaktifkan telemetri interaksi. Untuk informasi selengkapnya, lihat [dokumentasi klien web CloudWatch RUM](https://github.com/aws-observability/aws-rum-web/blob/main/docs/cdn_installation.md).


| Nama | Tipe | Deskripsi | 
| --- | --- | --- | 
|  **Peristiwa** |  String  |  Jenis peristiwa DOM, seperti klik, gulir, atau arahkan kursor. Untuk informasi selengkapnya, silakan lihat [Referensi Perintah](https://developer.mozilla.org/en-US/docs/Web/Events).  | 
|  **Elemen** |  String  |  Jenis elemen DOM  | 
|  **ID Elemen** |  String  |  Jika elemen yang menghasilkan peristiwa memiliki ID, properti ini menyimpan ID tersebut. Untuk informasi selengkapnya, silakan lihat [Element.id](https://developer.mozilla.org/en-US/docs/Web/API/Element/id).  | 
|  **CSSLocator** |  String  |  Locator CSS digunakan untuk mengidentifikasi elemen DOM.  | 
|  **InteractionId** |  String  |  ID unik untuk interaksi antara pengguna dan UI.  | 

### Skema peristiwa navigasi
<a name="CloudWatch-RUM-datacollected-NavigationEvent"></a>

Peristiwa navigasi dikumpulkan hanya jika monitor aplikasi mengaktifkan telemetri performa.

Acara [navigasi menggunakan waktu Navigasi Level 1](https://www.w3.org/TR/navigation-timing/#performancetiming) dan [waktu Navigasi Level 2](https://w3c.github.io/navigation-timing) APIs. Level 2 tidak APIs didukung di semua browser, jadi bidang yang lebih baru ini bersifat opsional.

**catatan**  
Metrik stempel waktu didasarkan pada. [DOMHighResTimestamp](https://www.w3.org/TR/hr-time-2/#sec-domhighrestimestamp) Dengan Level 2 APIs, semua pengaturan waktu secara default relatif terhadap`startTime`. Tetapi untuk Level 1, metrik `navigationStart` dikurangi dari metrik timestamp untuk mendapatkan nilai relatif. Semua nilai timestamp dalam milidetik.

Peristiwa navigasi berisi properti berikut.


| Nama | Tipe | Deskripsi | Catatan | 
| --- | --- | --- | --- | 
|  **initiatorType** |  String  |  Merupakan jenis sumber daya yang memulai peristiwa performa.  |  **Nilai:** "navigasi" **Level 1:** "navigasi" **Level 2:** entryData.initiatorType | 
|  **navigationType** |  String  |  Merupakan jenis navigasi. Atribut ini tidak diperlukan. |  **Nilai:** Nilai harus berupa salah satu dari berikut ini: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM-datacollected.html) | 
|  **startTime** |  Nomor  |  Menunjukkan kapan peristiwa dipicu.  |  **Nilai:** 0 **Level 1:** entryData.navigationStart - entryData.navigationStart  **Level 2:** entryData.startTime | 
|  **unloadEventStart** |  Bilangan  |  Menunjukkan waktu ketika dokumen sebelumnya di jendela mulai dibongkar setelah peristiwa `unload` dilemparkan.  |  **Nilai:** Jika tidak ada dokumen sebelumnya atau jika dokumen sebelumnya atau salah satu pengalihan yang diperlukan tidak berasal dari asal yang sama, nilai yang dikembalikan adalah 0. **Level 1:** <pre>entryData.unloadEventStart > 0<br />  ? entryData.unloadEventStart - entryData.navigationStart<br />  : 0<br /></pre> **Level 2:** EntryData. unloadEventStart | 
|  **promptForUnload** |  Bilangan  |  Waktu yang dibutuhkan untuk membongkar dokumen. Dengan kata lain, waktu antara `unloadEventStart` dan `unloadEventEnd`. `UnloadEventEnd` mewakili momen dalam milidetik ketika penanganan peristiwa pembongkaran selesai.  |  **Nilai:** Jika tidak ada dokumen sebelumnya atau jika dokumen sebelumnya atau salah satu pengalihan yang diperlukan tidak berasal dari asal yang sama, nilai yang dikembalikan adalah 0. **Level 1:** EntryData. unloadEventEnd - EntryData. unloadEventStart **Level 2:** EntryData. unloadEventEnd - EntryData. unloadEventStart | 
|  **redirectCount** |  Nomor  |  Angka yang mewakili jumlah pengalihan sejak navigasi non-pengalihan terakhir di bawah konteks penjelajahan saat ini.  Atribut ini tidak diperlukan. |  **Nilai:** Jika tidak ada pengalihan atau jika ada pengalihan yang tidak memiliki asal yang sama dengan dokumen tujuan, nilai yang dikembalikan adalah 0. **Level 1:** Tidak tersedia **Level 2:** entryData.redirectCount | 
|  **redirectStart** |  Nomor  |  Waktu ketika pengalihan HTTP pertama dimulai.   |  **Nilai:** Jika tidak ada pengalihan atau jika ada pengalihan yang tidak memiliki asal yang sama dengan dokumen tujuan, nilai yang dikembalikan adalah 0. **Level 1:** <pre>entryData.redirectStart > 0<br />  ? entryData.redirectStart - entryData.navigationStart<br />  : 0</pre> **Level 2:** entryData.redirectStart | 
|  **redirectTime** |  Nomor  |  Waktu yang dibutuhkan untuk pengalihan HTTP. Inilah perbedaan antara `redirectStart` dan `redirectEnd`.   |  **Level 1:** : entryData.redirectEnd - entryData.redirectStart **Level 2:** : entryData.redirectEnd - entryData.redirectStart | 
|  **workerStart** |  Nomor  |  Ini adalah properti antarmuka `PerformanceResourceTiming`. Ini menandai awal operasi thread pekerja. Atribut ini tidak diperlukan. |  **Nilai:** Jika thread Service Worker sudah berjalan, atau segera sebelum memulai thread Service Worker, properti ini mengembalikan waktu segera sebelum pengiriman `FetchEvent`. Ini mengembalikan 0 jika sumber daya tidak dicegat Service Worker. **Level 1:** Tidak tersedia **Level 2:** entryData.workerStart | 
|  **workerTime** |  Nomor  |  Jika sumber daya dicegat oleh Service Worker, ini mengembalikan waktu yang diperlukan untuk operasi thread pekerja. Atribut ini tidak diperlukan. |  **Level 1:** Tidak tersedia  **Level 2:** <pre>entryData.workerStart > 0<br />   ? entryData.fetchStart - entryData.workerStart<br />   : 0</pre>  | 
|  **fetchStart** |  Nomor  |  Waktu ketika browser siap untuk mengambil dokumen menggunakan permintaan HTTP. Ini sebelum memeriksa cache aplikasi apa pun. |  **Level 1:**  <pre>: entryData.fetchStart > 0<br />  ? entryData.fetchStart - entryData.navigationStart<br />  : 0</pre> **Level 2:** entryData.fetchStart | 
|  **domainLookupStart** |  Bilangan  |  Waktu ketika pencarian domain dimulai. |  **Nilai:** Jika koneksi persisten digunakan atau jika informasi disimpan dalam cache atau sumber daya lokal, nilai akan sama dengan `fetchStart`. **Level 1:** <pre>entryData.domainLookupStart > 0<br />  ? entryData.domainLookupStart - entryData.navigationStart<br />  : 0</pre> **Level 2:** EntryData. domainLookupStart | 
|  **dns** |  Nomor  |  Waktu yang dibutuhkan untuk pencarian domain. |  **Nilai:** Jika sumber daya dan catatan DNS di-cache, nilai yang diharapkan adalah 0. **Level 1:** EntryData. domainLookupEnd - EntryData. domainLookupStart **Level 2:** EntryData. domainLookupEnd - EntryData. domainLookupStart | 
|  **nextHopProtocol** |  String  |  Sebuah string yang mewakili protokol jaringan yang digunakan untuk mengambil sumber daya. Atribut ini tidak diperlukan. |  **Level 1:** Tidak tersedia **Level 2:** EntryData. nextHopProtocol | 
|  **connectStart** |  Nomor  |  Waktu segera sebelum agen pengguna mulai membuat koneksi ke server untuk mengambil dokumen. |  **Nilai:** Jika koneksi RFC2616 persisten digunakan, atau jika dokumen saat ini diambil dari cache aplikasi yang relevan atau sumber daya lokal, atribut ini mengembalikan nilai. `domainLookupEnd` **Level 1:** <pre>entryData.connectStart > 0<br />  ? entryData.connectStart - entryData.navigationStart<br />  : 0</pre> **Level 2:** entryData.connectStart  | 
|  **menghubungkan** |  Nomor  |  Mengukur waktu yang diperlukan untuk membuat koneksi transportasi atau untuk melakukan autentikasi SSL. Ini juga termasuk waktu yang diblokir yang diambil ketika ada terlalu banyak permintaan bersamaan yang dikeluarkan oleh browser.  |  **Level 1:** entryData.connectEnd - entryData.connectStart **Level 2:** entryData.connectEnd - entryData.connectStart | 
|  **secureConnectionStart** |  Bilangan  |  Jika skema URL halaman saat ini adalah "https", atribut ini mengembalikan waktu segera sebelum agen pengguna memulai proses jabat tangan untuk mengamankan koneksi saat ini. Ini mengembalikan 0 jika HTTPS tidak digunakan. Untuk informasi selengkapnya tentang skema URL, silakan lihat [representasi URL](https://url.spec.whatwg.org/#concept-url-scheme).  |  **Rumus:** EntryData. secureConnectionStart | 
|  **tlsTime** |  Nomor  |  Waktu yang dibutuhkan untuk menyelesaikan jabat tangan SSL.  |  **Level 1:** <pre>entryData.secureConnectionStart > 0<br />   ? entryData.connectEnd - entryData.secureConnectionStart<br />   : 0</pre> **Level 2:** <pre>entryData.secureConnectionStart > 0<br />   ? entryData.connectEnd - entryData.secureConnectionStart<br />   : 0</pre>  | 
|  **requestStart** |  Nomor  |  Waktu segera sebelum agen pengguna mulai meminta sumber daya dari server, atau dari cache aplikasi yang relevan, atau dari sumber daya lokal.   | **Level 1:** <pre>: entryData.requestStart > 0<br />  ? entryData.requestStart - entryData.navigationStart<br />  : 0<br /></pre> **Level 2:** entryData.requestStart | 
|  **timeToFirstByte** |  Bilangan  |  Waktu yang dibutuhkan untuk menerima byte pertama informasi setelah permintaan dibuat. Waktu ini relatif terhadap `startTime`.   | **Level 1:** entryData.responseStart - entryData.requestStart **Level 2:** entryData.responseStart - entryData.requestStart | 
|  **responseStart** |  Nomor  |  Waktu segera setelah parser HTTP agen pengguna menerima byte pertama respons dari cache aplikasi yang relevan, atau dari sumber daya lokal, atau dari server.   | **Level 1:** <pre>entryData.responseStart > 0<br />   ? entryData.responseStart - entryData.navigationStart<br />   : 0</pre> **Level 2:** entryData.responseStart   | 
|  **responseTime** |  String  |  Waktu yang dibutuhkan untuk menerima respons lengkap dalam bentuk byte dari cache aplikasi yang relevan, atau dari sumber daya lokal, atau dari server.   | **Level 1:** <pre>entryData.responseStart > 0<br />  ? entryData.responseEnd - entryData.responseStart<br />  : 0</pre> **Level 2:** <pre>entryData.responseStart > 0<br />  ? entryData.responseEnd - entryData.responseStart<br />  : 0</pre>  | 
|  **domInteractive** |  Nomor  |  Waktu ketika parser selesai bekerja pada dokumen utama, dan HTML DOM dibangun. Pada saat ini, perubahan `Document.readyState` ini menjadi "interaktif" dan peristiwa `readystatechange` yang sesuai dilemparkan.  | **Level 1:** <pre>entryData.domInteractive > 0<br />  ? entryData.domInteractive - entryData.navigationStart<br />  : 0</pre> **Level 2:** entryData.domInteractive  | 
|  **domContentLoadedEventStart** |  Bilangan  |  Merupakan nilai waktu yang sama dengan waktu segera sebelum agen pengguna mengaktifkan peristiwa DOMContent Loaded pada dokumen saat ini. Peristiwa DOMContent Loaded diaktifkan ketika dokumen HTML awal telah dimuat dan diurai sepenuhnya. Pada saat ini, dokumen HTML utama telah selesai diuraikan, browser mulai membangun pohon render, dan subsumber daya masih harus dimuat. Ini tidak menunggu style sheet, citra, dan subframe untuk menyelesaikan pemuatan.  | **Level 1:** <pre>entryData.domContentLoadedEventStart > 0<br />  ? entryData.domContentLoadedEventStart - entryData.navigationStart<br />  : 0<br /></pre> **Level 2:** EntryData. domContentLoadedEventStart  | 
|  **domContentLoaded** |  Bilangan  |  Waktu mulai dan akhir konstruksi pohon render ini ditandai dengan `domContentLoadedEventStart` dan `domContentLoadedEventEnd`. Ini memungkinkan CloudWatch RUM melacak eksekusi. Properti adalah perbedaan antara `domContentLoadedStart` dan `domContentLoadedEnd`. Selama waktu ini, DOM dan CSSOM sudah siap. Properti ini menunggu eksekusi skrip, kecuali skrip asinkron dan dibuat secara dinamis. Jika skrip bergantung pada style sheet, `domContentLoaded` menunggu di style sheet juga. Ini tidak menunggu pada gambar.   Nilai sebenarnya dari `domContentLoadedStart` dan `domContentLoadedEnd` mendekati `domContentLoaded` di panel Jaringan Google Chrome. Ini menunjukkan waktu konstruksi pohon render HTML DOM \$1 CSSOM dari awal proses pemuatan halaman. Dalam kasus metrik navigasi, nilai `domContentLoaded` mewakili perbedaan antara nilai awal dan akhir, yang merupakan waktu yang diperlukan untuk mengunduh subsumber daya dan konstruksi pohon render saja.    | **Level 2:** EntryData. domContentLoadedEventEnd - EntryData. domContentLoadedEventStart  **Level 2:** EntryData. domContentLoadedEventEnd - EntryData. domContentLoadedEventStart  | 
|  **domComplete** |  Nomor  |  Waktu segera sebelum browser mengatur kesiapan dokumen saat ini dari dokumen saat ini untuk diselesaikan. Di titik ini, pemuatan subsumber daya, seperti gambar, selesai. Ini termasuk waktu yang dibutuhkan untuk mengunduh konten pemblokiran seperti CSS dan sinkron. JavaScript Ini mendekati `loadTime` di panel Jaringan Google Chrome.   | **Level 1:** <pre>entryData.domComplete > 0<br />  ? entryData.domComplete - entryData.navigationStart<br />  : 0<br /></pre> **Level 2:** entryData.domComplete  | 
|  **domProcessingTime** |  Bilangan  |  Total waktu antara respons dan acara pemuatan dimulai.  | **Level 1:** EntryData. loadEventStart - EntryData.responseEnd **Level 2:** EntryData. loadEventStart - EntryData.responseEnd  | 
|  **loadEventStart** |  Bilangan  |  Waktu segera sebelum peristiwa `load` dari dokumen saat ini terpicu.  |  **Level 1:** <pre>entryData.loadEventStart > 0<br />  ? entryData.loadEventStart - entryData.navigationStart<br />  : 0<br /></pre> **Level 2:** EntryData. loadEventStart | 
|  **loadEventTime** |  Bilangan  |  Perbedaan antara `loadEventStart` dan `loadEventEnd` . Fungsi atau logika tambahan yang menunggu peristiwa pemuatan ini akan diaktifkan selama waktu ini. |  **Level 1:** EntryData. loadEventEnd - EntryData. loadEventStart **Level 2:** EntryData. loadEventEnd - EntryData. loadEventStart | 
|  **durasi** |  String  |  Durasi adalah total waktu muat halaman. Ini mencatat waktu untuk mengunduh halaman utama dan semua subsumber daya sinkron, dan juga merender halaman. Sumber daya asinkron seperti skrip terus diunduh nanti. Ini adalah perbedaan antara properti `loadEventEnd` dan properti `startTime`.  | **Level 1:** EntryData. loadEventEnd - EntryData.navigationStart **Level 2:** entryData.duration | 
|  **headerSize** |  Nomor  |  Mengembalikan perbedaan antara `transferSize` dan `encodedBodySize`. Atribut ini tidak diperlukan.  | **Level 1:** Tidak tersedia **Level 2:** EntryData.transferSize - EntryData. encodedBodySize **Level 2:** EntryData.transferSize - EntryData. encodedBodySize | 
|  **compressionRatio** |  Nomor  |  Rasio `encodedBodySize` dan `decodedBodySize`. Nilai `encodedBodySize` adalah ukuran terkompresi dari sumber daya tidak termasuk header HTTP. Nilai `decodedBodySize` adalah ukuran sumber daya yang didekompresi tidak termasuk header HTTP. Atribut ini tidak diperlukan.  | **Level 1:** Tidak tersedia. **Level 2:**<pre>entryData.encodedBodySize > 0<br />  ? entryData.decodedBodySize / entryData.encodedBodySize<br />  : 0</pre>  | 
|  **navigationTimingLevel** |  Bilangan  |  Versi API waktu navigasi.  | **Nilai:** 1 atau 2  | 

### Skema peristiwa sumber daya
<a name="CloudWatch-RUM-datacollected-ResourceEvent"></a>

Peristiwa sumber daya dikumpulkan hanya jika monitor aplikasi mengaktifkan telemetri performa.

[Metrik stempel waktu didasarkan pada The typedef. DOMHigh ResTimeStamp ](https://www.w3.org/TR/hr-time-2/#sec-domhighrestimestamp) Dengan Level 2 APIs, secara default semua timing relatif terhadap`startTime`. Tetapi untuk Level 1 APIs, `navigationStart` metrik dikurangi dari metrik stempel waktu untuk mendapatkan nilai relatif. Semua nilai timestamp dalam milidetik.

Peristiwa sumber daya yang dihasilkan oleh agen berisi properti berikut.


| Nama | Tipe | Deskripsi | Catatan | 
| --- | --- | --- | --- | 
|  **targetUrl** |  String  |  Mengembalikan URL sumber daya.  |  **Formula:** [entryData.name](http://entrydata.name/) | 
|  **initiatorType** |  String  |  Merupakan jenis sumber daya yang memulai peristiwa sumber daya performa.  |  **Nilai:** "sumber daya" **Formula:** entryData.initiatorType | 
|  **durasi** |  String  |  Mengembalikan perbedaan antara properti `responseEnd` dan properti `startTime`.Atribut ini tidak diperlukan.  | **Formula:** entryData.duration | 
|  **transferSize** |  Nomor  |  Mengembalikan ukuran (dalam oktet) sumber daya yang diambil, termasuk bidang header respons dan tubuh muat respons.Atribut ini tidak diperlukan.  | **Formula:** entryData.transferSize | 
|  **fileType** |  String  |  Ekstensi berasal dari pola URL target.  |   | 

### Skema peristiwa catatan terbesar yang memuaskan
<a name="CloudWatch-RUM-datacollected-LargestPaintEvent"></a>

Peristiwa catatan terbesar yang memuaskan berisi properti berikut.

Peristiwa ini dikumpulkan hanya jika monitor aplikasi mengaktifkan telemetri performa.


| Nama | Deskripsi | 
| --- | --- | 
|  **Nilai** |  Untuk informasi selengkapnya, silakan lihat [Web Vitals](https://web.dev/vitals/).  | 

### Peristiwa penundaan input pertama
<a name="CloudWatch-RUM-datacollected-FirstInputDelayEvent"></a>

Peristiwa penundaan input pertama berisi properti berikut.

Peristiwa ini dikumpulkan hanya jika monitor aplikasi mengaktifkan telemetri performa.


| Nama | Deskripsi | 
| --- | --- | 
|  **Nilai** |  Untuk informasi selengkapnya, silakan lihat [Web Vitals](https://web.dev/vitals/).  | 

### Peristiwa pergeseran tata letak kumulatif
<a name="CloudWatch-RUM-datacollected-CumulativeShift"></a>

Peristiwa pergeseran tata letak kumulatif berisi properti berikut.

Peristiwa ini dikumpulkan hanya jika monitor aplikasi mengaktifkan telemetri performa.


| Nama | Deskripsi | 
| --- | --- | 
|  **Nilai** |  Untuk informasi selengkapnya, silakan lihat [Web Vitals](https://web.dev/vitals/).  | 

### Peristiwa HTTP
<a name="CloudWatch-RUM-datacollected-HTTP"></a>

Peristiwa HTTP dapat berisi properti berikut. Ini akan berisi bidang `Response` atau bidang `Error`, tetapi tidak keduanya.

Peristiwa ini dikumpulkan hanya jika monitor aplikasi mengaktifkan telemetri HTTP.


| Nama | Deskripsi | 
| --- | --- | 
|  **Permintaan** |  Kolom permintaan mencakup hal berikut ini: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM-datacollected.html)  | 
|  **Respons** |  Bidang respons mencakup hal berikut ini: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM-datacollected.html)  | 
|  **Kesalahan** |  Bidang kesalahan mencakup berikut ini: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM-datacollected.html)  | 

### Skema peristiwa jejak X-Ray
<a name="CloudWatch-RUM-datacollected-xraytraceEvent"></a>

Peristiwa ini dikumpulkan hanya jika monitor aplikasi mengaktifkan pelacakan X-Ray.

Untuk informasi tentang skema peristiwa jejak X-Ray, silakan lihat [dokumen segmen AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/xray-api-segmentdocuments.html).

# Waktu perubahan rute untuk aplikasi satu halaman
<a name="CloudWatch-RUM-route-change-timing"></a>

Dalam aplikasi multi-halaman tradisional, ketika pengguna meminta konten baru untuk dimuat, pengguna sebenarnya meminta halaman HTML baru dari server. Akibatnya, klien web CloudWatch RUM menangkap waktu muat menggunakan metrik API kinerja reguler.

Namun, aplikasi web satu halaman menggunakan JavaScript dan Ajax untuk memperbarui antarmuka tanpa memuat halaman baru dari server. Pembaruan satu halaman tidak direkam oleh API waktu browser, alih-alih menggunakan waktu perubahan rute.

CloudWatch RUM mendukung pemantauan beban halaman penuh dari server dan pembaruan satu halaman, dengan perbedaan berikut:
+ Untuk waktu perubahan rute, tidak ada metrik yang disediakan browser seperti `tlsTime`, `timeToFirstByte`, dan sebagainya.
+ Untuk waktu perubahan rute, bidang `initiatorType` adalah `route_change`. 

Klien web CloudWatch RUM mendengarkan interaksi pengguna yang dapat menyebabkan perubahan rute, dan ketika interaksi pengguna tersebut direkam, klien web mencatat stempel waktu. Kemudian waktu perubahan rute akan dimulai jika kedua hal berikut benar:
+ API riwayat browser (kecuali tombol maju dan mundur browser) digunakan untuk melakukan perubahan rute.
+ Perbedaan antara waktu deteksi perubahan rute dan timestamp interaksi pengguna terbaru kurang dari 1000 ms. Ini menghindari penyimpangan data.

Kemudian, setelah waktu perubahan rute dimulai, waktu tersebut selesai jika tidak ada permintaan AJAX dan mutasi DOM yang sedang berlangsung. Kemudian timestamp dari aktivitas yang selesai terakhir akan digunakan sebagai timestamp penyelesaian.

Waktu perubahan rute akan habis jika ada permintaan AJAX yang sedang berlangsung atau mutasi DOM selama lebih dari 10 detik (secara default). Dalam hal ini, klien web CloudWatch RUM tidak akan lagi mencatat waktu untuk perubahan rute ini.

Akibatnya, durasi peristiwa perubahan rute dihitung sebagai berikut:

```
(time of latest completed activity) - (latest user interaction timestamp)
```

# Kelola aplikasi Anda yang menggunakan CloudWatch RUM
<a name="CloudWatch-RUM-manage"></a>

Gunakan langkah-langkah di bagian ini untuk mengelola penggunaan RUM aplikasi Anda. CloudWatch

**Topics**
+ [Bagaimana cara saya menemukan potongan kode yang sudah saya buat?](CloudWatch-RUM-find-code-snippet.md)
+ [Mengedit pengaturan monitor aplikasi CloudWatch RUM Anda](CloudWatch-RUM-edit-application.md)
+ [Berhenti menggunakan CloudWatch RUM atau menghapus monitor aplikasi](CloudWatch-RUM-delete-appmonitor.md)

# Bagaimana cara saya menemukan potongan kode yang sudah saya buat?
<a name="CloudWatch-RUM-find-code-snippet"></a>

Untuk menemukan cuplikan kode CloudWatch RUM yang telah Anda buat untuk aplikasi, ikuti langkah-langkah ini.

**Untuk menemukan potongan kode yang telah Anda buat**

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

1. Di panel navigasi, pilih **Sinyal Aplikasi**, **RUM**.

1. Arahkan ke tab **Konfigurasi**, bagian **Cuplikan kode.**

1. Pilih **Salin/Unduh untuk instrumentasi** Anda masing-masing.

# Mengedit pengaturan monitor aplikasi CloudWatch RUM Anda
<a name="CloudWatch-RUM-edit-application"></a>

Untuk mengubah pengaturan monitor aplikasi, ikuti langkah-langkah berikut. Anda dapat mengubah pengaturan apa pun kecuali nama monitor aplikasi.

**Untuk mengedit bagaimana aplikasi Anda menggunakan CloudWatch RUM**

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

1. Di panel navigasi, pilih **Sinyal Aplikasi**, **RUM**.

1. Pilih tombol di sebelah nama aplikasi, lalu pilih **Tindakan**, **Sunting**.

1. Ubah pengaturan apa pun kecuali nama aplikasi. Untuk informasi selengkapnya tentang pengaturan, silakan lihat [Membuat monitor aplikasi CloudWatch RUM untuk aplikasi web](CloudWatch-RUM-get-started-create-app-monitor.md).

1. Setelah selesai, silakan pilih **Simpan**.

   Mengubah pengaturan mengubah potongan kode. Anda sekarang harus menempelkan potongan kode yang diperbarui ke dalam aplikasi Anda.

1. **Setelah cuplikan kode dibuat, pilih **Salin ke clipboard** atau **Unduh**, lalu pilih Selesai.**

   Untuk memulai pemantauan dengan pengaturan baru, Anda memasukkan potongan kode ke dalam aplikasi Anda.

# Berhenti menggunakan CloudWatch RUM atau menghapus monitor aplikasi
<a name="CloudWatch-RUM-delete-appmonitor"></a>

Untuk berhenti menggunakan CloudWatch RUM dengan aplikasi, hapus cuplikan kode yang dihasilkan RUM dari kode aplikasi Anda.

Untuk menghapus monitor aplikasi RUM, ikuti langkah-langkah ini.

**Untuk menghapus monitor aplikasi**

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

1. Di panel navigasi, pilih **Sinyal Aplikasi**, **RUM**.

1. Pilih tombol di sebelah nama aplikasi, lalu pilih **Tindakan**, **Hapus**.

1. Di kotak konfirmasi, masukkan **Delete** lalu pilih **Hapus**.

1. Jika Anda belum melakukannya, hapus cuplikan kode CloudWatch RUM dari kode aplikasi Anda.

# Pemecahan Masalah CloudWatch RUM
<a name="CloudWatch-RUM-troubleshooting"></a>

Bagian ini berisi tips untuk membantu Anda memecahkan masalah CloudWatch RUM.

## Tidak ada data untuk aplikasi saya
<a name="CloudWatch-RUM-troubleshooting-nodata"></a>

Pertama, pastikan bahwa potongan kode telah dimasukkan dengan benar ke dalam aplikasi Anda. Untuk informasi selengkapnya, lihat [Memasukkan cuplikan kode monitor CloudWatch aplikasi ke dalam aplikasi Anda](CloudWatch-RUM-get-started-insert-code-snippet.md).

Jika bukan itu masalahnya, maka mungkin belum ada lalu lintas ke aplikasi Anda. Hasilkan beberapa lalu lintas dengan mengakses aplikasi Anda dengan cara yang sama seperti yang dilakukan pengguna.

## Data telah berhenti direkam untuk aplikasi saya
<a name="CloudWatch-RUM-troubleshooting-nonewdata"></a>

Aplikasi Anda mungkin telah diperbarui dan sekarang tidak lagi berisi cuplikan kode CloudWatch RUM. Memeriksa kode aplikasi Anda.

Kemungkinan lain adalah seseorang mungkin telah memperbarui potongan kode tetapi kemudian tidak memasukkan potongan yang diperbarui ke dalam aplikasi. Temukan potongan kode yang benar saat ini dengan mengikuti petunjuk di [Bagaimana cara saya menemukan potongan kode yang sudah saya buat?](CloudWatch-RUM-find-code-snippet.md) dan bandingkan dengan potongan kode yang ditempelkan ke aplikasi Anda.