全部產品
Search
文件中心

Simple Log Service:接入OpenTelemetry Trace資料

更新時間:Oct 25, 2024

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

前提條件

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

直接發送

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

  • 存取點資訊

    • HTTPS協議的存取點為${endpoint}/opentelemetry/v1/traces,例如https://test-project.cn-hangzhou-intranet.log.aliyuncs.com/opentelemetry/v1/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中或者OpenTelemetry協議的Resource欄位中配置鑒權資訊,具體欄位及詳細說明如下表所示。

    OpenTelemetry Resource

    gRPC/HTTPS Header Key

    說明

    樣本

    sls.otel.project

    x-sls-otel-project

    Log ServiceProject。

    test-project

    sls.otel.instanceid

    x-sls-otel-instance-id

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

    test-otel

    sls.otel.akid

    x-sls-otel-ak-id

    阿里雲帳號AccessKey ID。

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

    sls.otel.aksecret

    x-sls-otel-ak-secret

    阿里雲帳號AccessKey Secret。

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

通過OpenTelemetry Collector轉寄

  1. 下載OpenTelemetry Collector

  2. 配置OpenTelemetry Collector。

    1. 建立config.yaml檔案。

    2. config.yaml檔案中添加如下代碼。

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

      receivers:
        otlp:
          protocols:
            grpc:
              endpoint: "0.0.0.0:55680"
            http:
              endpoint: "0.0.0.0:55681"
      exporters:
        logging/detail:
          loglevel: debug
        alibabacloud_logservice/traces:
          endpoint: "${endpoint}"
          project: "${project}"
          logstore: "${instance-id}-traces"
          access_key_id: "${access-key-id}"
          access_key_secret: "${access-key-secret}"
        alibabacloud_logservice/metrics:
          endpoint: "${endpoint}"
          project: "${project}"
          logstore: "${instance-id}-metrics"
          access_key_id: "${access-key-id}"
          access_key_secret: "${access-key-secret}"
         alibabacloud_logservice/logs:
          endpoint: "${endpoint}"
          project: "${project}"
          logstore: "${instance-id}-logs"
          access_key_id: "${access-key-id}"
          access_key_secret: "${access-key-secret}"
      
      service:
        pipelines:
          traces:
            receivers: [otlp]           #接收端配置為otlp。
            exporters: [alibabacloud_logservice/traces]   #發送端配置為alibabacloud_logservice/traces。
            # for debug
            #exporters: [logging/detail,alibabacloud_logservice/traces]
          metrics:
            receivers: [otlp]
            exporters: [alibabacloud_logservice/metrics]
          logs:
            receivers: [otlp]
            exporters: [alibabacloud_logservice/logs]

      表 2. 變數說明

      變數

      說明

      樣本

      ${endpoint}

      Log ServiceProject的接入地址,格式為${region-endpoint}。其中,${region-endpoint}為Log ServiceProject所在地區的訪問網域名稱,支援公網和阿里雲內網(傳統網路、VPC)。更多資訊,請參見服務入口

      cn-hangzhou.log.aliyuncs.com

      ${project}

      Log ServiceProject名稱。

      test-project

      ${instance-id}

      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"

後續步驟