0

Ich habe eine VM-Micro-Instanz in Google Cloud ausgeführt und ich möchte eine Fehlermeldung an Stackdriver protokollieren. Diese Seite https://cloud.google.com/logging/docs/agent/installation zeigt dieses BeispielWie Logger verwenden, um einen Fehler in Stackdriver zu protokollieren?

logger "Some test message"

, die für normale Nachrichten funktioniert gut, aber ich mag Stackdriver einige Nachrichten als Fehler erkennen, so dass sie hier https://console.cloud.google.com/errors oben zeigen würden, was mir E-Mail-Benachrichtigungen zu erhalten erlauben würde, .

Ich bin mir bewusst, dass das gcloud Tool eine Beta-Protokollierungslösung hat, aber ich hoffe, die Installation der zusätzlichen Komponenten, die es benötigt, zu vermeiden.

Antwort

0

Sie werden die Dokumentation über die Formatierung bei https://cloud.google.com/error-reporting/docs/formatting-error-messages

So etwas lesen über wollen:

{ 
    "message": "Some test message", 
    "context": { 
    "reportLocation": { 
     "functionName": "my_function" 
    } 
    }, 
    "serviceContext": { 
    "service": "my service", 
    } 
    } 

Sie verlassen nun die Nachricht benötigen die jsonPayload des Protokolleintrag sein, nicht die textPayload. Ich glaube, der Agent wird JSON-Nachrichten automatisch erkennen, aber wenn es auch Nicht-JSON-Nachrichten gibt, kann es in allen Fällen auf die Verwendung von Text zurückgreifen. In diesem Fall sollte die Verwendung eines dedizierten Protokolls für die Fehler hilfreich sein.

Sie können auch in der Dokumentation interessiert sein, wie Nachrichten in Gruppen zusammengefasst sind: https://cloud.google.com/error-reporting/docs/grouping

+0

Danke für die Antwort. Ich habe dein Beispiel mit 'Logger" $ json "' (in der Shell) ausprobiert und es zeigt sich im Stackdriver, aber nicht im Fehlerreporter. Ich habe auch das Gleiche versucht, aber neue Zeilen durch '\ n' ersetzt, so wie 'json =' {\ n" message ":" Einige Testnachrichten ", \ n" context ": {\ n" reportLocation ": {\ n "Funktionsname": "my_function" \ n} \ n}, \ n "serviceContext": {\ n "Dienst": "mein Dienst", \ n} \ n "" –

+0

Wenn Sie den Protokolleintrag in der Cloud erweitern console logs viewer, welcher Payload-Typ ist der Inhalt in (json, text, proto)? –

+0

Ich denke, es ist nur Text, aber hier ist die Antwort https://gist.github.com/bijoutrouvaille/881d3b8780ba2e35e3e4dc3320172189 –

Verwandte Themen