使用OpenTelemetry SDK接入Trace数据时,可以通过直接发送或通过OpenTelemetry Collector转发两种方式上报数据到可观测链路 OpenTelemetry 版服务端。
前提条件
在控制台获取鉴权Token,具体操作,请参见获取鉴权Token。直接上报
如果您的应用使用了OpenTelemetry SDK,可以通过OpenTelemetry gRPC协议直接向可观测链路 OpenTelemetry 版服务端发送数据,您只需要配置接入点信息以及鉴权信息。
- 接入点信息:将前提条件中获取的接入点记为<endpoint>。
- 鉴权Token:将前提条件中的Token添加为gRPC的Header。
以Java语言为例:
SdkTracerProvider sdkTracerProvider = SdkTracerProvider.builder()
.addSpanProcessor(BatchSpanProcessor.builder(OtlpGrpcSpanExporter.builder()
.setEndpoint("<endpoint>")
.addHeader("Authentication", "<token>")
.build()).build())
.build();
说明
- 将
<endpoint>
替换为前提条件中获取的gRPC接入点信息,例如:http://tracing-analysis-dc-bj.aliyuncs.com:8090
。 - 将
<token>
替换为前提条件中获取的Token,例如:b590lhguqs@3a7xxxxxxx9b_b590lhguqs@53dxxxxx8301
。
通过开源OpenTelemetry Collector转发
如果您的应用使用了OpenTelemetry SDK和OpenTelemetry Collector,将Endpoint配置为本地部署的OpenTelemetry Collector地址后,无需配置鉴权信息,只需在OpenTelemetry Collector配置OTLP Exporter(包含Endpoint以及鉴权信息)向可观测链路 OpenTelemetry 版服务端上报数据。
安装OpenTelemetry Collector
OpenTelemetry Collector的安装方式有两种,一种是直接下载二进制格式的OpenTelemetry Collector安装包并运行,另一种是用Docker安装并运行OpenTelemetry的镜像。
- 二进制格式的下载链接:OpenTelemetry Collector
- Docker方式的安装命令如下:
docker pull otel/opentelemetry-collector:0.66.0
配置OpenTelemetry Collector
OpenTelemetry Collector有两种转发数据的方式,分别是使用gRPC的方式进行转发和使用HTTP的方式进行转发,两种上报方式对应着不同的配置文件,下面分别进行介绍。
- 创建gRPC方式转发的配置文件参考下面示例创建gRPC方式进行转发的otel-config.yaml配置文件,并对配置文件中的内容进行修改。说明 修改配置文件中的exports部分:
- 将
<endpoint>
替换为前提条件中获取的gRPC接入点信息,例如:http://tracing-analysis-dc-bj.aliyuncs.com:8090
。 - 将
<token>
替换为前提条件中获取的Token,例如:b590lhguqs@3a7xxxxxxx9b_b590lhguqs@53dxxxxx8301
。
extensions: memory_ballast: size_mib: 512 zpages: endpoint: 0.0.0.0:55679 receivers: otlp: protocols: grpc: http: processors: batch: memory_limiter: # 75% of maximum memory up to 4G limit_mib: 1536 # 25% of limit up to 2G spike_limit_mib: 512 check_interval: 5s exporters: logging: logLevel: debug otlp: endpoint: <endpoint>:8090 tls: insecure: true headers: Authentication: <token> service: pipelines: traces: receivers: [otlp] processors: [memory_limiter, batch] exporters: [logging, otlp] metrics: receivers: [otlp] processors: [memory_limiter, batch] exporters: [logging] extensions: [memory_ballast, zpages]
- 将
- 创建HTTP方式转发的配置文件参考下面示例创建HTTP方式进行转发的otel-config.yaml配置文件,并对配置文件中的内容进行修改。说明 将
<traces_endpoint>
替换为前提条件中获取的HTTP接入点信息,例如:http://tracing-analysis-dc-hz.aliyuncs.com/adapt_XXXXX/api/otlp/traces
。extensions: memory_ballast: size_mib: 512 zpages: endpoint: 0.0.0.0:55679 receivers: otlp: protocols: grpc: http: processors: batch: memory_limiter: # 75% of maximum memory up to 4G limit_mib: 1536 # 25% of limit up to 2G spike_limit_mib: 512 check_interval: 5s exporters: logging: logLevel: debug otlphttp: traces_endpoint: http://tracing-analysis-dc-hz.aliyuncs.com/adapt_XXXXX/api/otlp/traces tls: insecure: true timeout: 120s service: pipelines: traces: receivers: [otlp] processors: [memory_limiter, batch] exporters: [logging, otlphttp] metrics: receivers: [otlp] processors: [memory_limiter, batch] exporters: [logging] extensions: [memory_ballast, zpages]
启动OpenTelemetry Collector
- 如果下载的是二进制格式的OpenTelemetry Collector,执行以下命令启动OpenTelemetry Collector。
./ocb_0.44.0_linux_amd64 --config="./otel-config.yaml"
- 如果使用Docker安装OpenTelemetry Collector,执行以下命令启动OpenTelemetry Collector。
docker run -v $(pwd)/otel-config.yaml:/etc/otelcol/config.yaml otel/opentelemetry-collector:0.66.0