All Products
Search
Document Center

Managed Service for OpenTelemetry:Laporkan data aplikasi Go menggunakan Jaeger

Last Updated:Sep 03, 2026

Anda dapat menginstrumentasi aplikasi Go dengan Jaeger dan melaporkan jejak ke Managed Service for OpenTelemetry. Setelah jejak dilaporkan, Managed Service for OpenTelemetry akan mulai memantau aplikasi Anda. Anda dapat melihat berbagai data pemantauan, seperti topologi aplikasi, tumpukan panggilan, transaksi abnormal, transaksi lambat, dan analisis SQL. Topik ini menjelaskan cara menggunakan SDK Jaeger dan Agen Jaeger untuk instrumentasi serta pelaporan data aplikasi Go.

Penting
  • Untuk fitur yang lebih lengkap, kemampuan tracing lanjutan, dan pengalaman yang lebih baik, hubungkan aplikasi Anda ke Managed Service for OpenTelemetry menggunakan protokol OpenTelemetry. Untuk informasi selengkapnya, lihat Persiapan.

  • ARMS menyediakan agen komersial yang dikembangkan sendiri untuk aplikasi Go. Agen ini memungkinkan instrumentasi non-intrusif serta menyediakan fitur yang lebih lengkap dan stabilitas yang lebih tinggi. Untuk informasi selengkapnya, lihat Pantau aplikasi Go.

Prasyarat

Dapatkan titik akhir

Konsol baru

  1. Masuk ke Konsol Managed Service for OpenTelemetry. Di panel navigasi kiri, klik Integration Center.

  2. Di halaman Integration Center, klik kartu Jaeger pada bagian Open Source Frameworks.

  3. Di panel Jaeger, klik tab Start Integration, lalu pilih wilayah tempat Anda ingin melaporkan data.

    Catatan

    Saat Anda mengakses wilayah untuk pertama kalinya, sumber daya akan diinisialisasi secara otomatis di sana.

  4. Konfigurasikan parameter Connection Type dan Export Protocol, lalu salin titik akhir.

    • Connection Type: Jika layanan Anda dideploy di Alibaba Cloud dan berada di wilayah yang Anda pilih, kami menyarankan Anda mengatur parameter ini ke Alibaba Cloud VPC Network. Jika tidak, atur parameter ini ke Public Network.

    • Export Protocol: Atur parameter ini ke HTTP (disarankan) atau gRPC berdasarkan protokol yang didukung oleh klien.

    image

Konsol lama

  1. Masuk ke Konsol Managed Service for OpenTelemetry.

  2. Di panel navigasi kiri, klik Cluster Configurations. Di halaman yang muncul, klik tab Access point information.

  3. Di bilah navigasi atas, pilih wilayah tempat Anda ingin melaporkan data. Di bagian Cluster Information, aktifkan Show Token.

  4. Atur parameter Client ke Jaeger.

    Di kolom Related Information tabel, salin titik akhir.jager中国.jpg

    Catatan

    Jika aplikasi Anda dideploy di lingkungan produksi Alibaba Cloud, gunakan titik akhir VPC. Jika tidak, gunakan titik akhir publik.

Informasi latar belakang

Bagaimana data dilaporkan?

  • Gambar berikut menunjukkan cara melaporkan data tanpa menggunakan agen Jaeger.

  • Gambar berikut menunjukkan cara melaporkan data dengan menggunakan agen Jaeger.

Metode 1: Laporkan data menggunakan SDK Jaeger

Bagian ini menggunakan alat manajemen dependensi Go Modules sebagai contoh. Anda dapat menggunakan SDK Jaeger untuk instrumentasi guna melaporkan data secara langsung ke sisi server Managed Service for OpenTelemetry. Jika Anda menggunakan alat manajemen dependensi lain, lakukan operasi yang sesuai.

  1. Impor jaeger-client-go.

    go get github.com/uber/jaeger-client-go
  2. Buat objek Tracer.

    Catatan

    Ganti <endpoint> dengan titik akhir untuk klien dan wilayah Anda. Anda dapat memperoleh titik akhir tersebut dari halaman Endpoint Information di Konsol Managed Service for OpenTelemetry. Untuk informasi selengkapnya tentang cara memperoleh titik akhir, lihat bagian Prasyarat dalam topik ini.

    func NewJaegerTracer(service string) (opentracing.Tracer, io.Closer) {
    
        sender := transport.NewHTTPTransport(
           // Setel gerbang. Gerbang bervariasi tergantung wilayah.
            "<endpoint>",
        )
       tracer, closer:= jaeger.NewTracer(service,
               jaeger.NewConstSampler(true),
               jaeger.NewRemoteReporter(sender))
       return tracer, closer
    }
  3. Buat objek instans span dan aktifkan transmisi langsung data.

    • Jika parentSpan tidak ada:

      // Buat span.
      span := tracer.StartSpan("myspan")
      // Setel tag.
      clientSpan.SetTag("mytag", "123")
      // Transmisikan trace ID.
      tracer.Inject(span.Context(), opentracing.HTTPHeaders, opentracing.HTTPHeadersCarrier(req.Header))
      ...
      defer  span.Finish()
    • Jika parentSpan ada:

      // Parsing spanCtx dari objek HTTP/RPC.
      spanCtx, _ := tracer.Extract(opentracing.HTTPHeaders, opentracing.HTTPHeadersCarrier(r.Header))
      span := tracer.StartSpan("myspan", opentracing.ChildOf(spanCtx))
      ...
      defer  span.Finish()

    Untuk informasi selengkapnya tentang cara menggunakan SDK, lihat Go Doc.

