

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Creación de una política de escalado de seguimiento de destino para Application Auto Scaling con la calculadora de métricas
<a name="application-auto-scaling-target-tracking-metric-math"></a>

Con las matemáticas métricas, puede consultar varias CloudWatch métricas y utilizar expresiones matemáticas para crear nuevas series temporales basadas en estas métricas. Puede visualizar la serie temporal resultante en la consola de CloudWatch y agregarla a los paneles. Para obtener más información sobre las matemáticas métricas, consulte [Uso de las matemáticas métricas](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html) en la *Guía del CloudWatch usuario de Amazon*. 

Las siguientes consideraciones se aplican a las expresiones de la calculadora de métricas:
+ Puede consultar cualquier CloudWatch métrica disponible. Cada métrica es una combinación única de nombre de métrica, espacio de nombres y cero o más dimensiones. 
+ Puede usar cualquier operador aritmético (\$1 - \$1/^), función estadística (como AVG o SUM) u otra función compatible. CloudWatch 
+ Puede utilizar tanto las métricas como los resultados de otras expresiones matemáticas en las fórmulas de la expresión matemática. 
+ Todas las expresiones utilizadas en la especificación de una métrica deben devolver en última instancia una única serie temporal.
+ Puede comprobar que una expresión matemática métrica es válida mediante la CloudWatch consola o la API. CloudWatch [GetMetricData](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html)

**Topics**
+ [Ejemplo: cola de tareas pendientes de Amazon SQS por tarea](#metric-math-sqs-queue-backlog)
+ [Limitaciones](#metric-math-limitations)

## Ejemplo: cola de tareas pendientes de Amazon SQS por tarea
<a name="metric-math-sqs-queue-backlog"></a>

Para calcular la cola de tareas pendientes de Amazon SQS por tarea, se toma el número aproximado de mensajes disponibles para recuperar de la cola y se divide por el número de tareas de Amazon ECS ejecutándose en el servicio. Para obtener más información, consulte [Auto Scaling de Amazon Elastic Container Service (ECS) mediante métricas personalizadas](https://aws.amazon.com/blogs/containers/amazon-elastic-container-service-ecs-auto-scaling-using-custom-metrics/) en el blog de AWS informática.

La lógica de la expresión es la siguiente:

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

A continuación, la información de sus CloudWatch métricas es la siguiente.


| ID | CloudWatch métrica | Estadística | Periodo | 
| --- | --- | --- | --- | 
| m1 | ApproximateNumberOfMessagesVisible | Sum | 1 minuto | 
| m2 | RunningTaskCount | Media | 1 minuto | 

Su ID de cálculo de métrica y expresión son los siguientes.


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

El siguiente diagrama ilustra la arquitectura de esta métrica:

![\[Diagrama de arquitectura de Application Auto Scaling que utiliza colas\]](http://docs.aws.amazon.com/es_es/autoscaling/application/userguide/images/sqs-custom-metric-diagram.png)


**Para utilizar esta calculadora de métricas para crear una política de escalado de seguimiento de destino (AWS CLI)**

1. Guarde la expresión de la calculadora de métricas como parte de una especificación métrica personalizada en un archivo JSON denominado `config.json`. 

   Utilice el siguiente ejemplo como ayuda para comenzar. Reemplace cada *user input placeholder* por su propia información.

   ```
   {
       "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
   }
   ```

   Para obtener más información, consulte la *Referencia [TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_TargetTrackingScalingPolicyConfiguration.html)de la API Application Auto Scaling*.
**nota**  
Los siguientes son algunos recursos adicionales que pueden ayudarle a encontrar nombres de métricas, espacios de nombres, dimensiones y estadísticas para CloudWatch las métricas:   
Para obtener información sobre las métricas disponibles para AWS los servicios, consulta [AWS los servicios que publican CloudWatch métricas](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) en la *Guía del CloudWatch usuario de Amazon*.
[Para obtener el nombre, el espacio de nombres y las dimensiones exactos (si corresponde) de una CloudWatch métrica con el AWS CLI, consulta list-metrics.](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/list-metrics.html) 

1. Para crear esta política, ejecute el [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html)comando con el archivo JSON como entrada, como se muestra en el siguiente ejemplo.

   ```
   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
   ```

   Si se ejecuta correctamente, este comando devuelve el nombre de recurso de Amazon (ARN) de la política y la ARNs de las dos CloudWatch alarmas creadas en su nombre.

   ```
   {
       "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"
           }
       ]
   }
   ```
**nota**  
Si este comando arroja un error, asegúrese de haber actualizado la versión AWS CLI local a la última versión.

## Limitaciones
<a name="metric-math-limitations"></a>
+ El tamaño máximo de solicitud es 50 KB. Este es el tamaño total de la carga útil de la solicitud de [PutScalingPolicy](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PutScalingPolicy.html)API cuando se utilizan las matemáticas métricas en la definición de la política. Si supera este límite, Application Auto Scaling rechaza la solicitud.
+ Los siguientes servicios no se admiten cuando se utilizan métricas matemáticas con las políticas de escalado de seguimiento de destino:
  + Amazon Keyspaces (para Apache Cassandra) 
  + DynamoDB
  + Amazon EMR
  + Amazon MSK
  + Amazon Neptune