链路追踪

    doris负责收集traces,并导出到第三方链路分析系统,由链路分析系统负责traces的展示和存储。

    doris目前支持直接将traces导出到 zipkin 中。

    配置及启动Doris

    添加配置到fe.conf

    1. enable_tracing = true
    2. # 配置traces导出到zipkin
    3. trace_export_url = http://127.0.0.1:9411/api/v2/spans

    添加配置到be.conf

    1. # 开启链路追踪。
    2. enable_tracing = true
    3. # 配置traces导出到zipkin。
    4. trace_export_url = http://127.0.0.1:9411/api/v2/spans
    5. max_span_queue_size=2048
    6. # 可选。单次导出span的最大数量。
    7. max_span_export_batch_size=512
    8. # 可选。导出span的最大间隔时间。
    9. export_span_schedule_delay_millis=500

    启动fe和be

    1. sh fe/bin/start_fe.sh --daemon
    2. sh be/bin/start_be.sh --daemon

    查看zipkin UI

    使用opentelemetry collector 可将traces导出到其他系统例如zipkin、jaeger、skywalking,或者数据库系统和文件中。 详情参考 。

    同时 opentelemetry collector 提供了丰富的算子用来处理traces。例如过滤 spans 、。详情参考collector processor

    opentelemetry 发布了collector core 和 , contrib提供了更丰富的功能,这里以contrib版举例。

    下载 collector

    下载 otelcol-contrib, 可在官网下载

    1. wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.55.0/otelcol-contrib_0.55.0_linux_amd64.tar.gz
    2. tar -zxvf otelcol-contrib_0.55.0_linux_amd64.tar.gz

    生成配置文件

    下面配置文件使用otlp(OpenTelemetry Protocol)协议接收traces数据,进行批处理并过滤掉时间超过50ms的traces, 最终导出到zipkin和文件中。

    1. cat > otel-collector-config.yaml << EOF
    2. receivers:
    3. otlp:
    4. protocols:
    5. http:
    6. exporters:
    7. zipkin:
    8. endpoint: "http://10.81.85.90:8791/api/v2/spans"
    9. file:
    10. path: ./filename.json
    11. processors:
    12. batch:
    13. tail_sampling:
    14. policies:
    15. {
    16. name: duration_policy,
    17. type: latency,
    18. }
    19. extensions:
    20. pipelines:
    21. traces:
    22. receivers: [otlp]
    23. processors: [batch, tail_sampling]
    24. exporters: [zipkin, file]
    25. EOF

    启动 collector

    1. nohup ./otelcol-contrib --config=otel-collector-config.yaml &

    配置及启动Doris

    添加配置到fe.conf

    添加配置到be.conf

    1. # 开启链路追踪。
    2. enable_tracing = true
    3. # 启用opentelemetry collector。
    4. trace_exporter = collector
    5. # 配置traces导出到collector,4318为collector otlp http默认端口。
    6. trace_export_url = http://127.0.0.1:4318/v1/traces
    7. # 可选。缓存span的队列大小。span数量达到队列容量一半时将触发一次span导出,队列满后到达队列的span将被丢弃。
    8. max_span_queue_size=2048
    9. # 可选。单次导出span的最大数量。
    10. max_span_export_batch_size=512
    11. # 可选。导出span的最大间隔时间。
    12. export_span_schedule_delay_millis=500

    启动fe和be

    1. sh fe/bin/start_fe.sh --daemon
    2. sh be/bin/start_be.sh --daemon

      查看traces