

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

# Membuat kebijakan penskalaan pelacakan target untuk Application Auto Scaling menggunakan matematika metrik
<a name="application-auto-scaling-target-tracking-metric-math"></a>

Menggunakan matematika metrik, Anda dapat menanyakan beberapa CloudWatch metrik dan menggunakan ekspresi matematika untuk membuat deret waktu baru berdasarkan metrik ini. Anda dapat memvisualisasikan deret waktu yang dihasilkan di CloudWatch konsol dan menambahkannya ke dasbor. Untuk informasi selengkapnya tentang matematika [metrik, lihat Menggunakan matematika metrik](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html) di *Panduan CloudWatch Pengguna Amazon*. 

Pertimbangan berikut berlaku untuk ekspresi matematika metrik:
+ Anda dapat menanyakan CloudWatch metrik apa pun yang tersedia. Setiap metrik adalah kombinasi unik dari nama metrik, namespace, dan nol atau lebih dimensi. 
+ Anda dapat menggunakan operator aritmatika (\$1 - \$1/^), fungsi statistik (seperti AVG atau SUM), atau fungsi lain yang mendukung. CloudWatch 
+ Anda dapat menggunakan metrik dan hasil ekspresi matematika lainnya dalam rumus ekspresi matematika. 
+ Setiap ekspresi yang digunakan dalam spesifikasi metrik pada akhirnya harus mengembalikan satu deret waktu.
+ Anda dapat memverifikasi bahwa ekspresi matematika metrik valid dengan menggunakan CloudWatch konsol atau CloudWatch [GetMetricData](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html)API.

