

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

# Membuat profil operasi Amazon DocumentDB
<a name="profiling"></a>

Anda dapat menggunakan profiler di Amazon DocumentDB (dengan kompatibilitas MongoDB) untuk mencatat waktu eksekusi dan detail operasi yang dilakukan di klaster Anda. Profiler berguna untuk memantau operasi paling lambat di klaster Anda untuk membantu Anda meningkatkan performa kueri individual dan performa klaster secara keseluruhan.

Secara default, fitur profiler dinonaktifkan. Saat diaktifkan, profiler mencatat operasi yang memakan waktu lebih lama dari nilai ambang batas yang ditentukan pelanggan (misalnya, 100 ms) ke Amazon Logs. CloudWatch Detail yang dicatat termasuk perintah yang diprofilkan, waktu, ringkasan rencana, dan metadata klien. Setelah operasi dicatat ke CloudWatch Log, Anda dapat menggunakan Wawasan CloudWatch Log untuk menganalisis, memantau, dan mengarsipkan data profil Amazon DocumentDB Anda. Kueri umum disediakan di bagian [Pertanyaan umum](#profiling.common-queries). 

Saat diaktifkan, profiler menggunakan sumber daya tambahan di klaster Anda. Kami merekomendasikan Anda memulai dengan nilai ambang batas yang tinggi (misalnya, 500 milidetik) dan secara bertahap menurunkan nilai tersebut untuk mengidentifikasi operasi yang lambat. Memulai dengan nilai ambang 50 milidetik dapat menyebabkan masalah performa pada klaster Anda untuk aplikasi dengan throughput tinggi. Profiler diaktifkan di tingkat klaster dan berfungsi pada semua instans dan basis data dalam klaster. Amazon DocumentDB mencatat operasi ke CloudWatch Amazon Logs dengan upaya terbaik.

Meskipun Amazon DocumentDB tidak mengenakan biaya tambahan untuk mengaktifkan profiler, Anda dikenakan tarif standar untuk penggunaan Log. CloudWatch Untuk informasi tentang harga CloudWatch Log, lihat [ CloudWatch harga Amazon](https://aws.amazon.com/cloudwatch/pricing/). 

**Topics**
+ [Operasi yang didukung](#profiling.supported-commands)
+ [Batasan](#profiling.limitations)
+ [Mengaktifkan profiler](#profiling.enable-profiling)
+ [Menonaktifkan profiler](#profiling.disable-profiling)
+ [Menonaktifkan ekspor log profiler](#profiling.disabling-logs-export)
+ [Mengakses log profiler Anda](#profiling.accessing)
+ [Pertanyaan umum](#profiling.common-queries)

## Operasi yang didukung
<a name="profiling.supported-commands"></a>

Profiler Amazon DocumentDB mendukung operasi berikut:
+ `aggregate`
+ `count`
+ `delete`
+ `distinct`
+ `find` (OP\$1QUERY dan perintah)
+ `findAndModify`
+ `insert`
+ `update`

## Batasan
<a name="profiling.limitations"></a>

Profiler kueri lambat hanya dapat memancarkan log profiler jika seluruh set hasil kueri dapat ditampung dalam satu batch, dan jika set hasil di bawah 16 MB (ukuran BSON maksimum). Set hasil yang lebih besar dari 16MB secara otomatis dibagi menjadi beberapa batch.

Sebagian besar driver atau shell dapat menetapkan ukuran batch default yang kecil. Anda dapat menentukan ukuran batch sebagai bagian dari kueri Anda. Untuk tujuan menangkap log kueri lambat, kami merekomendasikan ukuran batch yang melebihi ukuran set hasil yang Anda harapkan. Jika Anda tidak yakin dengan ukuran set hasil, atau jika bervariasi, Anda juga dapat mengatur ukuran batch ke jumlah besar (mis., 100rb).

Namun, menggunakan ukuran batch yang lebih besar berarti lebih banyak hasil yang harus diambil dari basis data sebelum respons dikirim ke klien. Untuk beberapa kueri, hal itu dapat membuat penundaan lebih lama sebelum Anda mendapatkan hasil. Jika Anda tidak berencana untuk mengkonsumsi seluruh set hasil, ada kemungkinan bahwa Anda akan menghabiskan lebih banyak I/Os untuk memproses kueri dan membuang hasilnya.

## Mengaktifkan profiler Amazon DocumentDB
<a name="profiling.enable-profiling"></a>

Mengaktifkan profiler pada sebuah klaster adalah proses tiga langkah. Pastikan bahwa semua langkah selesai, atau log profil tidak akan dikirim ke CloudWatch Log. Profiler diatur pada tingkat klaster dan dilakukan pada semua basis data dan intans klaster.

**Untuk mengaktifkan profiler di klaster**

1. Karena Anda tidak dapat mengubah grup parameter klaster default, pastikan Anda memiliki grup parameter klaster kustom yang tersedia. Untuk informasi selengkapnya, lihat [Membuat grup parameter cluster Amazon DocumentDB](cluster_parameter_groups-create.md). 

1. Dengan menggunakan grup parameter klaster kustom yang tersedia, ubah parameter berikut: `profiler`, `profiler_threshold_ms`, dan `profiler_sampling_rate`. Untuk informasi selengkapnya, lihat [Memodifikasi grup parameter cluster Amazon DocumentDB](cluster_parameter_groups-modify.md). 

1. Buat atau modifikasi cluster Anda untuk menggunakan grup parameter cluster kustom dan untuk mengaktifkan mengekspor `profiler` CloudWatch log ke Log.

Bagian berikut menunjukkan bagaimana menerapkan langkah-langkah ini menggunakan Konsol Manajemen AWS dan AWS Command Line Interface (AWS CLI).

------
#### [ Using the Konsol Manajemen AWS ]

1. Sebelum Anda mulai, buat klaster Amazon DocumentDB dan grup parameter klaster kustom jika Anda belum memilikinya. Untuk informasi selengkapnya, lihat [Membuat grup parameter cluster Amazon DocumentDB](cluster_parameter_groups-create.md) dan [Membuat cluster Amazon DocumentDB](db-cluster-create.md). 

1. Dengan menggunakan grup parameter klaster kustom yang tersedia, ubah parameter berikut. Untuk informasi selengkapnya, lihat [Memodifikasi grup parameter cluster Amazon DocumentDB](cluster_parameter_groups-modify.md). 
   + `profiler` — Mengaktifkan atau menonaktifkan pembuatan profil kueri. Nilai yang diizinkan adalah `enabled ` dan `disabled`. Nilai default-nya adalah `disabled`. Untuk mengaktifkan pembuatan profil, atur nilainya ke `enabled`.
   + `profiler_threshold_ms`— Ketika `profiler` diatur ke`enabled`, semua perintah yang memakan waktu lebih lama dari ` profiler_threshold_ms` yang dicatat CloudWatch. Nilai yang diizinkan adalah `[50-INT_MAX]`. Nilai default-nya adalah `100`.
   + `profiler_sampling_rate` — Bagian dari operasi lambat yang harus diprofilkan atau dicatat. Nilai yang diizinkan adalah `[0.0-1.0]`. Nilai default-nya adalah `1.0`.

1. Ubah klaster Anda untuk menggunakan grup parameter klaster kustom dan setel ekspor log profiler untuk dipublikasikan ke Amazon. CloudWatch

   1. Di panel navigasi, pilih **Klaster** untuk menambahkan grup parameter kustom Anda ke sebuah klaster.

   1. Pilih tombol di sebelah kiri nama klaster yang ingin Anda kaitkan dengan grup parameter Anda. Pilih **Tindakan**, lalu **Modifikasi** untuk memodifikasi klaster Anda.

   1. Di bawah **Opsi klaster**, pilih grup parameter kustom dari langkah di atas untuk menambahkannya ke klaster Anda.

   1. Di bawah **Ekspor log**, pilih **Log profiler** untuk dipublikasikan ke Amazon. CloudWatch

   1. Pilih **Lanjutkan** dan lihat ringkasan dari modifikasi Anda.

   1. Setelah memverifikasi perubahan Anda, Anda dapat menerapkannya segera atau selama jendela pemeliharaan berikutnya di bawah **Penjadwalan modifikasi **.

   1. Pilih **Ubah klaster** untuk memperbarui klaster Anda dengan grup parameter baru Anda. 

------
#### [ Using the AWS CLI ]

Prosedur berikut mengaktifkan profiler pada semua operasi yang didukung untuk klaster `sample-cluster`.

1. Sebelum Anda mulai, pastikan bahwa Anda memiliki grup parameter klaster kustom yang tersedia dengan menjalankan perintah berikut, dan meninjau output untuk grup parameter klaster yang tidak memiliki `default` dalam nama dan memiliki `docdb3.6` sebagai keluarga grup parameter. Jika Anda tidak memiliki grup parameter klaster bukan-default, lihat [Membuat grup parameter cluster Amazon DocumentDB](cluster_parameter_groups-create.md). 

   ```
   aws docdb describe-db-cluster-parameter-groups \
       --query 'DBClusterParameterGroups[*].[DBClusterParameterGroupName,DBParameterGroupFamily]'
   ```

   Pada output berikut, hanya `sample-parameter-group ` yang memenuhi kedua kriteria.

   ```
   [
          [
              "default.docdb3.6",
              "docdb3.6"
          ],
          [
              "sample-parameter-group",
              "docdb3.6"
          ]
   ]
   ```

1. Dengan menggunakan grup parameter klaster kustom Anda, ubah parameter berikut:
   + `profiler` — Mengaktifkan atau menonaktifkan pembuatan profil kueri. Nilai yang diizinkan adalah `enabled ` dan `disabled`. Nilai default-nya adalah `disabled`. Untuk mengaktifkan pembuatan profil, atur nilainya ke `enabled`.
   + `profiler_threshold_ms`— Ketika `profiler` diatur ke`enabled`, semua perintah membutuhkan waktu lebih lama dari `profiler_threshold_ms` yang dicatat CloudWatch. Nilai yang diizinkan adalah `[50-INT_MAX]`. Nilai default-nya adalah `100`. 
   + `profiler_sampling_rate` — Bagian dari operasi lambat yang harus diprofilkan atau dicatat. Nilai yang diizinkan adalah `[0.0-1.0]`. Nilai default-nya adalah `1.0`.

   ```
   aws docdb modify-db-cluster-parameter-group \
       --db-cluster-parameter-group-name sample-parameter-group \
       --parameters ParameterName=profiler,ParameterValue=enabled,ApplyMethod=immediate \
                    ParameterName=profiler_threshold_ms,ParameterValue=100,ApplyMethod=immediate \
                    ParameterName=profiler_sampling_rate,ParameterValue=0.5,ApplyMethod=immediate
   ```

1. Ubah klaster Amazon DocumentDB Anda sehingga menggunakan grup parameter klaster kustom `sample-parameter-group` dari langkah sebelumnya dan atur parameter `--enable-cloudwatch-logs-exports` ke `profiler`.

   Kode berikut memodifikasi cluster `sample-cluster` untuk menggunakan `sample-parameter-group` dari langkah sebelumnya, dan `profiler` menambah ekspor CloudWatch Log yang diaktifkan.

   ```
   aws docdb modify-db-cluster \
          --db-cluster-identifier sample-cluster \
          --db-cluster-parameter-group-name sample-parameter-group \
          --cloudwatch-logs-export-configuration '{"EnableLogTypes":["profiler"]}'
   ```

   Output dari operasi ini akan terlihat seperti berikut.

   ```
   {
       "DBCluster": {
           "AvailabilityZones": [
               "us-east-1c",
               "us-east-1b",
               "us-east-1a"
           ],
           "BackupRetentionPeriod": 1,
           "DBClusterIdentifier": "sample-cluster",
           "DBClusterParameterGroup": "sample-parameter-group",
           "DBSubnetGroup": "default",
           "Status": "available",
           "EarliestRestorableTime": "2020-04-07T02:05:12.479Z",
           "Endpoint": "sample-cluster.node.us-east-1.docdb.amazonaws.com",
           "ReaderEndpoint": "sample-cluster.node.us-east-1.docdb.amazonaws.com",
           "MultiAZ": false,
           "Engine": "docdb",
           "EngineVersion": "3.6.0",
           "LatestRestorableTime": "2020-04-08T22:08:59.317Z",
           "Port": 27017,
           "MasterUsername": "test",
           "PreferredBackupWindow": "02:00-02:30",
           "PreferredMaintenanceWindow": "tue:09:50-tue:10:20",
           "DBClusterMembers": [
               {
                   "DBInstanceIdentifier": "sample-instance-1",
                   "IsClusterWriter": true,
                   "DBClusterParameterGroupStatus": "in-sync",
                   "PromotionTier": 1
               },
               {
                   "DBInstanceIdentifier": "sample-instance-2",
                   "IsClusterWriter": true,
                   "DBClusterParameterGroupStatus": "in-sync",
                   "PromotionTier": 1
               }
           ],
           "VpcSecurityGroups": [
               {
                   "VpcSecurityGroupId": "sg-abcd0123",
                   "Status": "active"
               }
           ],
           "HostedZoneId": "ABCDEFGHIJKLM",
           "StorageEncrypted": true,
           "KmsKeyId": "arn:aws:kms:us-east-1:<accountID>:key/sample-key",
           "DbClusterResourceId": "cluster-ABCDEFGHIJKLMNOPQRSTUVWXYZ",
           "DBClusterArn": "arn:aws:rds:us-east-1:<accountID>:cluster:sample-cluster",
           "AssociatedRoles": [],
           "ClusterCreateTime": "2020-01-10T22:13:38.261Z",
           "EnabledCloudwatchLogsExports": [
               "profiler"
           ],
           "DeletionProtection": true
       }
   }
   ```

------

## Menonaktifkan profiler Amazon DocumentDB
<a name="profiling.disable-profiling"></a>

Untuk menonaktifkan profiler, Anda menonaktifkan `profiler` parameter dan ekspor `profiler` log ke CloudWatch Log.

### Menonaktifkan Profiler
<a name="profiling.disable-profiler"></a>

Anda dapat menonaktifkan `profiler` parameter menggunakan Konsol Manajemen AWS atau AWS CLI, sebagai berikut.

------
#### [ Using the Konsol Manajemen AWS ]

Prosedur berikut menggunakan Konsol Manajemen AWS untuk menonaktifkan Amazon `profiler` DocumentDB.

1. [Masuk ke Konsol Manajemen AWS, dan buka konsol Amazon DocumentDB di /docdb. https://console.aws.amazon.com](https://console.aws.amazon.com/docdb)

1. Di panel navigasi, pilih **Grup parameter**. Kemudian pilih nama grup parameter klaster yang ingin Anda nonaktifkan profilernya.

1. Di halaman **Parameter klaster** yang dihasilkan, pilih tombol di sebelah kiri parameter `profiler` dan pilih **Edit**.

1. Di kotak dialog **Ubah profiler**, pilih `disabled` di dalam daftar.

1. Pilih **Ubah parameter klaster**. 

------
#### [ Using the AWS CLI ]

Untuk menonaktifkan `profiler` pada klaster menggunakan AWS CLI, modifikasi klaster sebagai berikut.

```
aws docdb modify-db-cluster-parameter-group \
    --db-cluster-parameter-group-name sample-parameter-group \
    --parameters ParameterName=profiler,ParameterValue=disabled,ApplyMethod=immediate
```

------

## Menonaktifkan ekspor log profiler
<a name="profiling.disabling-logs-export"></a>

Anda dapat menonaktifkan mengekspor `profiler` CloudWatch log ke Log dengan menggunakan salah satu Konsol Manajemen AWS atau AWS CLI, sebagai berikut.

------
#### [ Using the Konsol Manajemen AWS ]

Prosedur berikut menggunakan Konsol Manajemen AWS untuk menonaktifkan Amazon DocumentDB mengekspor log ke. CloudWatch

1. [Buka konsol Amazon DocumentDB di /docdb. https://console.aws.amazon.com](https://console.aws.amazon.com/docdb)

1. Pada panel navigasi, silakan pilih **Klaster**. Pilih tombol di sebelah kiri nama klaster yang log ekspornya ingin Anda nonaktifkan.

1. Pada menu **Tindakan**, pilih **Modifikasi**.

1. Gulir ke bawah ke bagian **Ekspor log** dan batalkan pilihan **Log profiler**. 

1. Pilih **Lanjutkan**.

1. Tinjau perubahan Anda, lalu pilih kapan Anda ingin perubahan ini diterapkan ke klaster Anda:
   + **Terapkan selama jendela pemeliharaan terjadwal berikutnya**
   + **Terapkan segera**

1. Pilih **Ubah klaster**.

------
#### [ Using the AWS CLI ]

Kode berikut memodifikasi cluster `sample-cluster ` dan menonaktifkan log CloudWatch profiler.

**Example**  
Untuk Linux, macOS, atau Unix:  

```
aws docdb modify-db-cluster \
   --db-cluster-identifier sample-cluster \
   --cloudwatch-logs-export-configuration '{"DisableLogTypes":["profiler"]}'
```
Untuk Windows:  

```
aws docdb modify-db-cluster ^
   --db-cluster-identifier sample-cluster ^
   --cloudwatch-logs-export-configuration '{"DisableLogTypes":["profiler"]}'
```
Output dari operasi ini terlihat seperti berikut.  

```
{
    "DBCluster": {
        "AvailabilityZones": [
            "us-east-1c",
            "us-east-1b",
            "us-east-1a"
        ],
        "BackupRetentionPeriod": 1,
        "DBClusterIdentifier": "sample-cluster",
        "DBClusterParameterGroup": "sample-parameter-group",
        "DBSubnetGroup": "default",
        "Status": "available",
        "EarliestRestorableTime": "2020-04-08T02:05:17.266Z",
        "Endpoint": "sample-cluster.node.us-east-1.docdb.amazonaws.com",
        "ReaderEndpoint": "sample-cluster.node.us-east-1.docdb.amazonaws.com",
        "MultiAZ": false,
        "Engine": "docdb",
        "EngineVersion": "3.6.0",
        "LatestRestorableTime": "2020-04-09T05:14:44.356Z",
        "Port": 27017,
        "MasterUsername": "test",
        "PreferredBackupWindow": "02:00-02:30",
        "PreferredMaintenanceWindow": "tue:09:50-tue:10:20",
        "DBClusterMembers": [
            {
                "DBInstanceIdentifier": "sample-instance-1",
                "IsClusterWriter": true,
                "DBClusterParameterGroupStatus": "in-sync",
                "PromotionTier": 1
            },
            {
                "DBInstanceIdentifier": "sample-instance-2",
                "IsClusterWriter": true,
                "DBClusterParameterGroupStatus": "in-sync",
                "PromotionTier": 1
            }
        ],
        "VpcSecurityGroups": [
            {
                "VpcSecurityGroupId": "sg-abcd0123",
                "Status": "active"
            }
        ],
        "HostedZoneId": "ABCDEFGHIJKLM",
        "StorageEncrypted": true,
        "KmsKeyId": "arn:aws:kms:us-east-1:<accountID>:key/sample-key",
        "DbClusterResourceId": "cluster-ABCDEFGHIJKLMNOPQRSTUVWXYZ",
        "DBClusterArn": "arn:aws:rds:us-east-1:<accountID>:cluster:sample-cluster",
        "AssociatedRoles": [],
        "ClusterCreateTime": "2020-01-10T22:13:38.261Z",
        "DeletionProtection": true
    }
}
```

------

## Mengakses log profiler Amazon DocumentDB Anda
<a name="profiling.accessing"></a>

Ikuti langkah-langkah ini untuk mengakses log profil Anda di Amazon CloudWatch.

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

1. Pastikan Anda berada di Wilayah yang sama dengan klaster Amazon DocumentDB Anda.

1. Pilih **Log** di panel navigasi.

1. Untuk menemukan log profiler untuk klaster Anda, dalam daftar, pilih `/aws/docdb/yourClusterName/profiler`.

   Log profil untuk setiap instans Anda tersedia di bawah setiap nama instans masing-masing.

## Pertanyaan umum
<a name="profiling.common-queries"></a>

Berikut ini adalah beberapa kueri umum yang dapat Anda gunakan untuk menganalisis perintah yang diprofilkan. Untuk informasi selengkapnya tentang Wawasan CloudWatch Log, lihat [Menganalisis Data Log dengan Wawasan CloudWatch Log dan Kueri](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html) [Contoh](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax-examples.html). 

### Dapatkan 10 operasi paling lambat pada koleksi tertentu
<a name="profiling.common-queries.slow-queries-on-collection"></a>

```
filter ns="test.foo" | sort millis desc | limit 10
```

### Dapatkan semua operasi pembaruan pada koleksi yang memakan waktu lebih dari 60 ms
<a name="profiling.common-queries.updates-gt-60-ms"></a>

```
filter millis > 60 and op = "update"
```

### Dapatkan 10 operasi paling lambat dalam sebulan terakhir
<a name="profiling.common-queries.slow-queries-last-month"></a>

```
sort millis desc | limit 10
```

### Dapatkan semua pertanyaan dengan ringkasan paket COLLSCAN
<a name="profiling.common-queries.collscan-plan-summary"></a>

```
filter planSummary="COLLSCAN"
```