使用 ElasticSearch 聚合查詢結(jié)果(百分?jǐn)?shù)聚合蜗细,計數(shù)聚合,多重聚合)

官方文檔鏈接
Elastic search 可以使用 aggregations 功能對查詢的數(shù)據(jù)進行聚合怒详,支持多重聚合炉媒。

下面舉一個計數(shù)聚合的例子:

{
  "query":{ 
      "bool":{ 
        "must":[ 
            { 
              "range":{ 
                  "@timestamp":{ 
                    "gte":1536805052000,
                    "lte":1536905052000,
                    "format":"epoch_millis"
                  }
              }
            }
        ]
      }
  },
  "size":0,
  "stored_fields":[],
  "script_fields":{},
  "docvalue_fields":[],
  "aggs":{ 
      "results_by_component":{ 
        "terms":{ 
            "field":"component_name",
            "size":5
        }
      }
  }
}

??其中, query字段描述查詢條件昆烁,這個例子中吊骤,我們只對時間做了限制,查詢指定時間段內(nèi)的所有l(wèi)og善玫。
??"size"為 0 表示顯示 0 條查詢結(jié)果水援, 在這里我們對每一條查詢結(jié)果不感興趣密强,只對聚合結(jié)果感興趣茅郎,所以將size設(shè)置為 0。
??接下來 "aggs"字段是對聚合的設(shè)置或渤。這個例子比較簡單系冗,只對查詢結(jié)果按 "component_name"進行聚合( “component_name” 是定義在每條log中的一個字段,表示這條log是由哪個component產(chǎn)生)薪鹦。

??通過上面的query掌敬,我們得到了如下結(jié)果(結(jié)果只截取 aggregations 部分):

