在應用程式程式碼中加入自訂 OpenTelemetry 檢測,即可記錄自訂追蹤記錄 span 和指標,評估應用程式特定行為,不限於標準架構程式庫收集的資料。您可以將本文中的概念套用至以 OpenTelemetry 支援的任何語言編寫的應用程式;如需背景資訊,請參閱「應用程式開發人員的可觀測性」和「選擇檢測方法」。
本文件中的範例使用 Go 檢測範例中說明的 Go 範例應用程式,該應用程式可在 GitHub 中取得。
事前準備
啟用 Cloud Logging、Cloud Monitoring 和 Cloud Trace API (如果尚未啟用)。
啟用 API 所需的角色
您必須具備 serviceusage.services.enable 權限,才能啟用 API。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「Service Usage 管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。
建立自訂追蹤記錄
如要從應用程式產生自訂追蹤記錄,請新增檢測程式碼,建立 OpenTelemetry 跨度。在 OpenTelemetry 中,span 是追蹤記錄的構成元素。
如要建立 Span,請按照下列步驟操作:
修改應用程式,取得 OpenTelemetry
Tracer。在 OpenTelemetry 中,追蹤器是 Span 的建立者。您可以按照下列程式碼所示取得追蹤器。如要查看完整範例,請在範例的工具列中選取 GitHub 標誌。追蹤程式名稱 (以
scopeName表示) 會識別所產生追蹤記錄的檢測範圍。使用
tracer例項建立 Span。在下列程式碼範例中,computeSubrequests函式會在每次呼叫時產生 Span:在上述程式碼範例中,從
computeSubrequests函式產生的 Span 代表整個函式完成的工作。這是因為函式的第一個步驟是使用tracer.Start和defer關鍵字啟動新的 Span,然後span.End()確保 Span 在函式結束前結束。
建立自訂指標
如要從應用程式產生指標,請新增檢測程式碼,記錄應用程式執行期間的測量結果。
如要建立指標,請按照下列步驟操作:
修改應用程式,取得 OpenTelemetry
Meter。在 OpenTelemetry 中,計量器可讓您存取指標檢測,以便記錄指標。您可以按照下列程式碼取得計量器:計量器名稱 (以
scopeName表示) 會識別所產生指標的檢測範圍。使用
meter例項建立可記錄指標的檢測。舉例來說,下列程式碼會使用meter建立 OpenTelemetry 直方圖:上述程式碼會產生名為
sleepHistogram的直方圖。使用
sleepHistogram執行個體記錄睡眠時間,這是在叫用randomSleep函式時決定:系統會根據 OpenTelemetry 匯出工具設定,從應用程式匯出這些檢測工具記錄的指標。