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á.
Crie uma política de escalabilidade de rastreamento de metas usando matemática métrica
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 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 ouSUM) ou outra função que ofereça suporte. 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 CloudWatch GetMetricDataAPIo.
nota
Você pode criar uma política de escalabilidade de rastreamento de metas usando matemática métrica somente se usar o AWS CLI AWS CloudFormation, ou umSDK. Este atributo ainda não está disponível no console.
Exemplo: lista de pendências de SQS filas da Amazon por instância
Para calcular o backlog de SQS filas da Amazon por instância, pegue 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 Auto Scaling, que é o número de instâncias no estado. InService
Para obter mais informações, consulte Política de escalabilidade baseada na Amazon SQS.
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 dessa métrica:
Para usar essa matemática em métricas na criação de uma política de escalabilidade com monitoramento de destino (AWS CLI)
-
Armazene a expressão matemática métrica como parte de uma especificação métrica personalizada em um JSON arquivo chamado
config.json
.Use o exemplo a seguir como auxílio para começar. Substitua cada
user input placeholder
com 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 TargetTrackingConfigurationa Amazon EC2 Auto Scaling API Reference.
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 no Guia CloudWatch do usuário da Amazon.
-
-
Para criar essa política, execute o put-scaling-policycomando usando o JSON arquivo como entrada, conforme demonstrado no exemplo a seguir.
aws autoscaling put-scaling-policy --policy-name
sqs-backlog-target-tracking-scaling-policy
\ --auto-scaling-group-namemy-asg
--policy-type TargetTrackingScaling \ --target-tracking-configurationfile://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.