使用OpenTelemetry SDK接入Trace数据时,可以通过直接发送或通过OpenTelemetry Collector转发两种方式上报数据到链路追踪服务端。

前提条件

在控制台获取鉴权Token,具体操作,请参见获取鉴权Token

直接上报

如果您的应用使用了OpenTelemetry SDK,可以通过OpenTelemetry gRPC协议直接向链路追踪服务端发送数据,您只需要配置接入点信息以及鉴权信息。

  • 接入点信息:将前提条件中获取的接入点记为<endpoint>。
  • 鉴权信息:将前提条件中Authentication: <token>添加为gRPC的Header。

以Java语言为例:

SdkTracerProvider sdkTracerProvider = SdkTracerProvider.builder()
                .addSpanProcessor(BatchSpanProcessor.builder(OtlpGrpcSpanExporter.builder()
                        .setEndpoint("<endpoint>")
                        .addHeader("Authentication", "<token>")
                        .build()).build())
                .build();
说明
  • <endpoint>替换为您上报区域对应的Endpoint,例如: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以及鉴权信息)向链路追踪服务端上报数据。

  1. 下载OpenTelemetry Collector
  2. 参考OpenTelemetry官方示例创建otel-config.yaml配置文件,并按照下方代码修改exporters部分。
    exporters:
      otlp:
        endpoint: <endpoint>:8090
        tls:
          insecure: true
        headers:
          Authentication: <token>
    说明
    • <endpoint>替换为您上报区域对应的Endpoint,例如:http://tracing-analysis-dc-bj.aliyuncs.com:8090
    • <token>替换为前提条件中获取的Token,例如:b590lhguqs@3a7xxxxxxx9b_b590lhguqs@53dxxxxx8301

    完整示例如下:

    exporters:
      otlp:
        endpoint: tracing-analysis-dc-bj.aliyuncs.com
        tls:
          insecure: true
        headers:
          Authentication: b590lhguqs@3a7xxxxxxx9b_b590lhguqs@53dxxxxx8301
  3. 执行以下命令启动OpenTelemetry Collector。
    ./ocb_0.44.0_linux_amd64 --config="./otel-config.yaml"