아래 쿼리문을 심플하게 변경하는 방법이 있을 것 같습니다.
metric data고 동작은 잘 하는데 가독성이 너무 않좋아서요.
쿼리 내용은 (SUM of HTTP status code 200 COUNT) / (SUM of HTTP method(get+post+delete) COUNT) 입니다.
즉 HTTP request에 대한 응답코드 200 OK의 비율을 구하고자 합니다.
감사 합니다.
{
"size" : 0,
"aggs": {
"group_by": {
"terms": {
"field": "popid",
"size": 200
},
"aggs": {
"get_bucket": {
"filter": {
"term": {
"popid": "1000"
}
},
"aggs": {
"get_sum": {
"sum": {
"field": "get"
}
}
}
},
"post_bucket": {
"filter": {
"term": {
"popid": "1000"
}
},
"aggs": {
"post_sum": {
"sum": {
"field": "post"
}
}
}
},
"delete_bucket": {
"filter": {
"term": {
"popid": "1000"
}
},
"aggs": {
"delete_sum": {
"sum": {
"field": "delete"
}
}
}
},
"rsp_200_bucket": {
"filter": {
"term": {
"popid": "1000"
}
},
"aggs": {
"rsp_200_sum": {
"sum": {
"field": "rsp_200"
}
}
}
},
"response_ratio": {
"bucket_script": {
"buckets_path": {
"get_tot_cnt": "get_bucket>get_sum",
"post_tot_cnt": "post_bucket>post_sum",
"delete_tot_cnt": "delete_bucket>delete_sum",
"rsp_200": "rsp_200_bucket>rsp_200_sum"
},
"script": "params.rsp_200/(params.get_tot_cnt+params.post_tot_cnt+params.delete_tot_cnt)"
}
}
}
}
}
}