Я загружаю логи в индекс. Он будет иметь только код ответа. Мне нужно объединить и получить количество на основе кода ответа.
Индексные данные:
{
"took" : 1,
"timed_out" : false,
"_shards" : {
"total" : 3,
"successful" : 3,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : 3,
"max_score" : 1.0,
"hits" : [
{
"_index" : "server_logs",
"_type" : "_doc",
"_id" : "LSi5wm8BFsMbdnOaT1F9",
"_score" : 1.0,
"_source" : {
"system" : "cspkong-poc-chaos1",
"jmeterData" : [
{
"date" : "2020-01-10 13:03:17",
"status" : 200
},
{
"date" : "2020-01-10 13:03:17",
"status" : 200
},
{
"date" : "2020-01-10 13:03:17",
"status" : 200
},
{
"date" : "2020-01-10 13:03:18",
"status" : 429
},
{
"date" : "2020-01-10 13:03:19",
"status" : 429
},
{
"date" : "2020-01-10 13:03:19",
"status" : 429
},
{
"date" : "2020-01-10 13:03:20",
"status" : 429
},
{
"date" : "2020-01-10 13:03:20",
"status" : 200
}
]
}
},
{
"_index" : "server_logs",
"_type" : "_doc",
"_id" : "Lii5wm8BFsMbdnOaUVEk",
"_score" : 1.0,
"_source" : {
"system" : "cspkong-poc-chaos2",
"jmeterData" : [
{
"date" : "2020-01-10 13:03:21",
"status" : 200
},
{
"date" : "2020-01-10 13:03:21",
"status" : 200
},
{
"date" : "2020-01-10 13:03:22",
"status" : 200
},
{
"date" : "2020-01-10 13:03:22",
"status" : 200
},
{
"date" : "2020-01-10 13:03:24",
"status" : 200
},
{
"date" : "2020-01-10 13:03:24",
"status" : 429
},
{
"date" : "2020-01-10 13:03:25",
"status" : 429
},
{
"date" : "2020-01-10 13:03:25",
"status" : 429
}
]
}
},
{
"_index" : "server_logs",
"_type" : "_doc",
"_id" : "Mii5wm8BFsMbdnOaVFH9",
"_score" : 1.0,
"_source" : {
"system" : "cspkong-poc-chaos6",
"jmeterData" : [
{
"date" : "2020-01-10 13:03:43",
"status" : 429
},
{
"date" : "2020-01-10 13:03:43",
"status" : 200
},
{
"date" : "2020-01-10 13:03:52",
"status" : 200
},
{
"date" : "2020-01-10 13:04:01",
"status" : 200
},
{
"date" : "2020-01-10 13:04:10",
"status" : 200
},
{
"date" : "2020-01-10 13:04:18",
"status" : 200
},
{
"date" : "2020-01-10 13:04:21",
"status" : 200
},
{
"date" : "2020-01-10 13:04:23",
"status" : 429
},
{
"date" : "2020-01-10 13:04:30",
"status" : 429
},
{
"date" : "2020-01-10 13:04:30",
"status" : 429
},
{
"date" : "2020-01-10 13:04:37",
"status" : 429
},
{
"date" : "2020-01-10 13:04:37",
"status" : 200
},
{
"date" : "2020-01-10 13:04:43",
"status" : 200
},
{
"date" : "2020-01-10 13:04:51",
"status" : 200
},
{
"date" : "2020-01-10 13:04:56",
"status" : 429
},
{
"date" : "2020-01-10 13:04:59",
"status" : 429
},
{
"date" : "2020-01-10 13:04:59",
"status" : 200
},
{
"date" : "2020-01-10 13:05:08",
"status" : 429
},
{
"date" : "2020-01-10 13:05:15",
"status" : 429
},
{
"date" : "2020-01-10 13:05:15",
"status" : 200
},
{
"date" : "2020-01-10 13:05:24",
"status" : 429
},
{
"date" : "2020-01-10 13:05:27",
"status" : 429
},
{
"date" : "2020-01-10 13:05:28",
"status" : 429
},
{
"date" : "2020-01-10 13:05:31",
"status" : 429
},
{
"date" : "2020-01-10 13:05:31",
"status" : 429
},
{
"date" : "2020-01-10 13:05:35",
"status" : 429
},
{
"date" : "2020-01-10 13:05:35",
"status" : 200
},
{
"date" : "2020-01-10 13:05:41",
"status" : 429
},
{
"date" : "2020-01-10 13:05:47",
"status" : 429
},
{
"date" : "2020-01-10 13:05:47",
"status" : 200
},
{
"date" : "2020-01-10 13:05:55",
"status" : 200
}
]
}
}
]
}
}
Ожидаемый ответ
{
"took" : 0,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : 3,
"max_score" : 0.0,
"hits" : [ ]
},
"aggregations" : {
"sytemname" : {
"doc_count_error_upper_bound" : 0,
"sum_other_doc_count" : 0,
"buckets" : [
{
"key" : "cspkong-poc-chaos1",
"doc_count" : 1,
"totalcount" : {
"doc_count_error_upper_bound" : 0,
"sum_other_doc_count" : 0,
"buckets" : [
{
"key" : 200,
"doc_count" : 4
},
{
"key" : 429,
"doc_count" : 4
}
]
}
},
{
"key" : "cspkong-poc-chaos2",
"doc_count" : 1,
"totalcount" : {
"doc_count_error_upper_bound" : 0,
"sum_other_doc_count" : 0,
"buckets" : [
{
"key" : 200,
"doc_count" : 5
},
{
"key" : 429,
"doc_count" : 3
}
]
}
},
{
"key" : "cspkong-poc-chaos6",
"doc_count" : 1,
"totalcount" : {
"doc_count_error_upper_bound" : 0,
"sum_other_doc_count" : 0,
"buckets" : [
{
"key" : 200,
"doc_count" : 14
},
{
"key" : 429,
"doc_count" : 19
}
]
}
}
]
}
}
}
Я уже написал запрос для его получения. Но все же я не могу получить счетчик для каждого кода ответа.
GET server_logs/_search
{
"query": {
"bool": {
"must": [
{
"match_all": {}
}
]
}
},
"aggs": {
"sytemname": {
"terms": {
"field": "system.keyword"
},
"aggs": {
"totalcount": {
"value_count": {
"field": "jmeterData.status"
}
}
}
}
},
"size": 0
}
Настройки индекса
{
"server_logs" : {
"mappings" : {
"_doc" : {
"properties" : {
"jmeterData" : {
"properties" : {
"date" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"status" : {
"type" : "long"
}
}
},
"system" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
}
}
}
}
}
}
Может кто-нибудь помочь мне в этом. Заранее спасибо.