設定 Go 適用的 Error Reporting

您可以使用 Go 適用的 Stackdriver Error Reporting 套件,從 Go 應用程式傳送錯誤報告至 Stackdriver Error Reporting。

Error Reporting 已與部分 Google Cloud Platform 產品整合,如 App EngineCompute EngineGoogle Kubernetes Engine。Error Reporting 能顯示在這些產品上執行的應用程式記錄到 Stackdriver Logging 的錯誤。請參閱在 Google Cloud Platform 上執行一節以瞭解更多資訊。

另外,您也可以使用 Stackdriver Logging,將錯誤資料傳送至 Error Reporting。如要瞭解資料格式要求,請參閱在 Stackdriver Logging 中格式化錯誤訊息

事前準備

  1. 登入您的 Google 帳戶。

    如果您沒有帳戶,請申請新帳戶

  2. 選取或建立 Google Cloud Platform 專案。

    前往「Manage resources」(管理資源) 頁面

  3. 請確認您已啟用 Google Cloud Platform 專案的計費功能。

    瞭解如何啟用計費功能

  4. 啟用Error Reporting API 。

    啟用 API

安裝用戶端程式庫

Go 適用的 Stackdriver 錯誤報告套件可讓您監控並查看錯誤,且是由幾乎隨時隨地都可執行的 Go 應用程式所提供。

  1. 使用 go get 安裝套件:

    go get -u cloud.google.com/go/errorreporting

如要進一步瞭解安裝相關資訊,請參閱 Go 適用的 Stackdriver Error Reporting 套件說明文件。您也可以使用問題追蹤工具回報問題。

設定用戶端程式庫

您可以自訂 Go 適用的 Stackdriver 錯誤報告套件行為。請參閱 the godoc 網站頁面。

回報錯誤

// Sample errorreporting_quickstart contains is a quickstart
// example for the Google Cloud Error Reporting API.
package main

import (
	"context"
	"log"
	"net/http"

	"cloud.google.com/go/errorreporting"
)

var errorClient *errorreporting.Client

func main() {
	ctx := context.Background()

	// Sets your Google Cloud Platform project ID.
	projectID := "YOUR_PROJECT_ID"

	var err error
	errorClient, err = errorreporting.NewClient(ctx, projectID, errorreporting.Config{
		ServiceName: "myservice",
		OnError: func(err error) {
			log.Printf("Could not log error: %v", err)
		},
	})
	if err != nil {
		log.Fatal(err)
	}
	defer errorClient.Close()

	resp, err := http.Get("not-a-valid-url")
	if err != nil {
		logAndPrintError(err)
		return
	}
	log.Print(resp.Status)
}

func logAndPrintError(err error) {
	errorClient.Report(errorreporting.Entry{
		Error: err,
	})
	log.Print(err)
}

如需更多關於如何回報錯誤的範例,請參閱 godoc 網站。

在 Google Cloud Platform 上執行

使用 Go 適用的 Stackdriver Error Reporting 套件要有 Cloud IAM Error Reporting 寫入者角色。預設情況下,大部分 Google Cloud Platform 環境都提供此角色。

App Engine 彈性環境

App Engine 依預設授予 Error Reporting 寫入者角色

不需要明確提供憑證,即可使用 Go 適用的 Stackdriver Error Reporting 套件。

系統會自動為 App Engine 彈性環境應用程式啟用 Error Reporting。您不需要額外進行設定。

GKE

GKE 上建立叢集時,您必須新增 cloud-platform 存取範圍,如下列範例指令所示:

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

Compute Engine

使用 Compute Engine VM 執行個體時,請將 cloud-platform 存取範圍新增到每個執行個體。透過 Google Cloud Platform 主控台建立新執行個體時,您可在「Create Instance」(建立執行個體) 面板的「Identity and API access」(身分及 API 存取權) 區段中執行此操作。請使用 Compute Engine 預設服務帳戶或您選擇的其他服務帳戶,並選取「Identity and API access」(身分及 API 存取權) 區段的 [Allow full access to all Cloud APIs] (允許所有 Cloud API 的完整存取權)。無論您選取哪個服務帳戶,都請確保該帳戶已在 GCP 主控台的「IAM & admin」(IAM 與管理員) 區段中取得 Error Reporting 寫入者角色

在本機及其他地方執行

如要在 Google Cloud Platform 之外使用 Go 適用的 Stackdriver 錯誤報告E套件,您必須將您的 GCP 專案 ID 與適當的服務帳戶憑證直接套用至 Go 適用的 Stackdriver 錯誤報告套件。這適用於在您自己的工作站上、在資料中心的電腦上,或在其他雲端服務供應商的 VM 執行個體上執行程式庫。詳情請參閱手動取得及提供服務帳戶憑證一文。

查看錯誤報告

部署完成後,您可以在 GCP 主控台的 Error Reporting 資訊主頁中查看錯誤報告。

前往 Error Reporting 資訊主頁

詳情請參閱查看錯誤一文。

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Stackdriver 錯誤報告
需要協助嗎?請前往我們的支援網頁