From 580207f8a6a850e1ff6dbb3b785e7408035df6ae Mon Sep 17 00:00:00 2001 From: minherz Date: Wed, 13 Sep 2023 13:23:32 -0700 Subject: [PATCH 1/3] fix: refactor error reporting code sample align code sample for error reporting with code in other languages. use an explicit error with the "fixed" message --- .../errorreporting_quickstart/main.go | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/errorreporting/errorreporting_quickstart/main.go b/errorreporting/errorreporting_quickstart/main.go index 9eb9ae7110..e71ccf9110 100644 --- a/errorreporting/errorreporting_quickstart/main.go +++ b/errorreporting/errorreporting_quickstart/main.go @@ -21,8 +21,9 @@ package main import ( "context" + "errors" "log" - "net/http" + "os" "cloud.google.com/go/errorreporting" ) @@ -32,14 +33,18 @@ var errorClient *errorreporting.Client func main() { ctx := context.Background() - // Sets your Google Cloud Platform project ID. - projectID := "YOUR_PROJECT_ID" + // TODO: Sets your Google Cloud Platform project ID via environment or explicitly + projectID := os.Getenv("GOOGLE_PROJECT_ID") + if projectID == "" { + projectID = "YOUR_PROJECT_ID" + } var err error errorClient, err = errorreporting.NewClient(ctx, projectID, errorreporting.Config{ - ServiceName: "myservice", + ServiceName: "errorreporting_quickstart", + ServiceVersion: "0.0.0", OnError: func(err error) { - log.Printf("Could not log error: %v", err) + log.Printf("Could not repport the error: %v", err) }, }) if err != nil { @@ -47,15 +52,15 @@ func main() { } defer errorClient.Close() - resp, err := http.Get("not-a-valid-url") + err = errors.New("Something went wrong") if err != nil { logAndPrintError(err) return } - log.Print(resp.Status) } func logAndPrintError(err error) { + // error context is autopopulated errorClient.Report(errorreporting.Entry{ Error: err, }) From 5156822005ab836879f541496eb0768ccba4f998 Mon Sep 17 00:00:00 2001 From: minherz Date: Thu, 14 Sep 2023 09:25:26 -0700 Subject: [PATCH 2/3] chore: refactoring comments fix typo in the comment. expand the comment about error context autopopulation. address lint warning for errors.New() call. --- errorreporting/errorreporting_quickstart/main.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/errorreporting/errorreporting_quickstart/main.go b/errorreporting/errorreporting_quickstart/main.go index e71ccf9110..1dfa0f1720 100644 --- a/errorreporting/errorreporting_quickstart/main.go +++ b/errorreporting/errorreporting_quickstart/main.go @@ -44,7 +44,7 @@ func main() { ServiceName: "errorreporting_quickstart", ServiceVersion: "0.0.0", OnError: func(err error) { - log.Printf("Could not repport the error: %v", err) + log.Printf("Could not report the error: %v", err) }, }) if err != nil { @@ -52,7 +52,7 @@ func main() { } defer errorClient.Close() - err = errors.New("Something went wrong") + err = errors.New("something went wrong") if err != nil { logAndPrintError(err) return @@ -60,7 +60,8 @@ func main() { } func logAndPrintError(err error) { - // error context is autopopulated + /// Client autopopulates the error context of the error. For more details about the context see: + /// https://cloud.google.com/error-reporting/reference/rest/v1beta1/ErrorContext errorClient.Report(errorreporting.Entry{ Error: err, }) From a38f891e3bc4e42e2cc8f54360a271793df2cc73 Mon Sep 17 00:00:00 2001 From: minherz Date: Thu, 14 Sep 2023 09:45:14 -0700 Subject: [PATCH 3/3] chore: refactor project ID setup align the code to the way project ID is set in other languages. use "official" env variable name. --- errorreporting/errorreporting_quickstart/main.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/errorreporting/errorreporting_quickstart/main.go b/errorreporting/errorreporting_quickstart/main.go index 1dfa0f1720..f1873f410f 100644 --- a/errorreporting/errorreporting_quickstart/main.go +++ b/errorreporting/errorreporting_quickstart/main.go @@ -31,14 +31,14 @@ import ( var errorClient *errorreporting.Client func main() { - ctx := context.Background() - - // TODO: Sets your Google Cloud Platform project ID via environment or explicitly - projectID := os.Getenv("GOOGLE_PROJECT_ID") - if projectID == "" { - projectID = "YOUR_PROJECT_ID" + // Set your Google Cloud Platform project ID via environment or explicitly + projectID := os.Getenv("GOOGLE_CLOUD_PROJECT") + args := os.Args[1:] + if len(args) > 0 && args[0] != "" { + projectID = args[0] } + ctx := context.Background() var err error errorClient, err = errorreporting.NewClient(ctx, projectID, errorreporting.Config{ ServiceName: "errorreporting_quickstart",