日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

通過Jaeger上報C++應(yīng)用數(shù)據(jù)

通過Jaeger為應(yīng)用埋點并上報鏈路數(shù)據(jù)至可觀測鏈路 OpenTelemetry 版后,可觀測鏈路 OpenTelemetry 版即可開始監(jiān)控應(yīng)用,您可以查看應(yīng)用拓撲、調(diào)用鏈路、異常事務(wù)、慢事務(wù)和SQL分析等一系列監(jiān)控數(shù)據(jù)。本文介紹如何使用Jaeger埋點并上報C++應(yīng)用數(shù)據(jù)。

重要

為獲得更豐富的功能、更先進的鏈路追蹤能力,以及最佳使用體驗,建議您使用OpenTelemetry協(xié)議將應(yīng)用接入可觀測鏈路 OpenTelemetry 版

我們?yōu)槟峁┝嗽敿毜腛penTelemetry接入指南和最佳實踐,幫助您快速上手可觀測鏈路 OpenTelemetry 版。更多信息,請參見接入應(yīng)用

前提條件

獲取接入點信息

  1. 登錄ARMS控制臺,在左側(cè)導航欄單擊接入中心

  2. 服務(wù)端應(yīng)用區(qū)域單擊Jaeger卡片。

  3. 在彈出的Jaeger面板中選擇數(shù)據(jù)需要上報的地域。

    說明

    初次接入的地域?qū)詣舆M行資源初始化。

  4. 選擇連接方式上報方式,然后復制接入點信息。

    • 連接方式:若您的服務(wù)部署在阿里云上,且所屬地域與選擇的接入地域一致,推薦使用阿里云內(nèi)網(wǎng)方式,否則選擇公網(wǎng)方式。

    • 上報方式:根據(jù)客戶端支持的協(xié)議類型選擇HTTP或gRPC協(xié)議上報數(shù)據(jù)。

    image.png

背景信息

數(shù)據(jù)是如何上報的?

  • 不通過Jaeger Agent而直接上報數(shù)據(jù)的原理如下圖所示。

    image
  • 通過Jaeger Agent上報數(shù)據(jù)的原理如下圖所示。

    image

快速開始

  1. 運行以下命令,從官方網(wǎng)站獲取jaeger-client-cpp

    wget https://github.com/jaegertracing/jaeger-client-cpp/archive/master.zip && unzip master.zip
  2. 解壓并進入jaeger-client-cpp安裝包,然后運行以下命令編譯jaeger-client-cpp。

    說明

    編譯依賴CMake,gcc版本不低于4.9.2。

    mkdir build
        cd build
        cmake ..
        make
  3. 下載原生Jaeger Agent,并用以下參數(shù)啟動Agent,以將數(shù)據(jù)上報至可觀測鏈路 OpenTelemetry 版

    說明

    請將<endpoint>替換成前提條件獲取的接入點信息。

    // reporter.grpc.host-port用于設(shè)置網(wǎng)關(guān),網(wǎng)關(guān)因地域而異。 例如:
    nohup ./jaeger-agent --reporter.grpc.host-port=tracing-analysis-dc-sz.aliyuncs.com:1883 --jaeger.tags=<endpoint>
  4. 進入jaeger-client-cpp的example目錄,運行測試用例。

    ./app ../examples/config.yml

    登錄ARMS控制臺后,在應(yīng)用監(jiān)控 > 應(yīng)用列表頁面選擇目標應(yīng)用,查看鏈路數(shù)據(jù)。

    說明

    語言列顯示image圖標的應(yīng)用為接入應(yīng)用監(jiān)控的應(yīng)用,顯示-圖標的應(yīng)用為接入可觀測鏈路 OpenTelemetry 版的應(yīng)用。

通過Agent上報數(shù)據(jù)

  1. 安裝Jaeger Client(官方下載地址)。

  2. 創(chuàng)建Trace。

    例如,我們可以根據(jù)YAML配置生成Trace對象。

    void setUpTracer(const char* configFilePath)
    {
        auto configYAML = YAML::LoadFile(configFilePath);
        // 從YAML文件中導入配置。
        auto config = jaegertracing::Config::parse(configYAML);
        // 設(shè)置Trace的serviceName和日志。
        auto tracer = jaegertracing::Tracer::make(
            "example-service", config, jaegertracing::logging::consoleLogger());
        //將Tracer設(shè)置為全局變量。
        opentracing::Tracer::InitGlobal(
            std::static_pointer_cast<opentracing::Tracer>(tracer));
    }

    YAML配置參考:

    disabled: false
    reporter:
      logSpans: true
    sampler:
      type: const
      param: 1
  3. 創(chuàng)建Span。

    // 有parentSpan的情況下創(chuàng)建Span。
    void tracedSubroutine(const std::unique_ptr<opentracing::Span>& parentSpan)
    {
        auto span = opentracing::Tracer::Global()->StartSpan(
            "tracedSubroutine", { opentracing::ChildOf(&parentSpan->context()) });
    }
    
    // 無parentSpan的情況下創(chuàng)建Span。
    void tracedFunction()
    {
        auto span = opentracing::Tracer::Global()->StartSpan("tracedFunction");
        tracedSubroutine(span);
    }
  4. 下載原生Jaeger Agent,并用以下參數(shù)啟動Agent,以將數(shù)據(jù)上報至可觀測鏈路 OpenTelemetry 版

    說明

    請將<endpoint>替換成前提條件獲取的接入點信息。

    // reporter.grpc.host-port用于設(shè)置網(wǎng)關(guān),網(wǎng)關(guān)因地域而異。 例如:
    nohup ./jaeger-agent --reporter.grpc.host-port=tracing-analysis-dc-sz.aliyuncs.com:1883 --jaeger.tags=<endpoint>