Mengaitkan metrik dan rekaman aktivitas menggunakan contoh

Anda dapat menggunakan contoh untuk mengorelasikan data metrik dan data trace. Contoh adalah permintaan atau rentang sampel representatif yang terkait dengan pengukuran metrik. Aplikasi Anda dapat membuat dan melampirkan contoh ke data metrik. Atau, Google Cloud Observability dapat membuatnya secara dinamis saat membuat diagram hasil kueri. Dengan menautkan ID trace individual ke metrik gabungan, contoh membantu Anda menyelidiki penyebab utama lonjakan latensi atau error dengan cepat.

Dokumen ini menjelaskan cara mengonfigurasi OpenTelemetry untuk membuat dan melampirkan contoh trace ke data metrik Anda.

Jika Anda membuat diagram hasil kueri SQL di dasbor, Google Cloud Observability juga dapat membuat contoh secara otomatis. Untuk mengetahui informasi selengkapnya, lihat Membuat dan menampilkan contoh trace.

Tentang contoh

Contoh adalah cara untuk mengaitkan data arbitrer dengan data metrik. Anda dapat menggunakannya untuk melampirkan data non-metrik ke pengukuran. Salah satu penggunaan contoh adalah mengaitkan data trace dengan data metrik. Di Cloud Monitoring, contoh dapat dilampirkan ke data metrik yang memiliki Distribution jenis nilai. Metrik bernilai distribusi mengumpulkan banyak pengukuran dan mengelompokkannya ke dalam bucket. Setiap "titik" adalah histogram, yang merupakan array yang mencantumkan jumlah bucket. Pengukuran sebenarnya tidak dipertahankan, hanya jumlah bucket. Untuk mengetahui informasi selengkapnya, lihat Tentang metrik bernilai distribusi.

Saat titik data metrik ditulis, array objek Exemplar dapat dilampirkan ke data tersebut. Contoh, saat digunakan, melampirkan informasi berguna ke data metrik. Misalnya, saat OpenTelemetry menulis contoh, OpenTelemetry akan melampirkan link ke rentang trace saat ini.

Data histogram biasanya ditampilkan menggunakan peta panas. Saat "titik" berisi contoh, Cloud Monitoring akan menganotasi peta panas dengan titik:

  • Untuk melihat informasi ringkasan tentang titik metrik, aktifkan tooltip untuk anotasi.
  • Untuk mengakses trace, pilih anotasi.

Misalnya, contoh instrumentasi Go menggunakan OpenTelemetry untuk menulis data metrik, data trace, dan contoh. Screenshot berikut menunjukkan nilai metrik prometheus/http_server_duration_milliseconds/histogram setelah beberapa eksekusi aplikasi:

Contoh peta panas yang menampilkan beberapa contoh.

Screenshot sebelumnya menunjukkan beberapa contoh. Tooltip untuk satu contoh diperluas, dan menampilkan tanggal, nama trace, persentil, dan nilai latensi.

Saat anotasi dipilih, trace yang ditautkan dalam contoh akan ditampilkan:

Contoh detail rekaman aktivitas untuk contoh.

Jika informasi yang ditampilkan tidak cukup detail, Anda dapat memilih Lihat di Trace, yang akan membuka halaman Trace Explorer. Di halaman tersebut, Anda dapat melihat atribut trace dan mengakses link ke entri log.

Cara mengaktifkan contoh OpenTelemetry

Seperti yang diilustrasikan dalam contoh sebelumnya, Anda dapat mengonfigurasi OpenTelemetry untuk menulis contoh yang menautkan rentang trace saat ini ke pengukuran metrik. Namun, agar contoh dapat ditulis, Anda harus melakukan hal berikut:

  1. Konfigurasi metrik OpenTelemetry dan SDK trace.
  2. Untuk menyertakan contoh pada instrumentasi kustom, pastikan metrik dicatat dalam rentang, dan Anda meneruskan konteks dari rentang dengan pengukuran metrik.

    Misalnya, fungsi computeSubrequests mengikuti panduan sebelumnya. Fungsi subRequestsHistogram.Record dipanggil setelah tracer.Start dan sebelum span.End, yang ditangguhkan. Perhatikan juga bahwa konteks, ctx, diteruskan dari tracer.Start ke fungsi 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
    }
    

    Untuk mengetahui informasi selengkapnya tentang contoh ini, lihat Menambahkan trace dan metrik kustom ke aplikasi Anda.

Langkah berikutnya