agent采集数据的周期是在一个for循环中控制的。如果采集数据的时间可以忽略不计不会有问题,但是实际上采集数据还是要花费时间的,这就导致上报的数据时间是漂移的。至今发现过一些误告警的情况,开始上报数据的时间是每分钟的59秒,然后漂移到60秒,transfer接收到数据进行取余操作,就会有一个数据点的丢失,例如:
agent transfer
1:59 1:00
2:59 2:00
4:00 4:00
时间戳采用采集数据开始前的时间(now := time.Now().Unix()移到for开始的时候)而不是采集完毕后的时间比较和里。
agent采集数据的周期是在一个for循环中控制的。如果采集数据的时间可以忽略不计不会有问题,但是实际上采集数据还是要花费时间的,这就导致上报的数据时间是漂移的。至今发现过一些误告警的情况,开始上报数据的时间是每分钟的59秒,然后漂移到60秒,transfer接收到数据进行取余操作,就会有一个数据点的丢失,例如:
agent transfer
1:59 1:00
2:59 2:00
4:00 4:00
时间戳采用采集数据开始前的时间(now := time.Now().Unix()移到for开始的时候)而不是采集完毕后的时间比较和里。