엔지니어링

Kibana에서 수식과 시간 여행으로 대답한 10가지 일반적인 질문

Kibana는 모든 데이터를 사용하여 강력한 작업을 수행할 수 있는, 즉, 질문과 답변을 하고 분석의 흐름을 따를 수 있는 손쉬운 방법을 만듭니다. 질문에 대한 답변에는 쿼리된 데이터에 기반한 계산이 필요한 경우가 많습니다. 수식을 사용하면 산술 연산을 사용해 집계된 여러 필드를 결합하여 나만의 메트릭을 작성할 수 있습니다.

또한 시간과 공간에서 데이터를 이동하고 재생하는 것은 과거의 맥락을 파악하고 현재에 대한 추가적인 인사이트를 이해하는 강력한 방법입니다.

아래 섹션에서는 수식, 시간 이동 및 시간 내 데이터 이동을 통해 Kibana의 대시보드 데이터 및 지도 시각화로 답변할 수 있는 10가지 질문의 예를 확인해 보세요. 여러분의 데이터를 가지고 따라해 보거나 Kibana의샘플 데이터 세트를 사용해 보세요. 질문이 있으신가요? Elastic의 토론 포럼을 이용하세요.

목록은 다음과 같습니다!

  1. 오류의 비율이 증가하고 있나요?
  2. 지난주와 비교했을 때 성과가 어떤가요?
  3. 이 데이터는 피어와 비교했을 때 어떤가요?
  4. 내 평균에 가장 큰 영향을 미치는 것은 무엇인가요?
  5. 과거와 비교했을 때 원시 득/실은 얼마인가요?
  6. 과거 성과 대비 득/실 비율은 어떤가요?
  7. 데이터가 어떻게 현재 위치에 도달했나요?
  8. 공간에서 대화형으로 대시보드를 탐색하려면 어떻게 해야 하나요?
  9. 이 메트릭의 단위별 버전은 무엇인가요?
  10. 지난 기간에 대한 "순추천고객지수"와 같은 업계별 계산은 얼마인가요?

1) 오류의 비율이 증가하고 있나요?

비율은 전체 총계에 대한 비율을 표시하고 원시 카운트가 할 수 없는 다음과 같은 질문에 대답할 수 있으므로 유용합니다. "전체적으로 더 많은 데이터를 얻기 때문에 이 측정치가 증가하고 있나요?" 비율은 데이터의 부분 집합을 필터링하고 필터링되지 않은 전체 합계와 비교하여 구성할 수 있습니다. KQL을 사용하여 사용자 정의 수식에서 이 필터 역할을 하여 즉시 비율을 구축해 보세요.

다음 예제는 전체적으로 고유 사용자와 비교하여 HTTP 오류 코드(HTTP 200보다 큰 response.code)를 경험하는 고유 사용자의 비율을 보여줍니다. 시각화는 추가적인 인사이트를 제공하기 위해 하루의 시간을 행으로, 요일을 열로 포함합니다. 데이터에 이러한 필드가 없는 경우 언제든지 런타임 필드로 추가할 수 있습니다. 

unique_count(clientip, kql='response.keyword > 200') / unique_count(clientip)

Using formulas in Kibana Lens for ratios and visualizing with color-by-value.

시간별 및 요일별 오류 비율 표

시각화 방법: 비율

비율을 시각화할 때 백분율 값 형식을 적용합니다. 메트릭 이름에 "비율"을 사용합니다. 오류 비율과 같은 항목을 시각화하는 경우 표에서 시간 및 요일과 비교하여 오류 비율을 표시하는 것이 유용할 수 있습니다. 비율을 사용하면 평균이 열 수준의 인사이트(이 경우 요일의 평균 오류율)를 제공할 수 있습니다.

2) 지난주와 비교했을 때 성과가 어떤가요?

기간별로 100%가 정확하게 일치하는 과거와 비교하여 현재의 백분율 표현을 제공합니다. 

이 예에서는 지난 주에 비해 대역폭이 14배(1400%) 증가했습니다.

median(bytes) / median(bytes, shift='1w')

Formulas in Kibana Lens for showing change week over week over time.

시간에 따른 주 단위 대역폭 변경

시각화 방법: 기간별 

기간별은 거의 모든 시각화에 유용할 수 있습니다. 기간의 변화 자체가 시간에 따라 변화하는지 여부를 확인하기 위해 기간별을 살펴보는 것이 유용할 수 있습니다. 이 계산은 또 다른 백분율을 출력하므로 값 형식을 잊지 마세요. 선 그래프에서 데이터가 드문드문 있는 경우 "선형" 결측값 옵션이 시각적으로 가장 적게 표시됩니다.

