入口为Trace类
metric :aggregate(单机按秒)- encode - send
各类metric聚合方式
Counter:count相加
Timer:内有sum/count/max/min,merge全会处理,二级key考虑upperEnable
PayLoad:内有sum/count/max/min,merge全会处理,无upperEnable
Gauge:merge后面的替换前面的值和时间
Histogram
trace:encode - send
Trace 同样含tags
Transaction(duration和children):常见type如SOAService,SOACall
Event(String data):常见type如Exception,RuntimeException
HeartBeat(String data):定时上报envvars,sysprops,jvm param,thread info,trace/metric stats,mbean,自己生成reqId,rpcId,通过CallStack包装发送,shaka多个tag解析成多个jvm对象
requestId(root) rpcId 如1.1和1.1.1,天然表达层级关系和同层级先后
其它系统考虑root parent current timestamp 构建调用链
threadlocalStack<Message>
且Message(Transaction)为父子关系形成callstack,所以在stack为空时把root Message发出来即可,应用内部多transaction共用一个rpcId
通过ringbuffer/disruptor不断异步
esight encode-send
理论上collector通过zk感知,但从agent来看是api拉取(collector本身提供http服务),连接持续一段时间或异常会断开重连新的collector