

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Criação de uma política de escalabilidade com monitoramento de destino com a matemática em métricas
<a name="ec2-auto-scaling-target-tracking-metric-math"></a>

Usando a matemática métrica, você pode consultar várias CloudWatch métricas e usar expressões matemáticas para criar novas séries temporais com base nessas métricas. Você pode visualizar as séries temporais resultantes no CloudWatch console e adicioná-las aos painéis. Para obter mais informações sobre matemática métrica, consulte [Usando matemática métrica](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html) no *Guia CloudWatch do usuário da Amazon*. 

As considerações a seguir se aplicam a expressões matemática em métricas:
+ Você pode consultar qualquer CloudWatch métrica disponível. Cada métrica corresponde a uma combinação exclusiva de nome de métrica, espaço nominal e zero ou mais dimensões. 
+ Você pode usar qualquer operador aritmético (\+ - \*/^), função estatística (como AVG ou SUM) ou outra função compatível. CloudWatch 
+ Você pode usar as métricas e os resultados de outras expressões matemáticas nas fórmulas da expressão matemática. 
+ Qualquer expressão usada em uma especificação de métrica deve eventualmente retornar uma única série temporal.
+ Você pode verificar se uma expressão matemática métrica é válida usando o CloudWatch console ou a CloudWatch [GetMetricData](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html)API.

## Exemplo: lista de pendências da fila do Amazon SQS por instância
<a name="metric-math-sqs-queue-backlog"></a>

Para calcular a lista de pendências da fila do Amazon SQS por instância, use o número aproximado de mensagens disponíveis para recuperação da fila e divida esse número pela capacidade de execução do grupo do, que corresponde ao número de instâncias no estado`InService`. Para obter mais informações, consulte [Ajuste de escala baseado no Amazon SQS](as-using-sqs-queue.md).

A lógica da expressão é a seguinte:

 `sum of (number of messages in the queue)/(number of InService instances)`

Então, suas informações CloudWatch métricas são as seguintes.


| ID | CloudWatch métrica | Estatística | Período | 
| --- | --- | --- | --- | 
| m1 | ApproximateNumberOfMessagesVisible | Soma | 1 minuto | 
| m2 | GroupInServiceInstances | Média | 1 minuto | 

O ID e a expressão matemáticos da métrica são os seguintes:


| ID | Expressão | 
| --- | --- | 
| e1 | (m1)/(m2) | 

O diagrama a seguir ilustra a arquitetura desse padrão.

![Diagrama de arquitetura do Amazon EC2 Auto Scaling usando filas](http://docs.aws.amazon.com/pt_br/autoscaling/ec2/userguide/images/sqs-as-custom-metric-diagram.png)


**Para usar essa matemática em métricas na criação de uma política de escalabilidade com monitoramento de destino (AWS CLI)**

1. Armazene a expressão matemática em métricas como parte de uma especificação de métrica personalizada em um arquivo JSON denominado `config.json`. 

   Use o exemplo a seguir como auxílio para começar. Substitua cada {{user input placeholder}} por suas próprias informações.

   ```
   {
       "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 group size (the number of InService instances)",
                   "Id": "m2",
                   "MetricStat": {
                       "Metric": {
                           "MetricName": "GroupInServiceInstances",
                           "Namespace": "AWS/AutoScaling",
                           "Dimensions": [
                               {
                                   "Name": "AutoScalingGroupName",
                                   "Value": "{{my-asg}}"
                               }
                           ]
                       },
                       "Stat": "Average"
                   },
                   "ReturnData": false
               },
               {
                   "Label": "Calculate the backlog per instance",
                   "Id": "e1",
                   "Expression": "m1 / m2",
                   "ReturnData": true
               }
           ]
       },
       "TargetValue": {{100}}
   }
   ```

   Para obter mais informações, consulte a [TargetTrackingConfiguration](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_TargetTrackingConfiguration.html)Referência da API *Amazon EC2 Auto Scaling*.
**nota**  
Veja a seguir alguns recursos adicionais que podem ajudá-lo a encontrar nomes de métricas, namespaces, dimensões e estatísticas para CloudWatch métricas:   
Para obter informações sobre as métricas disponíveis para AWS serviços, consulte [AWS serviços que publicam CloudWatch métricas](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) no *Guia CloudWatch do usuário da Amazon*.
[Para obter o nome exato da métrica, o namespace e as dimensões (se aplicável) de uma CloudWatch métrica com o AWS CLI, consulte list-metrics.](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudwatch/list-metrics.html) 

1. Para criar essa política, execute o [put-scaling-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-scaling-policy.html)comando usando o arquivo JSON como entrada, conforme demonstrado no exemplo a seguir.

   ```
   aws autoscaling put-scaling-policy --policy-name {{sqs-backlog-target-tracking-scaling-policy}} \
     --auto-scaling-group-name {{my-asg}} --policy-type TargetTrackingScaling \
     --target-tracking-configuration {{file://config.json}}
   ```

   Se for bem-sucedido, esse comando retornará o Amazon Resource Name (ARN) da política e o ARNs dos dois CloudWatch alarmes criados em seu nome.

   ```
   {
       "PolicyARN": "arn:aws:autoscaling:us-west-2:123456789012:scalingPolicy:228f02c2-c665-4bfd-aaac-8b04080bea3c:autoScalingGroupName/my-asg:policyName/sqs-backlog-target-tracking-scaling-policy",
       "Alarms": [
           {
               "AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-my-asg-AlarmHigh-fc0e4183-23ac-497e-9992-691c9980c38e",
               "AlarmName": "TargetTracking-my-asg-AlarmHigh-fc0e4183-23ac-497e-9992-691c9980c38e"
           },
           {
               "AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-my-asg-AlarmLow-61a39305-ed0c-47af-bd9e-471a352ee1a2",
               "AlarmName": "TargetTracking-my-asg-AlarmLow-61a39305-ed0c-47af-bd9e-471a352ee1a2"
           }
       ]
   }
   ```
**nota**  
Se esse comando gerar um erro, verifique se você atualizou o AWS CLI localmente para a versão mais recente.