3) 이 데이터는 피어와 비교했을 때 어떤가요?

전체 합계를 사용하면 데이터를 전체의 비율로 표시하여 비교를 쉽게 할 수 있습니다. 

다음 예제에서는 "ceph" 이미지가 가장 많은 데이터를 생성하는 것을 볼 수 있으며 카운트를 보는 대신 값을 백분율로 볼 수 있습니다.

count() / overall_sum( count() )

Formulas in Kibana Lens for visualizing percents of overall sums for comparisons

컨테이너 이미지별 인프라 데이터 비율

시각화 방법: 전체 합계의 백분율

수식을 사용하여 전체 데이터의 백분율을 구축하면 이전에는 트리맵, 파이 및 도넛 차트만이 제공했던 전체 데이터에 대한 비율을 시각화할 수 있습니다. 모든 데이터 요소를 읽을 수 있도록 하려면 가로 막대를 사용하여 전체 백분율을 표시할 수 있습니다.

Treemaps in Kibana트리맵, 도넛 및 파이 차트는 자동으로 데이터의 백분율을 생성하지만 가독성을 놓칠 수 있습니다

4) 내 평균에 가장 큰 영향을 미치는 것은 무엇인가요?

전체 평균과 같은 함수를 사용하면 전체 보고서의 모든 값의 평균과 수학적 비교를 수행할 수 있습니다. 

이 예에서는 어떤 범주가 전체 매출의 전체 평균보다 더 나은 성과를 내고 있는지 확인할 수 있으며, 두 범주 모두 전체 평균을 상회합니다.

sum(taxless_total_price) - overall_average(sum(taxless_total_price))

Using formulas to visualize deviation of sum

평균 판매에서 제품 범주 편차

시각화 방법: 편차

특히 0을 초과하는 메트릭을 시각화할 때 가로 막대를 사용하는 것이 유용할 수 있습니다. 메트릭 이름을 설명하는 것을 잊지 마세요. 

5) 과거와 비교했을 때 원시 득/실은 얼마인가요?

시간 이동된 차이는 동일한 메트릭과의 비교를 시간 이동시킵니다. 0을 중심으로 시각화하는 현재에서 과거를 빼는 것이 유용할 수 있습니다. 양수는 과거에 걸친 증가입니다. 

다음은 6시간 전과 비교한 Kubernetes 노드의 평균 CPU 사용량의 예입니다. 이 예제에서는 CPU 나노코어를 코어로 변환하기 위해 나눗셈을 사용합니다(다른 사용자가 수식으로 이를 찾을 필요 없이 런타임 필드를 필드 목록에서 추가 메트릭 변환으로 추가하는 것이 좋습니다). 

(
   average(kubernetes.node.cpu.usage.nanocores)
   - average(kubernetes.node.cpu.usage.nanocores, shift='6h')
) / 1000000000

Time-shifted differences with formulas in Kibana

노드 CPU 코어 활용률이 6시간 전과 비교하여 변경됨 

시각화 방법: 시간 이동 차이 및 단위 변경

시각화의 맨 위로 축을 이동하면 시각화의 맨 위에 가장 "관심 있는" 숫자가 많을 때 도움이 될 수 있습니다. 

6) 과거 성과 대비 득/실 비율은 어떤가요?

시간 이동 변경률(% change)을 약간 다르게 적용하면 원시 차이 대신 과거 값의 백분율로 증가를 볼 수 있습니다. 이것은 성장에 대해 이야기할 때 인기가 있습니다. 

Percentage change calculation

변경률 계산 예제

다음 예제에서는 Kubernetes의 CPU 사용량 변경률을 보여 줍니다. 

(
   (
   average(kubernetes.node.cpu.usage.nanocores)
   - average(kubernetes.node.cpu.usage.nanocores, shift='3d')
   ) /
   (
   average(kubernetes.node.cpu.usage.nanocores, shift='3d')
   )
)

Using formulas for percentage change

3일 전과 비교한 노드 CPU 활용 변경률

시각화 방법: 변경률

“백분율” 값 형식을 사용하는 경우, 값에 100을 곱할 필요가 없습니다. 공간이 있으면, 값 레이블을 사용하여 시각화를 보완할 수 있습니다. 

7) 데이터가 어떻게 현재 위치에 도달했나요?

