链路追踪业界对标 May 18, 2023

链路追踪业界对标

阿里 腾讯 美团 SkyWalking 小红书
产品名称 SLS trace APM应用性能监控 Mtrace SkyWalking Xray-trace
成本 较高 较低 较低
SLA
副本 三副本 三副本 三副本 可配置 单副本
语言支持 多语言(10种语言+) Java、Go、Python、C++ 、PHP java、go、C++ 多语言
协议支持 支持OpenTelemetry、Jaeger、Zipkin协议接入 支持OpenTelemetry、Jaeger、SkyWalking协议接入 自研协议,主要借鉴pinpoint 自研协议+OpenTelemetry 自研协议
数据规范 OpenTelemetry Trace 1.0 OpenTracing协议 自研规范 自研规范 自研规范
弹性能力 较弱 较弱 较弱
底层存储 自研LogStore、MetricStore ES ClickHouse、HBase ES ClickHouse
异地多活 - 依赖部署架构
点查性能 较低
拓扑染色 不支持 不支持 支持 不支持 建设中
性能指标生成 支持 支持 不支持 支持 建设中
完整日志查看 支持 支持 支持 不完备 不支持
告警能力 支持 支持 不支持 不支持 不支持
慢事务智能分析 支持 不支持 不支持 不支持 不支持
Span粒度区分 无法区分 无法区分 可区分RPC级别/内部方法级别 无法区分 可区分RPC级别/内部方法级别
tcpdump May 17, 2023

工作中需要用到tcpdump,这里做一下备忘,主要知识来源是 man tcpdump和ChatGPT-4。

常用命令

查看明文通信内容

查看IPv4的到80端口的http协议明文。

...
Openssl使用:自定义CA签发证书、私钥格式、s_client使用 May 11, 2023

签发CA并使用CA签发SSL证书

  1. ~/ca 创建CA证书和私钥,私钥为 ca_key.pem ,公钥为 ca.pemca.pem 后续将被安装到系统并信任。
  2. ~/ca/certs 创建自定义SSL证书,私钥为 privkey.pem ,公钥为 cert.pem。他们将被用于启动https服务。

脚本下载:ca.sh

...
RPC拓扑-流量视角(二期) May 10, 2023

RPC拓扑-流量视角(二期)

99f9bd7148129f4d7d399620207e8727.png

优化点

  1. “流量入口“增加模糊搜索能力
  2. 增加“不区分调用方”的选项
  3. 增加提示:“指标数据由采样率还原得到,和实际情况可能有微小差距。采样率越高或qps越高,估算得越准。”
  4. 显示级别默认为“服务级别”,且变更为下拉框选择,因为“不区分调用方”也是checkbox,三个checkbox连一起操作起来不方便
  5. “调用方”、“被调用方”拆分为“调用方”、“调用方接口”、“被调用方”、“被调用方接口”,http响应中新增了对应的四个字段。“服务级别”时,不显示“调用方接口”、“被调用方接口”这两列。
  6. “样本Trace”列显示的值从“详情”变更为examplar的值(就是traceId)
  7. “最大耗时”列增加提示:“采样率不为百分之百时,该值更像TP值。例如1%采样率下,该值更接近TP99或TP999。因为这是1%数据中的最大耗时。采样率越大,越接近真实最大值,或者说9的位数越多。”
  8. 增加“显示详情”的操作,展示类似“服务高级视角”中的抽屉,抽屉展示的信息如下:

a24af5bf56daa1c1182916d489d296a2.png

...
RPC拓扑-服务高级视角 May 10, 2023

RPC拓扑-服务高级视角

背景

当前“RPC拓扑”支持“服务视角”和“流量视角”,所谓视角即输入什么参数来查询拓扑。“服务视角”是输入服务名来查看拓扑,“流量视角”是输入入口url来查看拓扑。

...
trace详情搜索性能优化 May 10, 2023

trace详情搜索性能优化

现状

当前根据traceId点查trace详情的耗时很长,有两个影响:

  1. 点查trace详情耗时长,用户体验差。
  2. 链路的未来功能演进需要一次获取多个traceId的详情。例如:通过多个trace详情的联合分析,以智能地定位慢请求根因。

目前点查trace详情的主要耗时来源于下面的sql,用途是获取改traceId下的所有app和开始结束时间。

...
新traceId格式 May 10, 2023

新traceId格式

背景

当前端上使用一个long值的16进制的字符串作为traceId。目前存在两个问题:

1. 64位随机数的碰撞概率高,目前已经出现traceId碰撞的情况

...
Entry级别拓扑及性能指标计算 May 10, 2023

Entry级别拓扑及性能指标计算

背景

上下游拓扑及上下游调用性能指标是链路监控的重要部份。从生成过程来看,先给trace个案进行分类,然后按类汇总出同类trace的调用路径,这个调用路径通常是一个有向无环图,也就是拓扑。按照什么标准进行分类是上述过程的重点,上面所说的分类和汇总,表述成SQL大概就是聚合函数(count、avg等)和groupBy语句的结合,其中groupBy语句就是分类标准, count和avg是相关的性能指标。

...
W3c Trace Context Mar 23, 2023

Generate by ChatGPT4

W3C (World Wide Web Consortium)推出了Trace Context规范,旨在规范分布式追踪中跟踪信息的传播格式。Trace Context规范主要定义了两个HTTP头部字段:traceparenttracestate

...
蔡司验光配镜纪实 Mar 7, 2023

今天花重金在一家蔡司专家店配了新的眼镜,来记录下过程。

...