配置ck使用zipkin + opentelemetry 辅助函数栈耗时可视化

zipkin可以将ts中的opentelemetry埋点发出的信息进行可视化(信息的转发依赖于物化视图的url外部存储功能)

数据流

在这里插入图片描述

流程

代码埋点

在一个作用域中声明span实体,在span的构造析构时会对时间信息进行打点。

在tsearch-client中进行表建立物化视图

参考:https://clickhouse.com/docs/en/operations/opentelemetry

不需要修改,除非zipkin的服务不在本地,端口不在9411.

CREATE MATERIALIZED VIEW default.zipkin_spans
(
    `traceId` String,
    `parentId` String,
    `id` String,
    `name` LowCardinality(String),
    `timestamp` UInt64,
    `duration` Int64,
    `localEndpoint` Tuple(serviceName String),
    `serviceName` String,
    `tags` Map(LowCardinality(String), String)
)
ENGINE = URL('http://127.0.0.1:9411/api/v2/spans', 'JSONEachRow')
SETTINGS output_format_json_named_tuples_as_objects = 1, output_format_json_array_of_rows = 1 AS
SELECT
    lower(hex(trace_id)) AS traceId,
    multiIf(parent_span_id = 0, '0', lower(hex(parent_span_id))) AS parentId,
    lower(hex(span_id)) AS id,
    operation_name AS name,
    start_time_us AS timestamp,
    finish_time_us - start_time_us AS duration,
    CAST(tuple('clickhouse'), 'Tuple(serviceName text)') AS localEndpoint,
    'ser' AS serviceName,
    attribute AS tags
FROM system.opentelemetry_span_log
zipkin

下载 并运行jar包
https://zipkin.io/
在这里插入图片描述
查看即可
查看http://127.0.0.1:9411/zipkin
在这里插入图片描述

其他问题

  1. 从远端转发到本地浏览器查看
    https://www.wyr.me/post/723
  2. 如果用docker跑ck,物化视图可能发送不到宿主机的zipkin,应该打通网络。https://wiki.eryajf.net/pages/674f53/#%E6%96%B9%E6%A1%88%E4%BA%8C
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值