使用範例建立指標和追蹤記錄的關聯

本文說明樣本,也就是附加至指標資料點的範例資料點。範例的用途之一是儲存追蹤記錄的連結,方便您將指標和追蹤記錄資料相互關聯。本文也說明如何使用 OpenTelemetry 產生範例。

關於範例

樣本可將任意資料與指標資料建立關聯。您可以使用這些資料,將非指標資料附加至評估結果。範例的用途之一是將追蹤資料與指標資料建立關聯。在 Cloud Monitoring 中,範例可以附加至具有 Distribution 值類型的指標資料。以分配情形為值的指標會收集多項測量結果,並將這些結果分組到 bucket 中。每個「點」都是直方圖,也就是列出值區計數的陣列。 系統不會保留實際測量結果,只會保留值區計數。詳情請參閱「關於以分配值為單位的指標」。

寫入指標資料點時,可以將 Exemplar 物件陣列附加至該資料。使用範例時,會將實用資訊附加至指標資料。舉例來說,OpenTelemetry 寫入範例時,會將連結附加至追蹤的目前範圍

通常會使用熱視圖顯示直方圖資料。如果「點」包含範例,Cloud Monitoring 會在熱度圖上以圓點標註:

  • 如要查看指標點的摘要資訊,請啟用註解的工具提示。
  • 如要存取追蹤記錄,請選取註解。

舉例來說,Go 檢測範例會使用 OpenTelemetry 寫入指標資料、追蹤記錄資料和範例。下列螢幕截圖顯示應用程式執行多次後,prometheus/http_server_duration_milliseconds/histogram 指標的值:

熱視圖範例,顯示多個範例。

上一個螢幕截圖顯示多個範例。系統會展開其中一個範例的工具提示,顯示日期、追蹤名稱、百分位數和延遲值。

選取註解後,系統會顯示範例中連結的追蹤記錄:

範例的追蹤記錄詳細資料。

如果顯示的資訊不夠詳細,可以選取「在 Trace 中查看」,開啟「Trace Explorer」頁面。您可以在該頁面中查看追蹤屬性,以及存取記錄項目的連結。

如何啟用 OpenTelemetry 範例

如上例所示,您可以設定 OpenTelemetry,編寫可將追蹤記錄的目前 span 連結至指標測量的範例。不過,您必須完成下列事項,才能撰寫範例:

  1. 設定 OpenTelemetry 指標和追蹤記錄 SDK。
  2. 如要在自訂檢測中加入範例,請確保指標記錄在範圍內,並從範圍中傳遞指標測量的內容。

    舉例來說,computeSubrequests 函式遵循上述指引。函式 subRequestsHistogram.Record 會在 tracer.Start 之後和 span.End 之前 (延遲) 叫用。另請注意,內容 ctx 是從 tracer.Start 傳遞至 Record 函式:

    func computeSubrequests(r *http.Request, subRequests int) error {
    	// Add custom span representing the work done for the subrequests
    	ctx, span := tracer.Start(r.Context(), "subrequests")
    	defer span.End()
    
    	// Make specified number of http requests to the /single endpoint.
    	for i := 0; i < subRequests; i++ {
    		if err := callSingle(ctx); err != nil {
    			return err
    		}
    	}
    	// record number of sub-requests made
    	subRequestsHistogram.Record(ctx, int64(subRequests))
    	return nil
    }
    

    如要進一步瞭解這個範例,請參閱「在應用程式中新增自訂追蹤記錄和指標」。

後續步驟