我在Kibana中的总和有问题。
我的用例是,我的每个服务器都会定期报告打开的 session 数。在Kibana中,我想可视化所有服务器上所有 session 的总数。但是,即使只有一台服务器联机且只有一个 session ,该计数也是错误的(更高)。这是因为Elasticsearch对给定时间段的所有值求和。因此,如果我每10秒报告一次,并且间隔为1分钟秒,则Kibana将 session 计数显示为6。
一种方法是将时间间隔手动设置为报告时间间隔(在此示例中为10s)。
另一种方法是通过脚本缩放值(将它们除以6):
但是,这两种方法都是很棘手的,需要了解报告间隔。如果以后决定多多少少报告一次,则该图又是错误的。
有人知道更好的解决方案吗?
编辑:
我可以添加一个子存储桶并按服务器分割行,但是我的数据模型稍微复杂一些。我使用多个标签来区分服务器。我目前正在使用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
}
最佳答案
您应该采用平均聚合,然后将其乘以服务器数量。
关于elasticsearch - 与Kibana进行的 session 总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32761614/