我使用Statsd client based on Akka IO源代码将数据发送到statsd服务器。在我的场景中,我想监视火花工作状态,如果当前工作成功,我们将发送1到statsd服务器,否则为0.所以在一个刷新间隔我只想发送一个值(1或0)到statsd服务器,但它没有工作,如果我添加一个for循环,并发送此值(1或0)至少两次,它的工作原理,但我不知道为什么我应该发送相同的值两次,所以我检查了statsd源代码,并发现:
for (key in gauges) {
var namespace = gaugesNamespace.concat(sk(key));
stats.add(namespace.join(".") + globalSuffix, gauges[key], ts);
numStats += 1;
}
所以仪表的类型应该是迭代器,如果我只发送一个值,它不能被迭代,这是我的想法,也许它是错的,希望有人可以帮我解释为什么我应该发送一个值至少两次。
我的客户端代码段:
for(i<- 1 to 2) {
client ! ExcutionTime("StatsD_Prod.Reporting."+name+":"+status_str+"|ms", status)
Thread.sleep(100)
}