全部产品
Search
文档中心

Application Real-Time Monitoring Service:Gunakan Jaeger untuk melaporkan data aplikasi C++

更新时间:Jul 06, 2025

Managed Service for OpenTelemetry memantau aplikasi Anda setelah menggunakan Jaeger untuk menginstrumentasikan dan melaporkan data jejak. Anda dapat melihat data pemantauan seperti topologi, jejak, transaksi abnormal dan lambat, serta analisis SQL. Topik ini menjelaskan cara menggunakan Jaeger untuk menginstrumentasikan aplikasi C++ dan melaporkan datanya.

Penting

Kami merekomendasikan agar Anda menghubungkan aplikasi ke Managed Service for OpenTelemetry menggunakan OpenTelemetry Protocol (OTLP). Dengan pendekatan ini, Anda mendapatkan lebih banyak fitur, kemampuan tracing yang lebih canggih, dan pengalaman pengguna terbaik.

Alibaba Cloud menyediakan panduan terperinci tentang integrasi OpenTelemetry dengan aplikasi serta praktik terbaik dalam penggunaannya untuk membantu Anda memulai dengan Managed Service for OpenTelemetry. Untuk informasi lebih lanjut, lihat Persiapan.

Prasyarat

Memperoleh Titik Akhir

  1. Masuk ke Konsol ARMS. Di panel navigasi kiri, klik Integration Center.

  2. Di halaman Pusat Integrasi, klik kartu Jaeger di bagian Server-side Applications.

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

    Catatan

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

  4. Konfigurasikan parameter Tipe Koneksi dan Protokol Ekspor, lalu salin titik akhir.

    • Tipe Koneksi: Jika layanan Anda berada di Alibaba Cloud dan wilayah yang dipilih, atur parameter ini ke Jaringan VPC Alibaba Cloud. Jika tidak, atur ke Jaringan Publik.

    • Protokol Ekspor: Atur parameter ini ke HTTP (disarankan) atau gRPC sesuai protokol yang didukung oleh klien.

    image.png

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.

Memulai

  1. Jalankan perintah berikut untuk mendapatkan jaeger-client-cpp dari situs resmi:

    wget https://github.com/jaegertracing/jaeger-client-cpp/archive/master.zip && unzip master.zip
  2. Ekstrak paket dan masuk ke direktori. Lalu, jalankan perintah berikut untuk membangun proyek.

    Catatan

    CMake diperlukan dan versi GCC harus V4.9.2 atau lebih baru.

    mkdir build
        cd build
        cmake ..
        make
  3. Unduh Agen Jaeger dan mulai Agen dengan menentukan parameter berikut untuk melaporkan data ke konsol Managed Service for OpenTelemetry.

    Catatan

    Ganti <endpoint> dengan yang Anda ambil di bagian Prasyarat.

    # Parameter reporter.grpc.host-port menentukan titik akhir. Titik akhir bervariasi berdasarkan wilayah. Contoh:
    nohup ./jaeger-agent --reporter.grpc.host-port=tracing-analysis-dc-sz.aliyuncs.com:1883 --jaeger.tags=<endpoint>
  4. Masuk ke direktori contoh jaeger-client-cpp dan jalankan perintah uji.

    ./app ../examples/config.yml

    Masuk ke Konsol ARMS. Di panel navigasi kiri, pilih Application Monitoring > Applications. Di halaman Applications, klik nama aplikasi. Di halaman yang muncul, lihat data jejak.

    Catatan

    Jika ikon image ditampilkan di kolom Language, aplikasi tersebut terhubung ke Pemantauan Aplikasi. Jika tanda hubung (-) ditampilkan, aplikasi tersebut terhubung ke Managed Service for OpenTelemetry.

Gunakan agen Jaeger untuk melaporkan data

  1. Instal klien Jaeger. Untuk informasi lebih lanjut tentang cara mengunduh klien Jaeger, lihat jaeger-client-cpp.

  2. Buat objek Tracer:

    Sebagai contoh, kita dapat menghasilkan objek Trace berdasarkan konfigurasi YAML:

    void setUpTracer(const char* configFilePath)
    {
        auto configYAML = YAML::LoadFile(configFilePath);
        // Impor konfigurasi dari file YAML. 
        auto config = jaegertracing::Config::parse(configYAML);
        // Tetapkan nama layanan dan logger objek Tracer. 
        auto tracer = jaegertracing::Tracer::make(
            "example-service", config, jaegertracing::logging::consoleLogger());
        // Tetapkan objek Tracer sebagai variabel global. 
        opentracing::Tracer::InitGlobal(
            std::static_pointer_cast<opentracing::Tracer>(tracer));
    }

    Contoh konfigurasi YAML:

    disabled: false
    reporter:
      logSpans: true
    sampler:
      type: const
      param: 1
  3. Buat rentang:

    // Buat rentang dalam skenario di mana rentang induk ada. 
    void tracedSubroutine(const std::unique_ptr<opentracing::Span>& parentSpan)
    {
        auto span = opentracing::Tracer::Global()->StartSpan(
            "tracedSubroutine", { opentracing::ChildOf(&parentSpan->context()) });
    }
    
    // Buat rentang dalam skenario di mana tidak ada rentang induk. 
    void tracedFunction()
    {
        auto span = opentracing::Tracer::Global()->StartSpan("tracedFunction");
        tracedSubroutine(span);
    }
  4. Unduh Agen Jaeger dan mulai Agen dengan menentukan parameter berikut untuk melaporkan data ke konsol Managed Service for OpenTelemetry.

    Catatan

    Ganti <endpoint> dengan yang Anda ambil di bagian Prasyarat.

    # Parameter reporter.grpc.host-port menentukan titik akhir. Titik akhir bervariasi berdasarkan wilayah. Contoh:
    nohup ./jaeger-agent --reporter.grpc.host-port=tracing-analysis-dc-sz.aliyuncs.com:1883 --jaeger.tags=<endpoint>