Defina métricas de monitoramento personalizadas com base na sua lógica de negócios e utilize-as para o auto scaling. Por exemplo, é possível dimensionar 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. Basta adicionar lógica ao seu código para reportar 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
Apenas QPS e utilização de CPU são suportados como métricas integradas para auto scaling.
O campo
metricstem suporte apenas quando você implanta um serviço usando uma imagem personalizada ou um processador personalizado.
Etapa 1: Configure uma API para reportar métricas
Antes de implantar um serviço, prepare uma imagem personalizada ou um processador personalizado. No seu código, configure as métricas personalizadas e a API para reportá-las periodicamente. Para obter mais informações, consulte Imagens personalizadas ou Processadores personalizados.
Por exemplo, o endpoint para a requisição POST implementada no seu código é http://localhost:8080/api/builtin/realtime_metrics, e o corpo da requisição é o seguinte:
[
{
"name": "qps",
"tags": {
"status": "200"
},
"value": 20
},
{
"name": "qps",
"tags": {
"status": "400"
},
"value": 13
}
]
O exemplo acima reporta uma métrica chamada qps. O QPS médio para o código de status 200 é 20, e o QPS médio para o código de status 400 é 13. Em cenários simples, nos quais não é necessário categorizar ou subdividir métricas usando tags, omita o campo tags:
[
{
"name": "qps",
"value": 20
}
]
Escreva um código para chamar periodicamente esta API e reportar suas métricas personalizadas.
Etapa 2: Implantar o serviço
Após definir suas 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. Os passos a seguir descrevem o procedimento:
-
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 usando uma 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 que você preparou. A tabela a seguir descreve os campos dentro do campo metrics. Para obter informações sobre outros parâmetros, consulte Implantação JSON.
Parâmetro
Obrigatório
Descrição
name
Sim
Nome da métrica personalizada que seu serviço reporta.
-
O EAS cria um painel de monitoramento na página Service Monitoring com base neste nome.
-
Este nome serve para especificar 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 que você construa sua 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 requisições para diferentes códigos de status, comostatus=200estatus=400. -
-
Implante o serviço de modelo usando o arquivo de configuração.
Acesse a página de implantação de serviço. Para obter mais informações, consulte Implantação personalizada.
Na seção Configuration Editor, clique em JSON Deployment e cole o conteúdo do seu arquivo JSON preparado no editor.
Clique em Deploy.
Etapa 3: Visualize as métricas
Após a implantação, o serviço reporta periodicamente dados de métricas personalizadas com base na lógica do seu 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 aparecem em tempo real. O pipeline agrega os dados, resultando em uma granularidade de nível de minuto na página de monitoramento.
Os passos a seguir descrevem como 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 sua 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 obter mais informações, consulte auto scaling horizontal.
Os exemplos a seguir mostram como configurar o auto scaling com base na métrica personalizada qps:
-
Use o eascmd para ativar o auto scaling. Para obter mais informações sobre as operações e parâmetros, consulte auto scaling horizontal.
-
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 seja necessário especificar a métrica personalizada 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.
-
-
Utilize o console para ativar o auto scaling. Para obter mais informações sobre as operações e parâmetros, consulte auto scaling horizontal.
Para uma métrica personalizada configurada que não precisa reportar 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.Se for necessário especificar a métrica personalizada 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.