**Topics**
+ [Contoh: backlog antrian Amazon SQS per tugas](#metric-math-sqs-queue-backlog)
+ [Batasan](#metric-math-limitations)

## Contoh: backlog antrian Amazon SQS per tugas
<a name="metric-math-sqs-queue-backlog"></a>

Untuk menghitung backlog antrean Amazon SQS per tugas, ambil perkiraan jumlah pesan yang tersedia untuk diambil dari antrian dan bagi nomor tersebut dengan jumlah tugas Amazon ECS yang berjalan di layanan. Untuk informasi selengkapnya, lihat [Auto Scaling Amazon Elastic Container Service (ECS) menggunakan metrik kustom](https://aws.amazon.com/blogs/containers/amazon-elastic-container-service-ecs-auto-scaling-using-custom-metrics/) di AWS Blog Komputasi.

Logika untuk ekspresi adalah ini:

 `sum of (number of messages in the queue)/(number of tasks that are currently in the RUNNING state)`

Maka informasi CloudWatch metrik Anda adalah sebagai berikut.


| ID | CloudWatch metrik | Statistik | Periode | 
| --- | --- | --- | --- | 
| m1 | ApproximateNumberOfMessagesVisible | Jumlah | 1 menit | 
| m2 | RunningTaskCount | Rata-rata | 1 menit | 

ID dan ekspresi matematika metrik Anda adalah sebagai berikut.


| ID | Ekspresi | 
| --- | --- | 
| e1 | (m1)/(m2) | 

Diagram berikut menggambarkan arsitektur untuk metrik ini:

![\[Application Auto Scaling menggunakan diagram arsitektur antrian\]](http://docs.aws.amazon.com/id_id/autoscaling/application/userguide/images/sqs-custom-metric-diagram.png)


**Untuk menggunakan matematika metrik ini untuk membuat kebijakan penskalaan pelacakan target ()AWS CLI**

1. Simpan ekspresi matematika metrik sebagai bagian dari spesifikasi metrik yang disesuaikan dalam file JSON bernama`config.json`. 

   Gunakan contoh berikut untuk membantu Anda memulai. Ganti masing-masing *user input placeholder* dengan informasi Anda sendiri.

   ```
   {
       "CustomizedMetricSpecification": {
           "Metrics": [
               {
                   "Label": "Get the queue size (the number of messages waiting to be processed)",
                   "Id": "m1",
                   "MetricStat": {
                       "Metric": {
                           "MetricName": "ApproximateNumberOfMessagesVisible",
                           "Namespace": "AWS/SQS",
                           "Dimensions": [
                               {
                                   "Name": "QueueName",
                                   "Value": "my-queue"
                               }
                           ]
                       },
                       "Stat": "Sum"
                   },
                   "ReturnData": false
               },
               {
                   "Label": "Get the ECS running task count (the number of currently running tasks)",
                   "Id": "m2",
                   "MetricStat": {
                       "Metric": {
                           "MetricName": "RunningTaskCount",
                           "Namespace": "ECS/ContainerInsights",
                           "Dimensions": [
                               {
                                   "Name": "ClusterName",
                                   "Value": "my-cluster"
                               },
                               {
                                   "Name": "ServiceName",
                                   "Value": "my-service"
                               }
                           ]
                       },
                       "Stat": "Average"
                   },
                   "ReturnData": false
               },
               {
                   "Label": "Calculate the backlog per instance",
                   "Id": "e1",
                   "Expression": "m1 / m2",
                   "ReturnData": true
               }
           ]
       },
       "TargetValue": 100
   }
   ```

   Untuk informasi lebih lanjut, lihat [TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_TargetTrackingScalingPolicyConfiguration.html) dalam *Referensi API Application Auto Scaling*.
**catatan**  
Berikut adalah beberapa sumber daya tambahan yang dapat membantu Anda menemukan nama metrik, ruang nama, dimensi, dan statistik untuk CloudWatch metrik:   
Untuk informasi tentang metrik yang tersedia untuk AWS layanan, lihat [AWS layanan yang memublikasikan CloudWatch metrik](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) di * CloudWatch Panduan Pengguna Amazon*.
[Untuk mendapatkan nama metrik, namespace, dan dimensi yang tepat (jika ada) untuk CloudWatch metrik dengan metrik AWS CLI, lihat daftar-metrik.](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/list-metrics.html) 

1. Untuk membuat kebijakan ini, jalankan [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html)perintah menggunakan file JSON sebagai input, seperti yang ditunjukkan dalam contoh berikut.

   ```
   aws application-autoscaling put-scaling-policy --policy-name sqs-backlog-target-tracking-scaling-policy \
     --service-namespace ecs --scalable-dimension ecs:service:DesiredCount --resource-id service/my-cluster/my-service \
     --policy-type TargetTrackingScaling --target-tracking-scaling-policy-configuration file://config.json
   ```

   Jika berhasil, perintah ini mengembalikan Amazon Resource Name (ARN) kebijakan dan dua CloudWatch alarm ARNs yang dibuat atas nama Anda.

   ```
   {
       "PolicyARN": "arn:aws:autoscaling:us-west-2:012345678910:scalingPolicy: 8784a896-b2ba-47a1-b08c-27301cc499a1:resource/ecs/service/my-cluster/my-service:policyName/sqs-backlog-target-tracking-scaling-policy",
       "Alarms": [
           {
               "AlarmARN": "arn:aws:cloudwatch:us-west-2:012345678910:alarm:TargetTracking-service/my-cluster/my-service-AlarmHigh-9bc77b56-0571-4276-ba0f-d4178882e0a0",
               "AlarmName": "TargetTracking-service/my-cluster/my-service-AlarmHigh-9bc77b56-0571-4276-ba0f-d4178882e0a0"
           },
           {
               "AlarmARN": "arn:aws:cloudwatch:us-west-2:012345678910:alarm:TargetTracking-service/my-cluster/my-service-AlarmLow-9b6ad934-6d37-438e-9e05-02836ddcbdc4",
               "AlarmName": "TargetTracking-service/my-cluster/my-service-AlarmLow-9b6ad934-6d37-438e-9e05-02836ddcbdc4"
           }
       ]
   }
   ```
**catatan**  
Jika perintah ini menimbulkan kesalahan, pastikan Anda telah memperbarui AWS CLI secara lokal ke versi terbaru.

## Batasan
<a name="metric-math-limitations"></a>
+ Ukuran permintaan maksimum adalah 50 KB. Ini adalah ukuran payload total untuk permintaan [PutScalingPolicy](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PutScalingPolicy.html)API saat Anda menggunakan matematika metrik dalam definisi kebijakan. Jika Anda melebihi batas ini, Application Auto Scaling menolak permintaan tersebut.
+ Layanan berikut tidak didukung saat menggunakan matematika metrik dengan kebijakan penskalaan pelacakan target:
  + Amazon Keyspaces (untuk Apache Cassandra) 
  + DynamoDB
  + Amazon EMR
  + Amazon MSK
  + Amazon Neptune