使用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