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

前提条件

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

直接发送

使用Jaeger协议直接发送Trace数据到日志服务时,您需要在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} 日志服务Project的接入地址,格式为${project}.${region-endpoint},其中:
    • ${project}:日志服务Project名称。
    • ${region-endpoint}:日志服务Project所在地域的访问域名,支持公网和阿里云内网(经典网络、VPC)。更多信息,请参见服务入口
    test-project.cn-hangzhou.log.aliyuncs.com
  • 鉴权信息

    您可以在gRPC协议、HTTPS协议的Header中或者Jaeger协议的Tag字段中配置鉴权信息,具体字段及详细说明如下表所示。

    Jaeger Tag 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-traces
    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。
    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} 日志服务Project的接入地址,格式为${region-endpoint}。其中${region-endpoint}为日志服务Project所在地域的访问域名,支持公网和阿里云内网(经典网络、VPC)。更多信息,请参见服务入口 cn-hangzhou.log.aliyuncs.com:10010
        ${project} 日志服务Project名称。 test-project
        ${instance} 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"
  2. 配置Jaeger。
    将Jaeger的输出端地址改为OpenTelemetry Collector监听的地址。例如OpenTelemetry Collector的地址为${collector-host},则将Jaeger的输出地址设置为${collector-host}:${port}/api/traces。
    说明 如果OpenTelemetry Collector报错(解析失败),则可切换Jaeger Receiver的4种接收模式逐一排查。

后续步骤