Sebelum Anda dapat melihat data jejak aplikasi, Anda harus menggunakan klien untuk melaporkan data jejak ke Analisis Tracing. Topik ini menjelaskan cara menggunakan Jaeger SDK atau agen Jaeger untuk melaporkan data aplikasi Go, serta memberikan contoh penggunaan kedua metode tersebut.
Prasyarat
Informasi Latar Belakang
Metode 1: Gunakan Jaeger SDK untuk melaporkan data aplikasi Go
Dalam contoh ini, modul Go digunakan untuk mengelola dependensi. Anda dapat menggunakan Jaeger SDK untuk menginstrumentasi aplikasi dan melaporkan data aplikasi ke Analisis Tracing. Jika Anda menggunakan alat lain untuk mengelola dependensi, sesuaikan operasi berdasarkan kebutuhan aktual Anda.
Impor jaeger-client-go.
go get github.com/uber/jaeger-client-goBuat objek Tracer.
CatatanGanti
<endpoint>dengan titik akhir untuk Jaeger di wilayah yang sesuai pada halaman Access point information konsol Analisis Tracing. Untuk informasi lebih lanjut tentang cara mendapatkan titik akhir, lihat bagian Prasyarat dalam topik ini.func NewJaegerTracer(service string) (opentracing.Tracer, io.Closer) { sender := transport.NewHTTPTransport( // Tentukan titik akhir. Titik akhir berbeda di setiap wilayah. "<endpoint>", ) tracer, closer:= jaeger.NewTracer(service, jaeger.NewConstSampler(true), jaeger.NewRemoteReporter(sender)) return tracer, closer }Buat rentang dan teruskan data.
Jika rentang induk tidak tersedia, gunakan kode berikut:
// Buat rentang. span := tracer.StartSpan("myspan") // Tetapkan tag. clientSpan.SetTag("mytag", "123") // Teruskan ID jejak. tracer.Inject(span.Context(), opentracing.HTTPHeaders, opentracing.HTTPHeadersCarrier(req.Header)) ... defer span.Finish()Jika rentang induk tersedia, gunakan kode berikut:
// Ekstrak SpanContext dari permintaan HTTP atau permintaan RPC. spanCtx, _ := tracer.Extract(opentracing.HTTPHeaders, opentracing.HTTPHeadersCarrier(r.Header)) span := tracer.StartSpan("myspan", opentracing.ChildOf(spanCtx)) ... defer span.Finish()
Untuk informasi lebih lanjut, lihat Jaeger Bindings untuk API OpenTracing Go.
Metode 2: Gunakan agen Jaeger untuk melaporkan data aplikasi Go
Mulai agen Jaeger. Untuk informasi lebih lanjut, lihat Instal Agen Jaeger.
Impor jaeger-client-go.
go get github.com/uber/jaeger-client-goBuat objek Tracer.
func NewJaegerTracer(serviceName string) (opentracing.Tracer, io.Closer) { sender, _ := jaeger.NewUDPTransport("",0) tracer, closer:= jaeger.NewTracer(serviceName, jaeger.NewConstSampler(true), jaeger.NewRemoteReporter(sender)) return tracer, closer }Buat rentang dan teruskan data.
Jika rentang induk tidak tersedia, gunakan kode berikut:
// Buat rentang. span := tracer.StartSpan("myspan") // Tetapkan tag. clientSpan.SetTag("mytag", "123") // Teruskan ID jejak. tracer.Inject(span.Context(), opentracing.HTTPHeaders, opentracing.HTTPHeadersCarrier(req.Header)) ... defer span.Finish()Jika rentang induk tersedia, gunakan kode berikut:
// Ekstrak SpanContext dari permintaan HTTP atau permintaan RPC. spanCtx, _ := tracer.Extract(opentracing.HTTPHeaders, opentracing.HTTPHeadersCarrier(r.Header)) span := tracer.StartSpan("myspan", opentracing.ChildOf(spanCtx)) ... defer span.Finish()
Untuk informasi lebih lanjut, lihat Jaeger Bindings untuk API OpenTracing Go.
Contoh
Gunakan Jaeger SDK untuk Melaporkan Data Aplikasi Go
Dapatkan titik akhir yang diperlukan. Untuk informasi lebih lanjut, lihat bagian Prasyarat dalam topik ini.
Jalankan perintah berikut untuk mengunduh demo:
wget https://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/demo/tracing-demo.zip && unzip tracing-demo.zipEkstrak paket ZIP, buka file examples/settings.go di demo, lalu atur parameter TracingAnalysisEndpoint ke titik akhir yang diperoleh di Langkah 1, seperti yang ditunjukkan pada gambar berikut.

Jalankan perintah
go mod tidyuntuk membersihkan dependensi yang tidak digunakan.Jalankan perintah
go run tracingdemountuk menjalankan demo.
Gunakan Agen Jaeger untuk Melaporkan Data Aplikasi Go
Dapatkan titik akhir yang diperlukan. Untuk informasi lebih lanjut, lihat bagian Prasyarat dalam topik ini.
Jalankan perintah berikut untuk mengunduh demo:
wget https://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/demo/tracing-demo.zip && unzip tracing-demo.zipMulai agen Jaeger. Untuk informasi lebih lanjut, lihat Instal Agen Jaeger.
Buka file examples/settings.go di demo dan atur parameter
AgentSwitchmenjaditrue.
Jalankan perintah
go mod tidyuntuk membersihkan dependensi yang tidak digunakan.Jalankan perintah
go run tracingdemountuk menjalankan demo.
Tanya Jawab Umum
P: Mengapa kesalahan berikut terjadi ketika saya menggunakan Jaeger untuk melaporkan data aplikasi Go?
2021/06/28 21:11:54 ERROR: error when flushing the buffer: error from collector: 403A: Ini karena titik akhir yang ditentukan tidak valid. Tentukan titik akhir yang valid dan coba lagi.
