키바나 모니터링 그래프 끊기는 현상

Caesars·2021년 7월 27일
1

Elasticsearch

목록 보기
1/4

상황

키바나에서 제공하는 모니터링 그래프가 간혹 끊기는 현상 발생했다. (Indexing과 Search 모두)

실제 ES에 문제가 있었는지 혹은 키바나 그래프만 문제가 있는지 확인해보았다.

원인 파악

키바나 모니터링 그래프는 Index STAT API 를 통해 받은 결과값을 표시한다.

하단의 쿼리로 그래프가 끊긴 시간대의 Index Stat 값을 확인해보니 metric_deriv 의 value가 음수로 나오고 있다.

POST .monitoring-es-*/_search
{
  "query": {
    "bool": {
      "filter": [
        {
          "term": {
            "cluster_uuid": <클러스터 아이디>
          }
        },
        {
          "range": {
            "timestamp": {
              "gte": "2021-07-18T00:51:07.080Z",
              "lte": "2021-07-19T12:11:07.080Z"
            }
          }
        }
      ]
    }
  },
  "size": 0, 
  "aggs": {
    "check": {
      "date_histogram": {
        "field": "timestamp",
        "fixed_interval": "30s"
      },
      "aggs": {
        "metric": {
          "max": {
            "field": "indices_stats._all.total.search.query_total"
          }
        },
        "metric_deriv": {
          "derivative": {
            "buckets_path": "metric",
            "gap_policy": "skip",
            "unit": "1s"
          }
        }
      }
    }
  }
}

위 쿼리의 derivative 는 상위 히스토그램 집계에서 지정된 메트릭의 미분을 계산하는 파이프 라인 집계이다.

결과

{
  "key_as_string" : "2021-07-18T01:00:00.000Z",
  "key" : 1626570000000,
  "doc_count" : 8799,
  "metric" : {
    "value" : 2535173.0
  },
  "metric_deriv" : {
    "value" : -193873.0,
    "normalized_value" : -6462.433333333333
  }
}

찝찝한 결론

metric_deriv의 vlaue가 음수값으로 나오게 되었다.
키바나의 모니터링 코드는 내부적으로 음수값을 null로 변환시킨다고 한다.
그 null값으로 인해 그래프에서 끊김 현상이 있었다.

다만 왜 음수값으로 나왔는지 (급격하게 리소스 사용이 증가한 것 때문에 미분하는 과정에서? 다른 시간대는 왜 끊기지 않았는지?) 추가적으로 확인이 필요해 보인다.

참고

https://github.com/elastic/kibana/issues/58577
https://discuss.elastic.co/t/kibana-monitoring-gaps-when-data-node-is-replaced/211432/5
https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-pipeline-derivative-aggregation.html

profile
잊기전에 저장

1개의 댓글

comment-user-thumbnail
2022년 3월 11일

좋은 정보 감사합니다

답글 달기