Elasticsearch 中的 Cubism 和指标 (statsd/diamond)
Cubism and metrics in Elasticsearch (statsd/diamond)
在测试环境设置中,我使用 diamond to send server stats and metrics to statsd and then using statsd's elasticsearch backend 将它们发送到 elasticsearch。
elasticsearch 数据如下所示:
{
"hits" : {
"hits" : [ {
"_source":{"ns":"servers","grp":"server1","tgt":"vmstat","act":"pswpout","val":"0","@timestamp":"1438565055000"}
}, {
"_source":{"ns":"servers","grp":"server1","tgt":"vmstat","act":"pgpgin","val":"0","@timestamp":"1438565055000"}
}, {
"_source":{"ns":"servers","grp":"server1","tgt":"vmstat","act":"pswpin","val":"0","@timestamp":"1438565055000"}
}, {
"_source":{"ns":"servers","grp":"server1","tgt":"cpu","act":"total.nice","val":"0","@timestamp":"1438565055000"}
}, {
"_source":{"ns":"servers","grp":"server1","tgt":"cpu","act":"total.irq","val":"0","@timestamp":"1438565055000"}
}, {
"_source":{"ns":"servers","grp":"server1","tgt":"cpu","act":"total.guest","val":"0","@timestamp":"1438565055000"}
}, {
"_source":{"ns":"servers","grp":"server1","tgt":"diskspace","act":"_logs.byte_used","val":"209944576","@timestamp":"1438565055000"}
}, {
"_source":{"ns":"servers","grp":"server1","tgt":"diskspace","act":"_logs.byte_free","val":"887513440256","@timestamp":"1438565055000"}
}, {
"_source":{"ns":"servers","grp":"server1","tgt":"diskspace","act":"_logs.byte_avail","val":"842419666944","@timestamp":"1438565055000"}
}, {
"_source":{"ns":"servers","grp":"server1","tgt":"diskspace","act":"_logs.inodes_used","val":"11","@timestamp":"1438565055000"}
} ]
}
}
我将如何使用立体主义渲染这些数据?我可以使用 elasticsearch.js 提取数据,但通常对如何进行渲染感到困惑,因此,例如,我可以可视化每个不同操作的时间序列数据。
您可以尝试 https://github.com/bernd/statsd-influxdb-backend or http://graphite.wikidot.com 后端。
对于那些后端 http://grafana.org/ 提供了很好的可视化工具。
如果您选择 Graphite cubism,根据他们的网站,实际上也支持它作为数据提供者:https://square.github.io/cubism/
看看 ATSD time chart。如果功能足够,Axibase 时间序列数据库社区版是免费的。顺便说一句,它直接支持 Graphite 有线协议,因此您可以直接将数据从 diamond 守护程序流式传输到数据库中。
披露:我在这家公司工作。
在测试环境设置中,我使用 diamond to send server stats and metrics to statsd and then using statsd's elasticsearch backend 将它们发送到 elasticsearch。
elasticsearch 数据如下所示:
{
"hits" : {
"hits" : [ {
"_source":{"ns":"servers","grp":"server1","tgt":"vmstat","act":"pswpout","val":"0","@timestamp":"1438565055000"}
}, {
"_source":{"ns":"servers","grp":"server1","tgt":"vmstat","act":"pgpgin","val":"0","@timestamp":"1438565055000"}
}, {
"_source":{"ns":"servers","grp":"server1","tgt":"vmstat","act":"pswpin","val":"0","@timestamp":"1438565055000"}
}, {
"_source":{"ns":"servers","grp":"server1","tgt":"cpu","act":"total.nice","val":"0","@timestamp":"1438565055000"}
}, {
"_source":{"ns":"servers","grp":"server1","tgt":"cpu","act":"total.irq","val":"0","@timestamp":"1438565055000"}
}, {
"_source":{"ns":"servers","grp":"server1","tgt":"cpu","act":"total.guest","val":"0","@timestamp":"1438565055000"}
}, {
"_source":{"ns":"servers","grp":"server1","tgt":"diskspace","act":"_logs.byte_used","val":"209944576","@timestamp":"1438565055000"}
}, {
"_source":{"ns":"servers","grp":"server1","tgt":"diskspace","act":"_logs.byte_free","val":"887513440256","@timestamp":"1438565055000"}
}, {
"_source":{"ns":"servers","grp":"server1","tgt":"diskspace","act":"_logs.byte_avail","val":"842419666944","@timestamp":"1438565055000"}
}, {
"_source":{"ns":"servers","grp":"server1","tgt":"diskspace","act":"_logs.inodes_used","val":"11","@timestamp":"1438565055000"}
} ]
}
}
我将如何使用立体主义渲染这些数据?我可以使用 elasticsearch.js 提取数据,但通常对如何进行渲染感到困惑,因此,例如,我可以可视化每个不同操作的时间序列数据。
您可以尝试 https://github.com/bernd/statsd-influxdb-backend or http://graphite.wikidot.com 后端。 对于那些后端 http://grafana.org/ 提供了很好的可视化工具。
如果您选择 Graphite cubism,根据他们的网站,实际上也支持它作为数据提供者:https://square.github.io/cubism/
看看 ATSD time chart。如果功能足够,Axibase 时间序列数据库社区版是免费的。顺便说一句,它直接支持 Graphite 有线协议,因此您可以直接将数据从 diamond 守护程序流式传输到数据库中。
披露:我在这家公司工作。