Configuration et surveillance de la restauration automatique - Amazon SageMaker

Configuration et surveillance de la restauration automatique

Les alarmes Amazon CloudWatch sont une condition préalable à l'utilisation de périodes de préparation dans les barrières de protection de déploiement. Vous ne pouvez utiliser la fonctionnalité de restauration automatique dans les barrières de protection de déploiement que si vous configurez des alarmes CloudWatch qui peuvent surveiller un point de terminaison. Si l'une de vos alarmes se déclenche pendant la période de surveillance spécifiée, SageMaker lance une annulation complète vers l'ancien point de terminaison pour protéger votre application. Si aucune alarme CloudWatch n'est configurée pour surveiller votre point de terminaison, la fonctionnalité de restauration automatique ne fonctionnera pas pendant votre déploiement.

Pour en savoir plus sur Amazon CloudWatch, veuillez consulter Qu'est-ce qu'Amazon CloudWatch ? dans le Guide de l'utilisateur Amazon CloudWatch.

Exemples d'alarme

Pour vous aider à démarrer, nous fournissons les exemples suivants pour démontrer les capacités des alarmes CloudWatch. En plus d'utiliser ou de modifier les exemples suivants, vous pouvez créer vos propres alarmes et configurer les alarmes pour surveiller diverses métriques sur les flottes spécifiées pendant une certaine période. Pour voir plus de métriques et de dimensions SageMaker que vous pouvez ajouter à vos alarmes, veuillez consulter Surveiller Amazon SageMaker à l'aide d'Amazon CloudWatch.

Surveiller les erreurs d'appel sur les anciennes et nouvelles flottes

L'alarme CloudWatch suivante surveille le taux d'erreur moyen d'un point de terminaison. Vous pouvez utiliser cette alarme avec n'importe quel type de changement de trafic de barrière de protection de déploiement pour fournir une surveillance globale à la fois sur l'ancienne et la nouvelle flotte. Si l'alarme se déclenche, alors SageMaker initie une restauration à l'ancienne flotte.

Les erreurs d'appel provenant à la fois de l'ancienne flotte et de la nouvelle flotte contribuent au taux d'erreur moyen. Si le taux d'erreur moyen dépasse le seuil spécifié, l'alarme se déclenche. Cet exemple particulier surveille les erreurs 4xx (erreurs client) sur les anciennes et nouvelles flottes pendant la durée d'un déploiement. Vous pouvez également surveiller les erreurs 5xx (erreurs de serveur) à l'aide de la métrique Invocation5XXErrors.

Note

Pour ce type d'alarme, si votre ancienne flotte déclenche l'alarme pendant le déploiement, SageMaker résilie votre déploiement. Par conséquent, si votre flotte de production actuelle provoque déjà des erreurs, envisagez d'utiliser ou de modifier l'un des exemples suivants qui surveille uniquement les erreurs de la nouvelle flotte.

#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" }

Dans l'exemple précédent, notez les valeurs dans les champs suivants :

  • Pour AlarmName et AlarmDescription, saisissez un nom et une description de votre choix pour l'alarme.

  • Pour MetricName, utilisez la valeur Invocation4XXErrors afin de surveiller les erreurs 4xx sur le point de terminaison

  • Pour Namespace, utilisez la valeur AWS/SageMaker. Vous pouvez également spécifier votre propre métrique personnalisée, le cas échéant.

  • Pour Statistic, utilisez Average. Cela signifie que l'alarme prend le taux d'erreur moyen sur les périodes d'évaluation pour calculer si ce taux a dépassé le seuil.

  • Pour la dimension EndpointName, utilisez le nom du point de terminaison que vous mettez à jour comme valeur.

  • Pour la dimension VariantName, utilisez la valeur AllTraffic pour spécifier tout le trafic des points de terminaison.

  • Pour Period, utilisez 600. Cela définit les périodes d'évaluation de l'alarme à 10 minutes.

  • Pour EvaluationPeriods, utilisez 2. Cette valeur indique à l'alarme de prendre en compte les deux périodes d'évaluation les plus récentes lors de la détermination de l'état de l'alarme.

Surveiller la latence des modèles sur la nouvelle flotte

L'exemple d'alarme CloudWatch suivant surveille la latence du nouveau modèle de flotte pendant votre déploiement. Vous pouvez utiliser cette alarme pour surveiller uniquement la nouvelle flotte et exclure l'ancienne flotte. L'alarme dure pendant tout le déploiement. Cet exemple vous expose une surveillance complète et de bout en bout de la nouvelle flotte et lance un retour à l'ancienne flotte si la nouvelle flotte rencontre des problèmes de temps de réponse.

CloudWatch publie les métriques avec la dimension EndpointConfigName:{New-Ep-Config} une fois que la nouvelle flotte commence à recevoir du trafic. Ces métriques durent même une fois le déploiement terminé.

Vous pouvez utiliser l'exemple d'alarme suivant avec n'importe quel type de déploiement.

#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" }

Dans l'exemple précédent, notez les valeurs dans les champs suivants :

  • Pour MetricName, utilisez la valeur ModelLatency afin de surveiller le temps de réponse du modèle.

  • Pour Namespace, utilisez la valeur AWS/SageMaker. Vous pouvez également spécifier votre propre métrique personnalisée, le cas échéant.

  • Pour la dimension EndpointName, utilisez le nom du point de terminaison que vous mettez à jour comme valeur.

  • Pour la dimension VariantName, utilisez la valeur AllTraffic afin despécifier tout le trafic des points de terminaison.

  • Pour la dimension EndpointConfigName, la valeur doit faire référence au nom de configuration de votre point de terminaison nouveau ou mis à jour.

Note

Si vous souhaitez surveiller votre ancienne flotte au lieu de la nouvelle flotte, vous pouvez modifier la dimension EndpointConfigName afin de spécifier le nom de la configuration de votre ancienne flotte.