接入OpenTelemetry Trace数据

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

您可以通过直接发送方式或OpenTelemetry Collector转发方式,将OpenTelemetry平台上的Trace数据发送到日志服务。

前提条件

已创建Trace实例。更多信息,请参见创建Trace实例

直接发送

使用OpenTelemetry协议直接发送Trace数据到日志服务时,您需要在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}

    日志服务Project的接入地址,格式为${project}.${region-endpoint},其中:

    • ${project}:日志服务Project名称。

    • ${region-endpoint}:日志服务Project所在地域的访问域名,支持公网和阿里云内网(经典网络、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

    日志服务Project。

    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。

    建议您使用只具备日志服务Project写入权限的RAM用户的AccessKey(包括AccessKey ID和AccessKey Secret)。授予RAM用户向指定Project写入数据权限的具体操作,请参见授权。如何获取AccessKey的具体操作,请参见访问密钥

    sls.otel.aksecret

    x-sls-otel-ak-secret

    阿里云账号AccessKey Secret。

    建议您使用只具备日志服务Project写入权限的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}

      日志服务Project的接入地址,格式为${region-endpoint}。其中,${region-endpoint}为日志服务Project所在地域的访问域名,支持公网和阿里云内网(经典网络、VPC)。更多信息,请参见服务入口

      cn-hangzhou.log.aliyuncs.com

      ${project}

      日志服务Project名称。

      test-project

      ${instance-id}

      Trace服务实例ID。更多信息,请参见创建Trace实例

      test-traces

      ${access-key-id}

      阿里云账号AccessKey ID。

      建议您使用只具备日志服务Project写入权限的RAM用户的AccessKey。授予RAM用户向指定Project写入数据权限的具体操作,请参见授权。如何获取AccessKey的具体操作,请参见访问密钥

      ${access-key-secret}

      阿里云账号AccessKey Secret。

      建议您使用只具备日志服务Project写入权限的RAM用户的AccessKey。

  3. 启动OpenTelemetry Collector。

    ./otelcontribcol_linux_amd64 --config="./config.yaml"

后续步骤