Metode 2: Laporkan data menggunakan Agen Jaeger

  1. Jalankan Agen Jaeger. Untuk informasi selengkapnya, lihat Instal Agen Jaeger.

  2. Impor jaeger-client-go.

    go get github.com/uber/jaeger-client-go
  3. Buat 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
    }
  4. Buat objek instans span dan aktifkan transmisi langsung data.

    • Jika parentSpan tidak ada:

      // Buat span.
      span := tracer.StartSpan("myspan")
      // Setel tag.
      clientSpan.SetTag("mytag", "123")
      // Transmisikan trace ID.
      tracer.Inject(span.Context(), opentracing.HTTPHeaders, opentracing.HTTPHeadersCarrier(req.Header))
      ...
      defer  span.Finish()
    • Jika parentSpan ada:

      // Parsing spanCtx dari objek HTTP/RPC.
      spanCtx, _ := tracer.Extract(opentracing.HTTPHeaders, opentracing.HTTPHeadersCarrier(r.Header))
      span := tracer.StartSpan("myspan", opentracing.ChildOf(spanCtx))
      ...
      defer  span.Finish()

    Untuk informasi selengkapnya tentang cara menggunakan SDK, lihat Go Doc.

Contoh

Laporkan data secara langsung menggunakan SDK Jaeger

  1. Dapatkan titik akhir. Untuk informasi selengkapnya, lihat bagian Prasyarat dalam topik ini.

  2. Jalankan perintah berikut untuk mengunduh file contoh.

    wget https://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/demo/tracing-demo.zip && unzip tracing-demo.zip
  3. Buka file examples/settings.go di folder contoh dan konfigurasikan parameter sesuai penjelasan dalam komentar blok kode: atur TracingAnalysisEndpoint ke titik akhir yang Anda peroleh di Langkah 1.

    package examples
    
    // Diperlukan untuk pelaporan SDK: atur gerbang Analisis Tracing (nilainya bervariasi per wilayah; peroleh dari tampilan konfigurasi di http://tracing.console.alibabacloud.com/)
    const TracingAnalysisEndpoint = "http://tracing-analysis-dc-hz.aliyuncs.com/adapt_xxxxxx_xxxxx/api/traces"
    
    // Pelaporan melalui Agen: true (memerlukan jaeger-agent yang dijalankan lokal)  Pelaporan melalui SDK: false (default)
    const AgentSwitch = false
    
    // Nama aplikasi di Konsol Analisis Tracing
    const (
    	CliTracerServiceName = "cliDemo"
    
    	GrpcServerName = "grpcServer"
    
    	GrpcClientName = "grpcClient"
    
    	HttpServerName = "httpServer"
    
    	HttpClientName = "httpClient"
    )
  4. Jalankan perintah go mod tidy untuk mengelola dependensi.

  5. Jalankan perintah go run tracingdemo untuk menjalankan contoh.

Laporkan data menggunakan Agen Jaeger

  1. Dapatkan titik akhir. Untuk informasi selengkapnya, lihat bagian Prasyarat dalam topik ini.

  2. Jalankan perintah berikut untuk mengunduh file contoh.

    wget https://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/demo/tracing-demo.zip && unzip tracing-demo.zip
  3. Jalankan Agen Jaeger. Untuk informasi selengkapnya, lihat Instal Agen Jaeger.

  4. Buka file examples/settings.go di folder contoh, konfigurasikan parameter sesuai penjelasan dalam komentar blok kode, dan ubah nilai AgentSwitch menjadi true.

    package examples
    
    // Diperlukan untuk pelaporan SDK: atur gerbang Analisis Tracing (nilainya bervariasi per wilayah; peroleh dari tampilan konfigurasi di http://tracing.console.alibabacloud.com/)
    const TracingAnalysisEndpoint = "http://tracing-analysis-dc-hz.aliyuncs.com/adapt_xxxxxx_xxxxx/api/traces"
    
    // Pelaporan melalui Agen: true (memerlukan jaeger-agent yang dijalankan lokal)  Pelaporan melalui SDK: false (default)
    const AgentSwitch = false
    
    // Nama aplikasi di Konsol Analisis Tracing
    const (
    	CliTracerServiceName = "cliDemo"
    
    	GrpcServerName = "grpcServer"
    
    	GrpcClientName = "grpcClient"
    
    	HttpServerName = "httpServer"
    
    	HttpClientName = "httpClient"
    )
  5. Jalankan perintah go mod tidy untuk mengelola dependensi.

  6. Jalankan perintah go run tracingdemo untuk menjalankan contoh.

FAQ

T: Mengapa error berikut terjadi saat waktu proses?

2021/06/28 21:11:54 ERROR: error when flushing the buffer: error from collector: 403

J: Error ini menunjukkan bahwa titik akhir salah. Perbaiki titik akhir tersebut dan coba lagi.