本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
您可以通过直接发送方式或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转发
安装OpenTelemetry Collector。
配置OpenTelemetry Collector。
创建config.yaml文件。
在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。
无
启动OpenTelemetry Collector。
./otelcontribcol_linux_amd64 --config="./config.yaml"
配置Jaeger。
将Jaeger的输出端地址改为OpenTelemetry Collector监听的地址。例如OpenTelemetry Collector的地址为${collector-host},则将Jaeger的输出地址设置为${collector-host}:${port}/api/traces。
说明如果OpenTelemetry Collector报错(解析失败),则可切换Jaeger Receiver的4种接收模式逐一排查。