trace相关杂谈

opentracing-trace规范,childOf+followsFrom(异步,如mq)
opencensus-trace+metric规范,agent+collector
opentelemetry- trace+metric+log, opentracing+opencensus, api+sdk+工具+集成,collector(collect,transform,export,注意collect可支持OTLP和多种协议/方式接收数据,如zipkin数据配置zipkinReceiver来进行收集并转化为otel形式)
注意agent-collector-backend逻辑, otel有agent+collector,因此它不是一套完整的解决方案(skywalking,p8s就是完整方案),可考虑otel-collector 将 log、metric、trace 分别推送到ELK、Prometheus和相关APM产商,如 Jaeger

标准规范:概念定义,如什么是trace/span,span有哪些属性 api:某语言的类型和接口定义 sdk:某语言客户端实现,即api+api的实现,注意sdk广义概念上包括agent
规范-具体语言api+sdk-各框架集成sdk(改造框架sdk的集成方式侵入太强,agent友好,agent增强jar也认为是sdk)

skywalking:自己的规范(trace,segment,span),完整的实现,可appender获取日志
arms应用监控: 来自鹰眼,也是自己的规范,可arms-sdk自定义打点,可agent拦截获取日志
arms也存在p8s监控mysql/es
问题:sdk很薄,实际在agent增强了,sdk很弱,没错,你只能获取traceId/spanId/span属性+改变span的属性,无法新增span,无法自定义指标
arms不希望你通过sdk随便玩,怎么办?
1 otel sdk丰富span调用链
2 sls sdk写时序数据-自定义指标,明显sls才是未来可观测性的方向

客户端:arms sdk/agent,otel sdk/agent,arms agent+otel sdk(注意arms agent对otel sdk做了处理,arms和otel不同上下文,需将arms agent的外层点和otel sdk内层点合为一体)
arms服务端:任意arms和otel格式数据都能兼容
arms otel-collector:类似原生otel-collector,加入armsReceiver,armsExporter,transform逻辑丰富

sls trace: otel的后端(存储分析可视化告警),同时也兼容其他格式trace数据接入(内部会转换为otel格式)

trace, trace提取的指标,定时上报的jvm/threaddump/连接池/系统指标等信息,自定义指标,log,中间件/物理机指标,APM至少有前三个

MDC:slf4j提出的用于线程间传递的上下文,logback等实现多用InheritableThreadLocal来实现,支持在日志中输出
arms agent对log的增强:开关打开,MDC加入traceId/spanId

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值