如何在JVM代码中设置计时器和计数器,以便将它们传递给AWS CloudWatch?我对手动仪器很感兴趣,例如:在需要的地方添加timer.start()
,timer.stop()
和counter.incr()
来电。
我们当前的解决方案是使用Dropwizard Metrics进行检测,this project可以很好地将指标发送到AWS。这个堆栈的问题是Dropwizard Metrics有自己的内部聚合,它基于expontentially decaying reservoir。正如其他人所提到的,这种行为是not easily modified。结果是AWS Cloudwatch中的数据混乱和不正确。例如:
我认为更好的解决方案可能是在将数据提交给AWS之前汇总不超过一分钟的数据。