Получить количество событий по последней минуте и уровню события
Я проанализировал события с полем типа "уровень" (DEBUG, INFO, ERROR, FATAL). Как получить количество событий по последней минуте и уровню типа = ОШИБКА?
Я пытаюсь так:
curl -XGET 'mysite.com:9200/myindex/_count?pretty=true' -d '
{
"query":{
"term":{
"level":"error"
}
},
"filter":{
"range":{
"_timestamp":{
"gt":"now-1m"
}
}
}
}'
1 ответ
У вас должна быть временная метка для ваших событий. Если да, напишите агрегатный запрос по событиям с фильтрами запросов типа level и range timestamp(эластичный поиск поддерживает диапазон в поле времени / даты с параметром 'now'). сбивает с толку то, что вы не упомянули, какой счет вы хотите. Общее количество событий или вы хотите считать по типу или какому-либо параметру имени (в этом случае используйте агрегирование терминов по этому параметру).
https://www.elastic.co/guide/en/elasticsearch/reference/1.4/mapping-date-format.html
{
"query": {
"filtered": {
"filter": {
"bool": {
"must": [
{
"term": {
"level": "trace"
}
},
{
"range": {
"timestamp": {
"gt": "now-1m"
}
}
}
]
}
}
}
}
}
{
"query": {
"filtered": {
"filter": {
"bool": {
"must": [
{
"term": {
"level": "trace"
}
},
{
"range": {
"timestamp": {
"gt": "now-1m"
}
}
}
]
}
}
}
}
}
@ Андрей-Стефан экран из Кибаны
Я пытаюсь так:
curl -XGET 'mysite.com:9200/myindex/_count?pretty=true' -d '
{
"query":{
"term":{
"level":"error"
}
},
"filter":{
"range":{
"_timestamp":{
"gt":"now-1m"
}
}
}
}'