2016-04-22 6 views
0

ich Probleme habe Error Reporting immer mit Fehlern, die durch meine PHP-Anwendungen berichtet zu arbeiten, die in einer GCE-Instanz ausgeführt wird.Google-Fehlerberichterstattung nicht Fehler von PHP-Anwendung protokolliert Erkennung

Ich habe die documentation zum Einrichten von Google-Fehlerberichterstattung für mein GCE Beispiel gefolgt.

Ich habe bestätigt, dass die Nachrichten an die Loggging Seite des required format mit protokolliert werden.

Hier ist einer der Fehler, die in dem Abschnitt Protokollierung von GCP zeigen sich

{ 
    metadata: { 
     severity: "ERROR", 
     projectId: <project_id>, 
     serviceName: "compute.googleapis.com", 
     zone: "us-central1-b", 
     labels: { 
      compute.googleapis.com/resource_name: <resource_name>, 
      compute.googleapis.com/resource_type: "instance", 
      compute.googleapis.com/resource_id: <resource_id> 
     }, 
     timestamp: "2016-04-22T20:20:44.000Z", 
     projectNumber: <project_number>, 
    }, 
    insertId: <instert_id>, 
    log: "alberta.errors", 
    structPayload: { 
     context: { 
      reportLocation: { 
       filePath: <path>, 
       lineNumber: 22, 
      } 
     }, 
     serviceContext: { 
      service: "alberta" 
     }, 
     message: "SQLSTATE[08006] [7] FATAL: password authentication failed ..." 
    } 
} 

der Seite Fehlerberichterstattung im Setup-Zustand bleibt: Error Reporting page in GCP

Ich bin nicht sicher, wo gehe von hier aus, da ich die zur Verfügung stehende Dokumentation ausgeschöpft habe und niemanden mit einem ähnlichen Problem gefunden habe.

Irgendwelche Vorschläge würden geschätzt.

Antwort

0

Unsere Dokumentation scheint unvollständig zu sein, traurig über das! Wenn im Feld "message" keine Stack-Trace enthalten ist, müssen Sie "functionName" festlegen. Wir werden entweder unsere Dokumentation aktualisieren oder diese Anforderung lockern. Damit Ihre Fehler angezeigt werden, fügen Sie zunächst eine "functionName" -Eigenschaft unter "reportLocation" hinzu.

By the way, überprüfen zu schnell, ob eine bestimmte JSON in Fehlerberichterstattung angezeigt wird, wie erwartet, können Sie den gcloud Befehl verwenden können wie folgt (stellen Sie sicher, das komplette JSON-String kopieren):

gcloud beta logging write --payload-type=struct alberta.errors \ 
'{"serviceContext": {"service": "alberta"},"message": "SQLSTATE[08006] [7] FATAL: password authentication failed ...","context": {"reportLocation": {"filePath": "/some/path/to/a/file.txt", "lineNumber": 42, "functionName": "someFunction"}}}'