全部產品
Search
文件中心

Simple Log Service:接入Jaeger Trace資料

更新時間:Jun 30, 2024

您可以通過直接發送方式或OpenTelemetry Collector轉寄方式,將Jaeger平台上的Trace資料發送到Log Service。

前提條件

已建立Trace執行個體。更多資訊,請參見建立Trace執行個體

直接發送

使用Jaeger協議直接發送Trace資料到Log Service時,您需要在Jaeger平台上配置存取點資訊和鑒權資訊,詳細說明如下:

  • 存取點資訊
    • HTTPS協議的存取點為${endpoint}/jaeger/api/traces,例如https://test-project.cn-hangzhou-intranet.log.aliyuncs.com/jaeger/api/traces
    • gRPC協議的存取點為${endpoint}:10010,例如test-project.cn-hangzhou-intranet.log.aliyuncs.com:10010
      警告 為保證傳輸安全性,使用gRPC協議時必須開啟TLS。
    其中,${endpoint}需根據實際情況替換,詳細說明如下表所示。
    表 1. 變數說明
    變數說明樣本
    ${endpoint}Log ServiceProject的接入地址,格式為${project}.${region-endpoint},其中:
    • ${project}:Log ServiceProject名稱。
    • ${region-endpoint}:Log ServiceProject所在地區的訪問網域名稱,支援公網和阿里雲內網(傳統網路、VPC)。更多資訊,請參見服務入口
    test-project.cn-hangzhou.log.aliyuncs.com
  • 鑒權資訊

    您可以在gRPC協議、HTTPS協議的Header中或者Jaeger協議的Tag欄位中配置鑒權資訊,具體欄位及詳細說明如下表所示。

    Jaeger TaggRPC/HTTPS Header Key說明樣本
    sls.otel.projectx-sls-otel-projectLog ServiceProject。test-project
    sls.otel.instanceidx-sls-otel-instance-idTrace服務執行個體ID。更多資訊,請參見建立Trace執行個體test-traces
    sls.otel.akidx-sls-otel-ak-id阿里雲帳號AccessKey ID。

    建議您使用只具備Log ServiceProject寫入許可權的RAM使用者的AccessKey(包括AccessKey ID和AccessKey Secret)。授予RAM使用者向指定Project寫入資料許可權的具體操作,請參見授權。如何擷取AccessKey的具體操作,請參見存取金鑰

    sls.otel.aksecretx-sls-otel-ak-secret阿里雲帳號AccessKey Secret。

    建議您使用只具備Log ServiceProject寫入許可權的RAM使用者的AccessKey。

通過OpenTelemetry Collector轉寄

  1. 安裝OpenTelemetry Collector。
    1. 下載OpenTelemetry Collector
    2. 配置OpenTelemetry Collector。
      1. 建立config.yaml檔案。
      2. config.yaml檔案中添加如下代碼。

        如下代碼中的變數需根據實際情況替換。關於變數的詳細說明,請參見變數說明

        receivers:
          jaeger:
            protocols:
              grpc:
                endpoint: 0.0.0.0:6831
              thrift_binary:
                endpoint: 0.0.0.0:6832
              thrift_compact:
                endpoint: 0.0.0.0:6833
              thrift_http:
                endpoint: 0.0.0.0:6834
        exporters:
          logging/detail:
            loglevel: debug
          alibabacloud_logservice/sls-traces:
            endpoint: "${endpoint}"
            project: "${project}"
            logstore: "${instance}-traces"
            access_key_id: "${access-key-id}"
            access_key_secret: "${access-key-secret}"
        
        service:
          pipelines:
            traces:
              receivers: [jaeger]        #接收端配置為jaeger。
              exporters: [alibabacloud_logservice/sls-traces]       #發送端配置為alibabacloud_logservice/sls-traces。
              # for debug
              #exporters: [logging/detail,alibabacloud_logservice/sls-traces]
        表 2. 變數說明
        變數說明樣本
        ${endpoint}Log ServiceProject的接入地址,格式為${region-endpoint}。其中${region-endpoint}為Log ServiceProject所在地區的訪問網域名稱,支援公網和阿里雲內網(傳統網路、VPC)。更多資訊,請參見服務入口cn-hangzhou.log.aliyuncs.com:10010
        ${project}Log ServiceProject名稱。test-project
        ${instance}Trace服務執行個體ID。更多資訊,請參見建立Trace執行個體test-traces
        ${access-key-id}阿里雲帳號AccessKey ID。

        建議您使用只具備Log ServiceProject寫入許可權的RAM使用者的AccessKey。授予RAM使用者向指定Project寫入資料許可權的具體操作,請參見授權。如何擷取AccessKey的具體操作,請參見存取金鑰

        ${access-key-secret}阿里雲帳號AccessKey Secret。

        建議您使用只具備Log ServiceProject寫入許可權的RAM使用者的AccessKey。

    3. 啟動OpenTelemetry Collector。
      ./otelcontribcol_linux_amd64 --config="./config.yaml"
  2. 配置Jaeger。
    將Jaeger的輸出端地址改為OpenTelemetry Collector監聽的地址。例如OpenTelemetry Collector的地址為${collector-host},則將Jaeger的輸出地址設定為${collector-host}:${port}/api/traces。
    說明 如果OpenTelemetry Collector報錯(解析失敗),則可切換Jaeger Receiver的4種接收模式逐一排查。

後續步驟