Configuração de reversão automática e monitoramento - Amazon SageMaker

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á.

Configuração de reversão automática e monitoramento

Os CloudWatch alarmes da Amazon são um pré-requisito para usar períodos de espera nas grades de proteção de implantação. Você só pode usar a funcionalidade de reversão automática nas grades de proteção de implantação se configurar CloudWatch alarmes que possam monitorar um endpoint. Se algum de seus alarmes disparar durante o período de monitoramento especificado, SageMaker iniciará uma reversão completa para o endpoint antigo para proteger seu aplicativo. Se você não tiver nenhum CloudWatch alarme configurado para monitorar seu endpoint, a funcionalidade de reversão automática não funcionará durante a implantação.

Para saber mais sobre a Amazon CloudWatch, consulte O que é a Amazon CloudWatch? no Guia do CloudWatch usuário da Amazon.

nota

Certifique-se de que sua função de execução do IAM tenha permissão para realizar a ação cloudwatch:DescribeAlarms nos alarmes de reversão automática que você especificar.

Exemplos de alarme

Para ajudar você a começar, fornecemos os exemplos a seguir para demonstrar as capacidades dos CloudWatch alarmes. Além de usar ou modificar os exemplos a seguir, você pode criar seus próprios alarmes e configurar os alarmes para monitorar várias métricas nas frotas especificadas por um determinado período de tempo. Para ver mais SageMaker métricas e dimensões que você pode adicionar aos seus alarmes, consulteMonitore a Amazon SageMaker com a Amazon CloudWatch.

Monitore erros de invocação em frotas antigas e novas

O CloudWatch alarme a seguir monitora a taxa média de erro de um endpoint. Você pode usar esse alarme com qualquer tipo de deslocamento de tráfego de barreiras de proteção de implantação para fornecer monitoramento geral das frotas antigas e novas. Se o alarme disparar, SageMaker iniciará uma reversão para a frota antiga.

Os erros de invocação provenientes da frota antiga e da nova frota contribuem para a taxa média de erro. Se a taxa média de erro exceder o limite especificado, o alarme dispara. Esse exemplo específico monitora os erros 4xx (erros do cliente) nas frotas antigas e novas na duração da implantação. Você também pode monitorar os erros 5xx (erros do servidor) usando a métrica Invocation5XXErrors.

nota

Para esse tipo de alarme, se sua frota antiga disparar o alarme durante a implantação, SageMaker ela será encerrada. Portanto, se sua frota de produto atual já causar erros, considere usar ou modificar um dos exemplos a seguir, que monitora somente a nova frota em busca de erros.

#Applied deployment type: all types { "AlarmName": "EndToEndDeploymentHighErrorRateAlarm", "AlarmDescription": "Monitors the error rate of 4xx errors", "MetricName": "Invocation4XXErrors", "Namespace": "AWS/SageMaker", "Statistic": "Average", "Dimensions": [ { "Name": "EndpointName", "Value": <your-endpoint-name> }, { "Name": "VariantName", "Value": "AllTraffic" } ], "Period": 600, "EvaluationPeriods": 2, "Threshold": 1, "ComparisonOperator": "GreaterThanThreshold", "TreatMissingData": "notBreaching" }

No exemplo anterior, observe os valores para os seguintes campos:

  • Para AlarmName e AlarmDescription, insira um nome e descrição de sua escolha para o alarme.

  • Para MetricName, use o valor Invocation4XXErrors para monitorar erros 4xx no endpoint

  • Para Namespace, use o valor AWS/SageMaker. Você também pode especificar sua própria métrica personalizada, se aplicável.

  • Para Statistic, use Average. Isso significa que o alarme calcula a taxa média de erro durante os períodos de avaliação ao calcular se a taxa de erro excedeu o limite.

  • Para a dimensão EndpointName, use o nome do endpoint que você está atualizando como valor.

  • Para a dimensão VariantName, use o valor AllTraffic para especificar todo o tráfego do endpoint.

  • Para Period, use 600. Isso define os períodos de avaliação do alarme para 10 minutos.

  • Para EvaluationPeriods, use 2. Esse valor faz com que o alarme considere os dois períodos de avaliação mais recentes ao determinar o status do alarme.

Monitore a latência do modelo na nova frota

O exemplo de CloudWatch alarme a seguir monitora a latência do modelo da nova frota durante sua implantação. Você pode usar esse alarme para monitorar somente a nova frota e excluir a frota antiga. O alarme dura por toda a implantação. Este exemplo fornece um end-to-end monitoramento abrangente da nova frota e inicia uma reversão para a frota antiga se a nova frota tiver algum problema de tempo de resposta.

CloudWatch publica as métricas com a dimensão EndpointConfigName:{New-Ep-Config} depois que a nova frota começa a receber tráfego, e essas métricas duram mesmo após a conclusão da implantação.

Você pode usar o seguinte exemplo de alarme para qualquer tipo de implantação:

#Applied deployment type: all types { "AlarmName": "NewEndpointConfigVersionHighModelLatencyAlarm", "AlarmDescription": "Monitors the model latency on new fleet", "MetricName": "ModelLatency", "Namespace": "AWS/SageMaker", "Statistic": "Average", "Dimensions": [ { "Name": "EndpointName", "Value": <your-endpoint-name> }, { "Name": "VariantName", "Value": "AllTraffic" }, { "Name": "EndpointConfigName", "Value": <your-config-name> ], "Period": 300, "EvaluationPeriods": 2, "Threshold": 100000, # 100ms "ComparisonOperator": "GreaterThanThreshold", "TreatMissingData": "notBreaching" }

No exemplo anterior, observe os valores para os seguintes campos:

  • Para MetricName, use o valor ModelLatency para monitorar o tempo de resposta do modelo.

  • Para Namespace, use o valor AWS/SageMaker. Você também pode especificar sua própria métrica personalizada, se aplicável.

  • Para a dimensão EndpointName, use o nome do endpoint que você está atualizando como valor.

  • Para a dimensão VariantName, use o valor AllTraffic para especificar o tráfego de todos os endpoints.

  • Para a dimensão EndpointConfigName, o valor deve se referir ao nome da configuração de endpoint do seu novo endpoint atualizado.

nota

Se quiser monitorar sua frota antiga em vez da frota nova, você pode alterar a dimensão EndpointConfigName para especificar o nome da configuração da sua frota antiga.