Stackdriver Error Reporting für PHP einrichten

Bibliothek aktivieren

Mit der Stackdriver Error Reporting-Bibliothek für PHP können Sie Fehlerberichte von PHP-Anwendungen an Stackdriver Error Reporting senden.

Stackdriver Error Reporting ist in verschiedene Produkte wie etwa die App Engine integriert. In Stackdriver Error Reporting sehen Sie die in Stackdriver Logging protokollierten Fehler der auf diesen Produkten ausgeführten Anwendungen. Weitere Informationen erhalten Sie im Abschnitt In Google Cloud Platform ausführen.

Vorbereitung

  1. Melden Sie sich bei Ihrem Google-Konto an.

    Wenn Sie noch kein Konto haben, registrieren Sie sich hier für ein neues Konto.

  2. Wählen Sie ein GCP-Projekt aus oder erstellen Sie eines.

    Zur Seite "Ressourcen verwalten"

  3. Die Abrechnung für Ihr Projekt muss aktiviert sein.

    Informationen zum Aktivieren von Abrechnungen

  4. Aktivieren Sie die Stackdriver Error Reporting API.

    Aktivieren Sie die API

Clientbibliothek installieren

Die Stackdriver Error Reporting-Bibliothek für PHP ermöglicht es Ihnen, die von PHP-Anwendungen gemeldeten Fehler zu überwachen und anzuzeigen. Wo die Anwendungen ausgeführt werden, ist in den meisten Fällen unerheblich.

Weitere Informationen zur Installation finden Sie in der Dokumentation zur Stackdriver Error Reporting-Bibliothek für PHP. Probleme können Sie über die Problemverfolgung melden.

Clientbibliothek konfigurieren

Sie können das Verhalten der Stackdriver Error Reporting-Bibliothek für PHP anpassen. Eine Liste der möglichen Konfigurationsoptionen finden Sie im Konfigurationsdokument der Bibliothek.

Fehler melden

1. Installieren Sie die Cloudbibliotheken mit dem folgenden Befehl:

$ composer require google/cloud-logging google/cloud-error-reporting
1. Fügen Sie der Datei php.ini folgende Zeile hinzu:
auto_prepend_file='/project-dir/vendor/google/cloud-error-reporting/src/prepend.php'
1. Legen Sie für die Umgebungsvariable GOOGLE_CLOUD_PROJECT Ihren Projektnamen fest.

Diese vorangestellte Datei installiert einen Ausnahme-Handler und einen Fehler-Handler, die automatisch Fehler an Stackdriver Error Reporting senden.

Auf der Google Cloud Platform ausführen

Für die Verwendung der Stackdriver Error Reporting-Bibliothek für PHP ist die Cloud IAM-Rolle Error Reporting-Autor erforderlich. Die meisten Compute-Plattformen von Google Cloud Platform stellen diese Rolle standardmäßig zur Verfügung.

Flexible App Engine-Umgebung

In Google App Engine wird die Rolle "Error Reporting-Autor" standardmäßig zugewiesen.

Die Stackdriver Error Reporting-Bibliothek für PHP kann verwendet werden, ohne dass Anmeldedaten explizit angegeben werden müssen.

So aktivieren Sie Stackdriver Error Reporting in der flexiblen App Engine-Umgebung:

  1. Installieren Sie die erforderlichen Bibliotheken mit dem folgenden Befehl:

    $ composer require google/cloud-logging google/cloud-error-reporting

  2. Fügen Sie die folgende Zeile im Abschnitt runtime_config der Datei app.yaml hinzu:

enable_stackdriver_integration: true

Danach erfasst die Bibliothek automatisch alle Fehler und nicht abgefangenen Ausnahmen und sendet sie an Stackdriver Error Reporting. Wenn Sie ein Web Framework verwenden, das seine eigenen Ausnahme-Handler installiert, finden Sie unter Framework-Integrationen weitere Informationen.

Kubernetes Engine

In Google Kubernetes Engine müssen Sie den Zugriffsbereich für cloud-platform beim Erstellen des Clusters wie im folgenden Beispielbefehl hinzufügen:

gcloud container clusters create example-cluster-name --scopes https://www.googleapis.com/auth/cloud-platform

Compute Engine

Fügen Sie bei der Verwendung von VM-Instanzen von Google Compute Engine jeder Instanz den Zugriffsbereich cloud-platform hinzu. Neue Instanzen können Sie über die Google Cloud Platform Console im Feld Instanz erstellen unter Identität und API-Zugriff erstellen. Verwenden Sie das Compute Engine-Standarddienstkonto oder ein anderes Dienstkonto und wählen Sie im Abschnitt Identität und API-Zugriff die Option Uneingeschränkten Zugriff auf alle Cloud APIs zulassen aus. Achten Sie unabhängig vom ausgewählten Dienstkonto darauf, dass diesem im Abschnitt IAM & Verwaltung die Rolle "Error Reporting-Autor" zugewiesen wurde.

Lokal und extern ausführen

Wenn Sie die Stackdriver Error Reporting-Bibliothek für PHP außerhalb der Google Cloud Platform verwenden möchten, müssen Sie die ID Ihres GCP-Projekts und die entsprechenden Anmeldedaten für das Dienstkonto direkt an die Stackdriver Error Reporting-Bibliothek für PHP übergeben. Das gilt für die Ausführung der Bibliothek auf Ihrer eigenen Workstation, auf den Computern Ihres Rechenzentrums oder auf den VM-Instanzen eines anderen Cloudanbieters. Weitere Informationen finden Sie unter Dienstkonto-Anmeldedaten manuell abrufen und bereitstellen.

Fehlerberichte ansehen

Nach der Bereitstellung können Sie Fehlerberichte im Error Reporting-Dashboard der Cloud Platform Console ansehen.

Error Reporting-Dashboard aufrufen

Weitere Informationen finden Sie unter Fehler anzeigen.

Framework-Integrationen

Einige Web-Frameworks überschreiben den Ausnahme-Handler. Im Folgenden finden Sie Beispiele zur Verwendung von Error Reporting mit Symfony und Laravel. Für andere Frameworks können Sie Google\Cloud\ErrorReporting\Bootstrap::exceptionHandler als Ausnahme-Handler verwenden.

Symfony

Erstellen Sie eine neue Datei src/AppBundle/EventSubscriber/ExceptionSubscriber.php mit folgendem Inhalt:

<?php

// src/AppBundle/EventSubscriber/ExceptionSubscriber.php
namespace AppBundle\EventSubscriber;

use Google\Cloud\ErrorReporting\Bootstrap;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent;
use Symfony\Component\HttpKernel\KernelEvents;

class ExceptionSubscriber implements EventSubscriberInterface
{
    public static function getSubscribedEvents()
    {
        // return the subscribed events, their methods and priorities
        return [KernelEvents::EXCEPTION => [
            ['logException', 0]
        ]];
    }

    public function logException(GetResponseForExceptionEvent $event)
    {
        $exception = $event->getException();
        Bootstrap::exceptionHandler($exception);
    }
}

Laravel

Bearbeiten Sie die Funktion report in der Datei app/Exceptions/Handler.php folgendermaßen:

public function report(Exception $exception)
{
    if (isset($_SERVER['GAE_SERVICE'])) {
        Bootstrap::exceptionHandler($exception);
    } else {
        parent::report($exception);
    }
}

Sie müssen am Anfang der Datei auch eine einzeilige use-Anweisung hinzufügen:

use Google\Cloud\ErrorReporting\Bootstrap;
Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...

Stackdriver Error Reporting