我在Kibana中遇到了汇总问题。
我的用例是我的每台服务器都会定期报告打开的会话数。在Kibana中,我想要可视化所有服务器上所有会话的总数。但即使只有一个服务器在线有一个会话,计数也是错误的(它更高)。原因是Elasticsearch对给定时间桶的所有值求和。因此,如果我每隔10秒报告一次,间隔时间为1分钟,则Kibana会显示6作为会话计数。
一种方法是手动将间隔设置为报告间隔(在本例中为10秒)。
但这两种方法都很苛刻,需要了解报告间隔。如果之后决定更频繁或更不频繁地报告图表再次出错。
有人知道更好的解决方案吗?
修改:
我可以按服务器添加子存储桶和拆分线,但我的数据模型稍微复杂一些。我使用多个标签来区分服务器。我目前正在使用代码application
host
和instance
。在一台主机上,可以有同一应用程序的多个实例。实例可以是test
,dev
,integration-test
,prod
,....一个特定实例可以部署在不同的主机上。例如,prod
可能聚集在多个主机上。因此,我至少必须按主机和实例进行拆分才能显示一个应用程序的正确结果,但这在kibana中是不可能的。此外,将来可能会添加其他代码,例如datacenter
,region
,...
修改2
这是一个示例数据点:
{
"name": "http_sessions",
"application": "My Application",
"host": "My Host",
"instance": "Loadtest",
"count": 21
}
答案 0 :(得分:0)
您应该采用平均聚合,然后将其乘以服务器数量。