Konfiguration und Überwachung von Auto-Rollback
Amazon CloudWatch-Alarme sind eine Voraussetzung für die Verwendung von Back-Perioden in Bereitstellungsleitplanken. Sie können die Auto-Rollback-Funktion in Bereitstellungsleitlinien nur verwenden, wenn Sie CloudWatch-Alarme einrichten, die einen Endpunkt überwachen können. Wenn einer Ihrer Alarme während des angegebenen Überwachungszeitraums ausgelöst wird, leitet SageMaker AI ein vollständiges Rollback zum alten Endpunkt ein, um Ihre Anwendung zu schützen. Wenn Sie keine CloudWatch-Alarme zur Überwachung Ihres Endpunkts eingerichtet haben, funktioniert die automatische Rollback-Funktion während Ihrer Bereitstellung nicht.
Weitere Informationen über CloudWatch finden Sie unter Was ist Amazon CloudWatch? im Amazon CloudWatch-Benutzerhandbuch.
Anmerkung
Stellen Sie sicher, dass Ihre IAM-Ausführungsrolle berechtigt ist, die cloudwatch:DescribeAlarms Aktion für die von Ihnen angegebenen Auto-Rollback-Alarme auszuführen.
Alarmbeispiele
Um Ihnen den Einstieg zu erleichtern, stellen wir Ihnen die folgenden Beispiele zur Verfügung, um die Funktionen von CloudWatch-Alarmen zu demonstrieren. Zusätzlich zur Verwendung oder Änderung der folgenden Beispiele können Sie Ihre eigenen Alarme erstellen und die Alarme so konfigurieren, dass verschiedene Messwerte für die angegebenen Flotten für einen bestimmten Zeitraum überwacht werden. Weitere SageMaker AI-Metriken und -Dimensionen, die Sie zu Ihren Alarmen hinzufügen können, finden Sie unter Metriken von Amazon SageMaker AI in Amazon CloudWatch.
Themen
Überwachen Sie Aufruffehler sowohl bei alten als auch bei neuen Flotten
Der folgende CloudWatch-Alarm überwacht die durchschnittliche Fehlerrate eines Endpunkts. Sie können diesen Alarm für jede Art von Einsatz, Leitplanken und Verkehrsverlagerung verwenden, um eine umfassende Überwachung sowohl der alten als auch der neuen Flotten zu gewährleisten. Wenn der Alarm ausgelöst wird, leitet SageMaker AI einen Rollback zur alten Flotte ein.
Aufruffehler, die sowohl von der alten als auch von der neuen Flotte stammen, tragen zur durchschnittlichen Fehlerquote bei. Wenn die durchschnittliche Fehlerrate den angegebenen Schwellenwert überschreitet, wird der Alarm ausgelöst. In diesem speziellen Beispiel werden die 4xx-Fehler (Client-Fehler) sowohl auf der alten als auch auf der neuen Flotte für die Dauer eines Einsatzes überwacht. Sie können die 5xx-Fehler (Serverfehler) auch überwachen, indem Sie die -Metrik Invocation5XXErrors verwenden.
Anmerkung
Wenn bei diesem Alarmtyp Ihre alte Flotte während des Einsatzes Alarm auslöst, beendet SageMaker AI Ihren Einsatz. Wenn Ihre aktuelle Produktionsflotte bereits Fehler verursacht, sollten Sie daher in Erwägung ziehen, eines der folgenden Beispiele zu verwenden oder zu ändern, das nur die neue Flotte auf Fehler überwacht.
#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" }
Notieren Sie sich im vorherigen Beispiel die Werte für die folgenden Felder:
Für
AlarmNameundAlarmDescriptiongeben Sie einen Namen und eine Beschreibung ein, die Sie für den Alarm wählen.Verwenden Sie für
MetricNameden WertInvocation4XXErrors, um auf 4xx-Fehler am Endpunkt zu achtenFür
Namespaceist der WertAWS/SageMakerzu verwenden. Sie können gegebenenfalls auch Ihre eigene benutzerdefinierte Metrik angeben.Geben Sie als
StatisticAverageein. Das bedeutet, dass der Alarm bei der Berechnung, ob die Fehlerrate den Schwellenwert überschritten hat, anhand der durchschnittlichen Fehlerrate über die Bewertungszeiträume berechnet wird.Verwenden Sie für die Dimension
EndpointNameden Namen des Endpunkts, den Sie aktualisieren, als Wert.Verwenden Sie für die Dimension
VariantNameden WertAllTraffic, um den gesamten Endpunktverkehr anzugeben.Geben Sie als
Period600ein. Dadurch werden die Bewertungszeiträume des Alarms auf 10 Minuten festgelegt.Geben Sie als
EvaluationPeriods2ein. Dieser Wert weist den Alarm an, bei der Bestimmung des Alarmstatus die beiden letzten Bewertungszeiträume zu berücksichtigen.
Überwachen Sie die Modelllatenz der neuen Flotte
Das folgende Beispiel für einen CloudWatch-Alarm überwacht die Latenz des Modells der neuen Flotte während Ihrer Bereitstellung. Sie können diesen Alarm verwenden, um nur die neue Flotte zu überwachen und die alte Flotte auszuschließen. Der Alarm hält für den gesamten Einsatz an. Dieses Beispiel bietet Ihnen eine umfassende, lückenlose Überwachung der neuen Flotte und leitet einen Rollback zur alten Flotte ein, falls die neue Flotte Probleme mit der Reaktionszeit hat.
CloudWatch veröffentlicht die Metriken mit der Dimension EndpointConfigName:{New-Ep-Config}, nachdem die neue Flotte mit dem Empfang von Traffic begonnen hat. Diese Metriken bleiben auch nach Abschluss der Bereitstellung erhalten.
Sie können das folgende Alarme Beispiel für jeden Bereitstellungstyp verwenden.
#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" }
Notieren Sie sich im vorherigen Beispiel die Werte für die folgenden Felder:
Für
MetricNameverwenden Sie den WertModelLatency, um die Reaktionszeit des Modells zu überwachen.Für
Namespaceist der WertAWS/SageMakerzu verwenden. Sie können gegebenenfalls auch Ihre eigene benutzerdefinierte Metrik angeben.Verwenden Sie für die Dimension
EndpointNameden Namen des Endpunkts, den Sie aktualisieren, als Wert.Für die Dimension
VariantNameverwenden Sie den WertAllTraffic, um den gesamten Endpunktverkehr anzugeben.Bei der Dimension
EndpointConfigNamesollte sich der Wert auf den Namen der Endpunktkonfiguration für Ihren neuen oder aktualisierten Endpunkt beziehen.
Anmerkung
Wenn Sie Ihre alte Flotte statt der neuen Flotte überwachen möchten, können Sie die Dimension EndpointConfigName ändern, um den Namen der Konfiguration Ihrer alten Flotte anzugeben.