im在metricbeat上对elasticSearch进行查询,以每小时对最常用的进程进行评分,在此刻,我正在按进程开始时间和进程名称进行汇总,我需要使用“ @”字段对这些组进行“划分”时间戳”每小时
那是我的实际查询
df4 = df4.reset_index().rename_axis(None, axis=1)
答案 0 :(得分:0)
要跟踪和复制它有点困难-一个最小的示例(我认为确实不需要整个query
),并且示例文档会走很长一段路。
如果您希望每小时进行一次汇总,则首先需要进行的是汇总,然后在其中运行其他汇总。
每小时汇总的最小示例是:
POST /metricbeat*/_search?size=0
{
"aggs" : {
"metrics_per_hour" : {
"date_histogram" : {
"field" : "@timestamp",
"interval" : "hour"
}
}
}
}
在其他聚合中的折叠看起来像这样:
POST /metricbeat*/_search?size=0
{
"aggs" : {
"metrics_per_hour" : {
"date_histogram" : {
"field" : "@timestamp",
"interval" : "hour"
},
"aggs" : {
...
}
}
}
}
PS:如果您使用的是每日索引模式,则可以使用正确的日期而不是通配符,然后跳过查询的这一部分:
"range": {
"@timestamp": {
"gte": "2019-03-22T00:00:00",
"lte": "2019-03-23T00:00:00"
}
}