Auf dieser Seite werden die gängigen Strategien zur Fehlerbehebung bei Cloud Run-Fehlern beschrieben. In Personalized Service Health werden alle Cloud Run-Vorfälle veröffentlicht, die auf der zugrunde liegenden Google Cloud Infrastruktur beruhen, um Google Cloud Dienstunterbrechungen zu identifizieren, die sich auf Ihre Projekte auswirken. Sie sollten auch Benachrichtigungen für Ereignisse in Personalized Service Health einrichten. Informationen zu Vorfällen, die sich auf alle Google Cloud Dienste auswirken, finden Sie im Dashboard Google Cloud Service Health.
In den folgenden Abschnitten der Anleitung zur Fehlerbehebung in Cloud Run finden Sie Informationen zur Behebung von Problemen im Zusammenhang mit Ihrer Cloud Run-Ressource:
Strategien zur Fehlerbehebung bei Cloud Run
In den folgenden Abschnitten wird erläutert, wie Sie allgemeine Strategien zur Fehlerbehebung anwenden können, um den Fehler zu beheben. Wenn die Fehler auch nach der Durchführung der Schritte in der Anleitung zur Fehlerbehebung weiterhin auftreten, wenden Sie sich an den Support.
Fehlerfreie Protokolle mit Cloud Logging ausgeben
Die Fehlerbehebung bei Ihrer Cloud Run-Ressource ist einfacher, wenn Sie gute Protokolle für die Fehlerbehebung haben. Sie sollten Logs so schreiben, dass Ihre Containerlogs mit einem Anfragelog korreliert werden.
Mit korrelierten Logs können Sie die Anfrage identifizieren, die einer weiteren Analyse bedarf, die Anfrage-Trace-ID finden und die Ursache des Problems analysieren. Weitere Informationen zum Schreiben von Logs finden Sie unter Container-Logs schreiben.
Instanzen mit dem Log-Explorer untersuchen
Jedes Anfrageprotokoll in Cloud Run enthält ein Feld instanceId
, das eine Instanz angibt, die Ihre Anfrage verarbeitet. Je nach angegebenem Nebenläufigkeitswert kann eine einzelne Instanz mehrere Anfragen gleichzeitig verarbeiten.
Wenn mehrere Instanzen gleichzeitig Protokolle ausgeben, sollten Sie Ihre Instanzen filtern, um die sequenziellen Anfragen zu identifizieren, die zu einem Instanzabsturz führen.
Wenn Sie eine Instanz filtern, können Sie bestimmte Leistungsprobleme beheben, die mit Kaltstarts oder erhöhten Latenzen zusammenhängen. Diese Probleme können auch mit global deklarierten Variablen zusammenhängen, wenn der Wert in nachfolgenden parallelen Anfragen wiederverwendet wird. Ein Beispiel hierfür ist das Erstellen eines einzelnen globalen Objekts für den Verbindungspool für die Instanz und die anschließende Verwendung in mehreren Anfragen.
So filtern Sie im Log-Explorer nach einer bestimmten Instanz:
Rufen Sie in der Google Cloud Console die Seite „Log-Explorer“ auf.
Wählen Sie oben auf der Seite ein vorhandenes Google Cloud Projekt aus oder erstellen Sie ein neues Projekt.
Wählen Sie für einen Dienst die Ressource Cloud Run-Überarbeitung oder für einen Job die Ressource Cloud Run-Job aus.
Maximieren Sie einen Logeintrag, um nach einer bestimmten Instanz zu filtern.
Klicken Sie auf den Wert der Instanz-ID und wählen Sie Übereinstimmende Einträge anzeigen aus.
Unerwartete Latenzen bei Anfragen beheben
Wenn Probleme mit der Latenz auftreten, gehe so vor:
Prüfen Sie, ob die Latenz alle Anfragen an Ihre Cloud Run-Ressource oder nur einen kleinen Prozentsatz davon betrifft. Cloud Run ist automatisch in Cloud Monitoring eingebunden. Es ist keine Einrichtung oder Konfiguration erforderlich.
So rufen Sie Messwerte für die Latenz einzelner Anfragen auf:
Wechseln Sie in der Google Cloud Console zur Seite Cloud Run.
Wählen Sie den Dienst oder die Jobs aus der Liste aus.
Klicken Sie auf den Tab MESSWERTE, um das Dashboard Anfragelatenzen aufzurufen.
Wenn Sie Latenzmesswerte in Cloud Monitoring aufrufen möchten, wählen Sie in der Liste Messwerte die Option Überarbeitung in Cloud Run > Request_latencies > Anfragelatenz aus.
Eine Liste aller verfügbaren Cloud Run-Messwerte und ausführlichere Informationen finden Sie unter Google Cloud Messwerte in Cloud Monitoring.
Identifizieren Sie die Anfrage mit hoher Latenz, um die Ursache der Latenz zu ermitteln. Mit Cloud Trace oder Cloud Logging können Sie ermitteln, wie lange eine bestimmte Anfrage gedauert hat.
Wenn Sie mit Cloud Logging Anfragen mit hoher Latenz identifizieren möchten, wenden Sie den Filter
traceSampled=true
an, um Logs in Cloud Logging mit Traces in Cloud Trace zu verknüpfen. Weitere Informationen finden Sie unter In Cloud Logging einbinden.Manchmal können Abhängigkeiten wie Anfragen an andere Dienste zu Latenzproblemen führen. Um solche Anfragen zu identifizieren, sollten Sie explizite Protokolle für die Anfragen haben. Wenn Sie keine solchen Logs ausgeben, kann es zu einem Latenzproblem kommen, das von einem Cloud Run-Dienst verursacht wird.
Außerdem sollten Sie Latenzspitzen im Kontext des ausgewählten Zeitraums bewerten. Die Bedeutung eines Ausschlags ist relativ. Ein großer Ausschlag in einem kleinen Fenster kann in einem größeren Fenster vernachlässigbar sein und umgekehrt. Daher wirkt sich das Zeitfenster erheblich auf die Interpretation von Latenzdaten aus.
Erhöhen Sie die Mindestanzahl von Instanzen, um die Latenz für eingehende Anfragen zu reduzieren und Kaltstarts zu vermeiden. Sie sollten auch Ihren Quellcode ändern und die Skalierungseinstellungen anpassen, um die Anzahl der Verbindungen zu einem unterstützenden Dienst zu begrenzen.
Weitere Informationen finden Sie unter Leistung optimieren.