지도는 데이터의 지리적 맥락을 이해하는 가장 좋은 방법입니다. 그러나 지도는 스냅샷에 불과합니다. 지도는 지난 15분 또는 지난 1년을 나타낼 수 있습니다. 사실, 여러분의 지도는 시시각각 보는 경우 또는 매일 보는 경우 다른 이야기를 할 수도 있습니다. 시간 슬라이더를 사용하여 메트릭을 재생하고 각 증분 시간 단위에 따른 시간 변화를 확인할 수 있습니다. 이전에 발견되지 않은 패턴이나 추가 조사가 필요한 이상 징후를 발견할 수 있습니다. 시간 슬라이더는 오늘 데이터가 해당 위치에 어떻게 도착했는지 보여줍니다. 

Time slider in Elastic Maps

Elastic Maps의 시간 슬라이더 컨트롤

8) 공간에서 대화형으로 대시보드를 탐색하려면 어떻게 해야 하나요?

때때로 여러분의 질문에 대한 답은 어디에 있는가에 달려있습니다. 다른 사용자를 위해 대시보드를 작성하는 경우 지도를 전체 대시보드에 대한 필터로 사용할 수 있는 기능을 활성화하는 것이 좋습니다. 지도와 함께 대시보드에서 주요 메트릭을 시각화해 보세요. 이를 통해 누구나 공간적으로 필터링하면서 비공간적 메트릭을 시각화할 수 있으며, 비교를 도출하고 이상 징후를 찾을 수 있는 강력한 방법이 될 수 있습니다.

Filter your dashboard data using Maps

대시보드를 위해 필터로 매핑

9) 단위당 효율성은 얼마인가요?

사용자 정의 수식을 사용하여 요약 데이터를 줄이고 단위당 메트릭을 가져올 수 있습니다. 이는 모두 데이터가 들어오는 방식, 메트릭 및 데이터의 "단위"에 따라 달라집니다. 

다음 예제에서는 30초마다와 같은 주기적인 간격으로 클라우드 메트릭 원격 측정을 보여 줍니다. 메트릭 총계(예: CPU 사용량)와 총계가 나타내는 이벤트 수(요청)를 공식으로 사용하면 요청당 평균 CPU 사용량을 확인하고 로드 증가에 따른 효율성을 파악하기 위해 시간 경과에 따른 새 메트릭 추세를 파악할 수 있습니다. 결과적인 시각화에서, "계곡"은 시스템이 무거운 부하에서 더 효율적이 되는 것을 보여줍니다.

average(kubernetes.pod.cpu.usage.node.pct) //평균 메트릭
counter_rate(max(nginx.stubstatus.requests)) //요청당

Using formulas for finding average metrics per unit시간에 따른 요청당 평균 CPU

시각화 방법: 단위당

단위당 메트릭을 사용하는 경우 사용 중인 메트릭의 집계와 그리고 "단위당"을 모두 메트릭 이름에 포함해야 합니다. 수식에 있는 단위를 별도의 대시보드 패널 또는 시리즈로 시각화하는 것이 유용할 수 있습니다.

10) 지난 기간에 대한 "순추천고객지수"와 같은 업계별 계산은 얼마인가요?

조직이 특정 방법으로 계산된 특정 메트릭을 채택했다고 가정해 보세요. 예를 들어, 데이터에 설문 조사 질문이 포함된 경우, 일부 조직은 "평가자"(확장 질문에서 가장 높은 2개 옵션 점수)인 사람의 백분율에서 "평가자"(확장 질문에서 가장 낮은 2개 옵션 점수)를 빼고 -100%와 100% 사이의 단일 점수에 도달함으로써 "순추천고객지수"를 계산하는 것을 좋아합니다. 이러한 종류의 비즈니스 메트릭은 수식으로 단순하며, 수식은 보고서 시점에 계산되므로 비즈니스 메트릭과 정의가 발전함에 따라 쉽게 재정의할 수 있습니다.

Calculating industry-specific metrics with formulas

순추천고객지수와 같은 산업별 지표 계산

여러분만의 자체적인 데이터 질문이 있으신가요?

Elastic Cloud 무료 체험판에 가입하거나 Elastic Stack 자체 관리형 버전을 무료로 다운로드하여 이러한 예제를 직접 사용해 보세요. 시작하는 데에 대한 추가 질문이 있으시면 Kibana 포럼을 이용하거나 Kibana 설명서 가이드를 확인하세요.