Defina métricas de monitoramento personalizadas com base na sua lógica de negócios e utilize-as para o Auto Scaling. Por exemplo, dimensione um serviço conforme a quantidade de pontos de dados inválidos recebidos por segundo. O EAS oferece uma API de relatório de métricas em tempo real e um pipeline completo para coleta, armazenamento, visualização e Auto Scaling de dados. Adicione lógica ao seu código para relatar periodicamente as métricas personalizadas e declará-las durante a implantação do serviço. Após a implantação, o EAS recebe os dados das métricas personalizadas do serviço por meio desse pipeline e os exibe na página Service Monitoring.
Limitações
O Auto Scaling suporta apenas QPS e utilização de CPU como métricas integradas.
O campo
metricstem suporte somente ao implantar um serviço com imagem personalizada ou processador personalizado.
Etapa 1: Configure uma API para relatar métricas
Antes de implantar um serviço, prepare uma imagem personalizada ou um processador personalizado. No código, configure as métricas personalizadas e a API para relatá-las periodicamente. Para mais informações, consulte Custom Images ou Custom Processors.
Por exemplo, o endpoint da solicitação POST implementado no código é http://localhost:8080/api/builtin/realtime_metrics, e o corpo da solicitação é o seguinte:
[
{
"name": "qps",
"tags": {
"status": "200"
},
"value": 20
},
{
"name": "qps",
"tags": {
"status": "400"
},
"value": 13
}
]
O exemplo anterior relata uma métrica chamada qps. A média de QPS para o código de status 200 é 20, e a média de QPS para o código de status 400 é 13. Em cenários simples que não exigem categorização ou subdivisão de métricas por tags, omita o campo tags:
[
{
"name": "qps",
"value": 20
}
]
Escreva código para chamar essa API periodicamente e relatar suas métricas personalizadas.
Etapa 2: Implantar o serviço
Após definir as métricas personalizadas, declare-as no campo metrics do arquivo de configuração do serviço durante a implantação. O framework do EAS utiliza essa declaração para inicializar o serviço e construir o painel de monitoramento. Siga o procedimento abaixo:
-
Prepare o arquivo JSON de configuração do serviço.
Adicione um campo
metricsao arquivo para declarar o nome da métrica, o tipo e outras informações. O exemplo abaixo mostra um arquivo JSON para implantar um serviço com imagem personalizada:{ "name": "metrics_test", "containers": [ { "image": "registry-vpc.cn-chengdu.aliyuncs.com/eas/eas-image-****:metrics", "command": "python3 -u /image.py", "port": 5000 } ], "metrics": [ { "name": "qps", "tags": "status" } ], "metadata": { "instance": 1, "cpu": 2, "memory":1000 } }O parâmetro image está definido como a imagem personalizada preparada. A tabela a seguir descreve os campos dentro de metrics. Para obter informações sobre outros parâmetros, consulte JSON Deployment.
Parâmetro
Obrigatório
Descrição
name
Sim
Nome da métrica personalizada relatada pelo serviço.
-
O EAS cria um painel de monitoramento na página Service Monitoring com base neste nome.
-
Este nome especifica a métrica de referência ao configurar o Auto Scaling.
tags
Não
Nome da tag da métrica. Use tags para criar subdivisões de uma métrica. Por exemplo, categorize a métrica
qpspor código de status.Essa configuração implanta um serviço baseado em uma imagem Docker, permitindo construir a lógica de negócios com uma imagem personalizada. O campo
metricsdeclara uma métrica chamadaqpse uma tag chamadastatus. A tag permite categorizar dados para a mesma métrica. Por exemplo, use a tagstatuspara registrar o número de solicitações para diferentes códigos de status, comostatus=200estatus=400. -
-
Implante o serviço de modelo com o arquivo de configuração.
Acesse a página de implantação de serviço. Para mais informações, consulte Custom Deployment.
Na seção Configuration Editor, clique em JSON Deployment e cole o conteúdo do arquivo JSON preparado no editor.
Clique em Deploy.
Etapa 3: Visualize as métricas
Após a implantação, o serviço relata periodicamente dados de métricas personalizadas com base na lógica do código. O framework do EAS fornece uma API local para receber esses dados.
O EAS utiliza esses dados em tempo real para o Auto Scaling.
No pipeline de dados, as informações não são exibidas em tempo real. O pipeline agrega dados, resultando em granularidade de minutos na página de monitoramento.
Siga os passos abaixo para visualizar a métrica personalizada qps:
Na página EAS-Online Model Services, clique em no nome de um serviço para abrir a página Service Details.
-
Clique em na aba Service Monitoring. No canto superior esquerdo da página, selecione o painel personalizado.
Este painel exibe os dados de monitoramento da métrica personalizada em duas partes:
Dados médios da métrica em todas as instâncias do serviço.
Dados da métrica para cada instância individual do serviço.

Etapa 4: Configure o Auto Scaling
Ative o Auto Scaling para o serviço com base em métricas personalizadas. O procedimento é o mesmo utilizado para métricas integradas. Para mais informações, consulte horizontal auto scaling.
Os exemplos a seguir mostram como configurar o Auto Scaling com base na métrica personalizada qps:
-
Utilize o eascmd para ativar o Auto Scaling. Para mais informações sobre as operações e parâmetros, consulte horizontal auto scaling.
-
Se a métrica personalizada não exigir uma tag:
eascmd autoscale service_name -Dmin=1 -Dmax=10 -Dstrategies.custom[qps]=3Essa configuração escala horizontalmente o serviço quando a métrica média de
qpsexcede 3 e reduz a escala quando o valor cai abaixo de 3. -
Caso a métrica personalizada precise ser especificada no nível da tag:
eascmd autoscale service_name -Dmin=1 -Dmax=10 -Dstrategies.custom[qps]@status[200]=3Essa configuração escala horizontalmente o serviço quando a métrica média de
qpspara a série ondestatusé200excede 3 e reduz a escala quando o valor cai abaixo de 3.
-
-
Use o console para ativar o Auto Scaling. Para mais informações sobre as operações e parâmetros, consulte horizontal auto scaling.
Se uma métrica personalizada configurada não precisar relatar tags, defina o nome da variável como custom[qps] e o valor da variável como 3 na seção Custom Scaling Metric da caixa de diálogo Auto Scaling Settings. Na caixa de diálogo Auto Scaling Settings, defina Minimum Instances como
1e Maximum Instances como10. Na área Custom Scaling Metric, defina o nome da variável comocustom[qps]e o valor da variável como3e, em seguida, clique em Enable.Quando a métrica personalizada precisar ser especificada no nível da tag, na caixa de diálogo Auto Scaling Settings, em Custom Scaling Metric, defina o nome da variável como custom[qps]@status[200] e seu valor como 3.