Mit Error Reporting können Sie Abstürze aggregieren und Laufzeit-Exceptions in Ihren Compute Engine-Anwendungen diagnostizieren. Sie können Fehlerdaten senden, indem Sie Logs an Cloud Logging streamen oder die Error Reporting API direkt aufrufen. Wenn Sie Logging verwenden, müssen Ihre Logeinträge den Formatierungsanforderungen entsprechen.
Logging zum Melden von Fehlern verwenden
Wenn Sie Ihre Compute Engine-Anwendungen mit Error Reporting verbinden möchten, senden Sie Ihre Ausnahmen oder andere Fehler mit einem der folgenden Agents an Logging:
Ops-Agent
So richten Sie Error Reporting für die Verwendung des Ops-Agents ein:
Installieren Sie den Ops-Agent entsprechend Ihrer Umgebung. Eine Anleitung finden Sie unter Ops-Agent installieren.
Konfigurieren Sie den Ops-Agent so, dass er Ihre Anwendungsprotokolle erfasst und richtig formatiert.
Für unterstützte Drittanbieteranwendungen:Der Ops-Agent bietet vorkonfigurierte Logging-Empfänger, die automatisch Logeinträge in strukturierte Formate erfassen und parsen, die von Error Reporting erkannt werden. Informationen zu den unterstützten Drittanbieteranwendungen finden Sie unter Anwendungen von Drittanbietern überwachen.
Für benutzerdefinierte Anwendungen:Konfigurieren Sie einen Logging-Empfänger, um die Speicherorte Ihrer Logdateien anzugeben, und koppeln Sie ihn mit einem der folgenden Prozessoren:
- Verwenden Sie einen
parse_multiline-Prozessor, wenn Ihre App Stacktraces im Nur-Text-Format über mehrere Zeilen hinweg schreibt. - Verwenden Sie einen
parse_json-Prozessor, wenn Ihre App Logs als JSON-Strings schreibt.
Eine ausführliche Anleitung finden Sie unter Ops-Agent konfigurieren.
- Verwenden Sie einen
Wenn Ihre Anwendung keine Standard-Stacktraces generiert, müssen Sie sie so ändern, dass Ausnahmen und ihre Stacktraces in Cloud Logging protokolliert werden.
Sie müssen alle Informationen zu einem einzelnen Fehler oder einer einzelnen Ausnahme im selben Logeintrag angeben, einschließlich aller Frames eines Stacktrace. Wenn nicht alle Informationen zusammen vorliegen, wird der Fehler möglicherweise nicht von Error Reporting erkannt. Das strukturierte JSON-Format für die Nutzlasten des Log-Eintrags bietet die Möglichkeit, für Fehler unterschiedliche Informationsarten zu verwenden.
Legacy-Logging-Agent
So richten Sie Error Reporting für die Verwendung des alten Logging-Agent ein:
- Installieren Sie den Logging-Agenten
google-fluentdentsprechend Ihrer Umgebung. Eine Anleitung finden Sie unter Logging-Agent installieren. Ändern Sie Ihre Anwendung so, dass Ausnahmen und ihre Stacktraces in Logging protokolliert werden.
Sie müssen alle Informationen für einen einzelnen Fehler oder eine einzelne Ausnahme im selben Logeintrag angeben, einschließlich aller Frames eines Stacktrace. Wenn nicht alle Informationen zusammen vorliegen, wird Error Reporting den Fehler möglicherweise nicht erkennen. Sie können das strukturierte JSON-Format für Ihre Logeintrag-Nutzlasten verwenden, um verschiedene Arten von Informationen für jeden Fehler einzuschließen.
Java
Fügen Sie der Datei pom.xml Folgendes hinzu:
Verwenden Sie dann Code ähnlich dem folgenden, um Ausnahmedaten zu senden:
Python
Installieren Sie zuerst die Bibliothek fluent-logger-python:
sudo pip install fluent-logger
Verwenden Sie dann Code ähnlich dem folgenden, um Ausnahmedaten zu senden:
Node.js
Installieren Sie zuerst die Bibliothek fluent-logger-node:
npm install fluent-logger
Verwenden Sie dann Code ähnlich dem folgenden, um Ausnahmedaten zu senden:
Go
Installieren Sie zuerst das Paket fluent-logger-golang:
go get github.com/fluent/fluent-logger-golang/
Verwenden Sie dann Code ähnlich dem folgenden, um Fehlerdaten zu senden:
Error Reporting-API zum Beschreiben von Fehlern verwenden
Die Error Reporting API bietet einen report-Endpunkt zum Schreiben von Fehlerinformationen in den Dienst.
Aktivieren Sie die Error Reporting API, falls sie noch nicht aktiviert ist.
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die Berechtigung
serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von RollenMithilfe der REST API oder einer Clientbibliothek melden Sie Fehler an die API.
Beispiele
ASP.NET
Das ASP.NET-NuGet-Paket meldet nicht abgefangene Ausnahmen aus ASP.NET-Webanwendungen an Error Reporting.
NuGet-Paket installieren
So installieren Sie das Stackdriver-ASP.NET-NuGet-Paket in Visual Studio:
- Klicken Sie mit der rechten Maustaste auf Ihre Lösung und wählen Sie NuGet-Pakete für die Lösung verwalten aus.
- Wählen Sie das Kästchen Vorabversion einbeziehen aus.
- Suchen Sie nach dem Paket mit dem Namen
Google.Cloud.Diagnostics.AspNetund installieren Sie es.
Nutzung
Nachdem Sie das Stackdriver-ASP.NET-NuGet-Paket installiert haben, können Sie die folgende Anweisung zu Ihrem Anwendungscode hinzufügen und Fehler an Stackdriver senden:
using Google.Cloud.Diagnostics.AspNet;
Fügen Sie den folgenden HttpConfiguration-Code in die Methode Register Ihrer .NET-Webanwendung ein. Ersetzen Sie dabei your-project-id durch Ihre tatsächliche Projekt-ID, um das Melden von Ausnahmen zu aktivieren:
Nachdem Sie diese Methode Ihrer ASP.NET-Anwendung hinzugefügt haben, können Sie alle nicht abgefangenen Ausnahmen, die auftreten, in der Google CloudConsole im Bereich Error Reporting Google Cloud ansehen.
C#
Das folgende Beispiel finden Sie im Repository GoogleCloudPlatform/dotnet-docs-samples. Geben Sie nach der Projekterstellung Ihre Projekt-ID an, um es zu verwenden:
C:\...\bin\Debug> set GOOGLE_PROJECT_ID=[YOUR_PROJECT_ID]
Ersetzen Sie [YOUR_PROJECT_ID] durch den korrekten Wert aus derGoogle Cloud -Konsole.
Senden Sie dann Ausnahmedaten mit Code ähnlich dem folgenden:
Go
Java
Node.js
Ruby
Python
PHP
Fehlergruppen ansehen
Rufen Sie in der Google Cloud Console die Seite Error Reporting auf:
Sie können diese Seite auch über die Suchleiste finden.