{
            "aggregations": {
                "results_by_component": {
                    "doc_count_error_upper_bound": 120532,
                    "sum_other_doc_count": 4539368,
                    "buckets": [
                        {
                            "key": "component_test01",
                            "doc_count": 1762831
                        },
                        {
                            "key": "component_test02",
                            "doc_count": 1680588
                        },
                        {
                            "key": "component_test03",
                            "doc_count": 1304537
                        },
                        {
                            "key": "component_test04",
                            "doc_count": 970381
                        },
                        {
                            "key": "component_test05",
                            "doc_count": 835906
                        }
                    ]
                }
}

下面舉一個百分位數(shù)聚合的例子惯豆。
query內(nèi)容不變,我們將 "aggs"的內(nèi)容做如下修改:

{
"aggs": {
      "percentile_time":{ 
      "percentiles":{ 
         "field":"response_time_ms",
         "percents":[ 
            50,
            90,
            95,
            99,
            99.9
         ]
      }
   }
}
}

統(tǒng)計"response_time_ms"的百分位數(shù)奔害,將得到如下結(jié)果:

{
"aggregations": {
                "percentile_time": {
                    "values": {
                        "50.0": 18.151901586137335,
                        "90.0": 97.01449517757428,
                        "95.0": 297.5137181184368,
                        "99.0": 1079.8195648476355,
                        "99.9": 5414.805508330881
                    }
                }
            }
}

如果想得到每一個 component_name 下對"response_status"計數(shù)聚合和 "response_time_ms"的百分位數(shù)聚合楷兽,則可嵌套多個聚合條件
例子

{
"aggregations": {
   "results_by_component":{
      "terms":{
         "field":"component_name",
         "size":5
      },
      "aggs":{
         "status_code_count":{
            "terms":{
               "field":"response_status",
               "size":5
            }
         },
         "percentile_time":{
            "percentiles":{
               "field":"response_time_ms",
               "percents":[
                  50,
                  90,
                  95,
                  99,
                  99.9
               ]
            }
         }
      }
   }
}
}

聚合結(jié)果如下:

{
            "aggregations": {
                "results_by_component": {
                    "doc_count_error_upper_bound": 137336,
                    "sum_other_doc_count": 7650192,
                    "buckets": [
                        {
                            "key": "component_test01",
                            "doc_count": 1762831,
                            "percentile_time": {
                                "values": {
                                    "50.0": 79.41854086887764,
                                    "90.0": 393.42530776763,
                                    "95.0": 423.8467834610685,
                                    "99.0": 1100.6490415600176,
                                    "99.9": 8980.100018441459
                                }
                            },
                            "status_code_count": {
                                "doc_count_error_upper_bound": 20,
                                "sum_other_doc_count": 88619,
                                "buckets": [
                                    {
                                        "key": 200,
                                        "doc_count": 1343600
                                    },
                                    {
                                        "key": 201,
                                        "doc_count": 282345
                                    },
                                    {
                                        "key": 400,
                                        "doc_count": 48267
                                    }
                                ]
                            }
                        },
                        {
                            "key": "component_test02",
                            "doc_count": 1680588,
                            "percentile_time": {
                                "values": {
                                    "50.0": 47.20412905186976,
                                    "90.0": 98.34655431504568,
                                    "95.0": 379.85813836814305,
                                    "99.0": 1049.5351664550062,
                                    "99.9": 8602.25736085292
                                }
                            },
                            "status_code_count": {
                                "doc_count_error_upper_bound": 0,
                                "sum_other_doc_count": 74103,
                                "buckets": [
                                    {
                                        "key": 200,
                                        "doc_count": 1279955
                                    },
                                    {
                                        "key": 201,
                                        "doc_count": 282159
                                    },
                                    {
                                        "key": 400,
                                        "doc_count": 44371
                                    }
                                ]
                            }
                        }
                    ]
                }
            }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市华临,隨后出現(xiàn)的幾起案子芯杀,更是在濱河造成了極大的恐慌,老刑警劉巖雅潭,帶你破解...
    沈念sama閱讀 222,681評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件揭厚,死亡現(xiàn)場離奇詭異,居然都是意外死亡扶供,警方通過查閱死者的電腦和手機筛圆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來椿浓,“玉大人太援,你說我怎么就攤上這事『涿啵” “怎么了粉寞?”我有些...
    開封第一講書人閱讀 169,421評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長左腔。 經(jīng)常有香客問我唧垦,道長,這世上最難降的妖魔是什么液样? 我笑而不...
    開封第一講書人閱讀 60,114評論 1 300
  • 正文 為了忘掉前任振亮,我火速辦了婚禮,結(jié)果婚禮上鞭莽,老公的妹妹穿的比我還像新娘坊秸。我一直安慰自己,他們只是感情好澎怒,可當(dāng)我...
    茶點故事閱讀 69,116評論 6 398
  • 文/花漫 我一把揭開白布褒搔。 她就那樣靜靜地躺著,像睡著了一般喷面。 火紅的嫁衣襯著肌膚如雪星瘾。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,713評論 1 312
  • 那天惧辈,我揣著相機與錄音琳状,去河邊找鬼。 笑死盒齿,一個胖子當(dāng)著我的面吹牛念逞,可吹牛的內(nèi)容都是我干的困食。 我是一名探鬼主播,決...
    沈念sama閱讀 41,170評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼翎承,長吁一口氣:“原來是場噩夢啊……” “哼硕盹!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起叨咖,我...
    開封第一講書人閱讀 40,116評論 0 277
  • 序言:老撾萬榮一對情侶失蹤莱睁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后芒澜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體仰剿,經(jīng)...
    沈念sama閱讀 46,651評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,714評論 3 342
  • 正文 我和宋清朗相戀三年痴晦,在試婚紗的時候發(fā)現(xiàn)自己被綠了南吮。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,865評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡誊酌,死狀恐怖部凑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情碧浊,我是刑警寧澤涂邀,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站箱锐,受9級特大地震影響比勉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜驹止,卻給世界環(huán)境...
    茶點故事閱讀 42,211評論 3 336
  • 文/蒙蒙 一浩聋、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧臊恋,春花似錦衣洁、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至撤卢,卻和暖如春环凿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背凸丸。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評論 1 274
  • 我被黑心中介騙來泰國打工拷邢, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留袱院,地道東北人屎慢。 一個月前我還...
    沈念sama閱讀 49,299評論 3 379
  • 正文 我出身青樓瞭稼,卻偏偏與公主長得像,于是被迫代替她去往敵國和親腻惠。 傳聞我的和親對象是個殘疾皇子环肘,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,870評論 2 361

推薦閱讀更多精彩內(nèi)容