peaksnail / pinpoint-node-agent

pinpoint agent for nodejs
Apache License 2.0
75 stars 26 forks source link

about traceDataSend #19

Closed jiaojiaojiao closed 7 years ago

jiaojiaojiao commented 7 years ago

hi team: 我阅读代码,发现发送追踪数据的时候,是通过这种方式, 当创建span的时候去定时,发送数据的,这样怎么去确认是不是数据收集完整了呢 image

peaksnail commented 7 years ago

之前一直使用cls模块来判断请求结束,即HANDLE_RETENTION===0的时候,但是在测试中发现了BUG,所以目前没法判断某个请求什么时候 能结束,只能通过设置请求超时时间,默认30s,即30s之后会将收集到的数据发送给collector,当超过30s,会被agent认为请求超时,增加超时信息,返回给collecoter

jiaqifeng commented 7 years ago

为什么不在http模块收到request和发送response的时候来做span的开始和结束?

peaksnail commented 7 years ago

这样做只能实现http请求的trace,而对于其他插件无法通用

jiaqifeng commented 7 years ago

对于判断trace的开始和结束,本来就没有通用的办法.这是由代码的逻辑决定的,不同的协议的开始和结束的判断怎么能通用呢.实际的情况是,http的接受和发送作为开始和结束占了大部分业务逻辑的半数情况. 请问一下,您研究过newRelic的实现吗?我大概过了一眼,它是对http做了单独处理的. 还请问一下现在这个插件能正确的获取http处理的实际响应时间吗?这个是我最关心的功能.

peaksnail commented 7 years ago

可能理解的点不同,我指的通用是基础的监控数据的生成和发送对于所有协议来说应该是通用的,而不同协议的监控数据采集由协议定的,所以会有业务方自己开发插件来实现

请问一下,您研究过newRelic的实现吗?我大概过了一眼,它是对http做了单独处理的

如newRelic,zipkin-js等对于不同的模块都是单独处理的,pinpoint-node-agent实际上不同模块也是需要开发不同插件来实现的

还请问一下现在这个插件能正确的获取http处理的实际响应时间吗?这个是我最关心的功能.

能正确处理