21.6.2.3 클라우드 에지 라우터 건전성 진단을 위한 Grafana 인프라 대시보드 구축
프로메테우스(Prometheus)가 5초마다 Zenoh 라우터의 생체 정보(rx_bytes, tx_bytes, session_id)를 피도 눈물도 없이 빨아들여 시계열(Time-Series) 저장소에 곡식처럼 쌓아두고 있다(21.6.2.2장 참조).
하지만 그 수천만 줄짜리 숫자 더미(TimeSeries Data) 자체는 인간의 시각 신경망을 직관적으로 타격하지 못한다. C레벨 경영자나 시스템 장애 대응팀(SRE)이 장애 발생 즉시 “시스템이 피를 흘리고 있다“는 직관을 얻으려면, 숫자는 강렬한 시각적 위상(Grafana Panels)으로 강제 변환되어야 한다.
본 절에서는 프로메테우스의 질기고 복잡한 시계열 쿼리(PromQL)를 멱살 잡아, 스웜 로보틱스 메쉬 인프라의 혈압(Bandwidth)과 심박수(Connection Count)를 대형 디스플레이(NOC Dashboard) 화면 상에 피 튀기듯 붉고 푸르게 렌더링 시키는 Grafana 관제 탑축 런북을 갈파한다.
1. 거시적 통제력: 메쉬망 전체 통신 스루풋(Total Throughput) 렌더링
대시보드 한가운데에 배치되어야 할 첫 번째 패널은 “우리 라우터 한 대가 1초에 대체 몇 메가바이트의 분산 데이터를 쳐내고 있는가?” 를 측정하는 척추 신경망이다.
Grafana 에 패널을 하나 올리고, 아래와 같은 무자비한 집계(Aggregation) PromQL 을 박아넣어라.
/* [총합 수신 대역폭(Rate) 시각화 런북] */
/* 라우터에 달린 '모든 로봇 세션'의 누적 수신 바이트를 합친 뒤(sum),
그 1분(1m) 동안의 변화율(rate)을 뜯어내어 초당 바이트 할당량(Bytes/Sec)을 단일 그래프로 쑤셔 박는다! */
sum(rate(zenoh_link_rx_bytes_total[1m]))
이 쿼리가 들어간 차트 한 장이면 끝난다. 평소 초당 50MB의 잔잔한 고도(Altitude)를 유지하던 그래프 선이, 어느 순간 분당 1GB 로 수직 상승하는 순간을 포착할 수 있다. 인프라 관제자는 이것이 특정 시간대 대규모 자율주행 데이터 백업 스케줄 때문인지, 외부 해커의 디도스(DDoS) 주입 공격 때문인지 첫눈에 레이더망으로 식별(Audit)해 낼 수 있다.
2. 정밀 타격 색출: 밴드위스 최상위 포식자(Top K) 소탕 대시보드
거시적인 스루풋 차트를 박았다면, 그다음으로 대시보드 우측 구석에 “현재 자원을 가장 끔찍하게 낭비하는 주범 로봇 순위표” 를 반드시 박아야 한다.
만일 카메라 오작동으로 초당 파편화된 에러 덤프를 미친 듯이 전송하며 Zenoh 메쉬 대역폭의 80%를 단일 엣지 기기 1대가 씹어 먹고 있다면? 그것을 10초 만에 색출해 내어 소켓 밴(Ban)을 먹이지 않으면 인프라는 동반 멸망한다.
/* [네트워크 대역폭 최상위 포식자(Top 3) 적발 런북] */
/* 모든 세션(Session)별로 송신율(rate)을 계산한 뒤,
그중 가장 게걸스럽게 트래픽을 처먹고 있는 탑 3(topk 3) 놈들의 ID를
꺾은선 차트 색깔별로 분류해서 발가벗겨버린다! */
topk(3, rate(zenoh_link_rx_bytes_total[1m])) by (session)
이 그래프 위에 붉은색 선으로 유별나게 솟구쳐 오르는 session="client-009" 가 목격된다면, 장애 원인을 찾기 위해 로그를 뒤질 필요조차 없다. 곧바로 kill 스크립트가 9번 엣지 로봇을 향해 징벌 타격을 내리면 그만이다.
3. 이탈자 탐지: 세션(Session) 생존율의 가시화
데이터 용량(Bytes) 못지않게 치명적인 것은, “지금 살아 숨 쉬는 로봇의 숫자(Active Connections)” 다.
어제 1,000대였던 동시 접속 세션 인프라가, 아침에 출근했더니 zenohd 커널 포트 제한에 걸려 절반인 500대로 추락해 있다면 이건 재앙이다.
/* [살아남은 생존 로봇 총합(Headcount) 집계 런북] */
/* 지금 트래픽을 1바이트라도 보내고 있는(count) 유효 세션 아이디들의 머릿수를 실시간으로 센다. */
count(zenoh_link_rx_bytes_total)
이 거대한 숫자가 화면 상단의 통계 게이지(Stat Panel)에 붉은 폰트로 “998 Active” 라고 빛나고 있어야 한다.
이렇게 Grafana 의 웅장한 시각화 껍데기가 씌워짐으로써, 엣지 단의 차디찬 Zenoh C++ 데몬 이 뱉어내는 파편화된 로그들은 비로소 스웜 통치권력(Swarm Governance)의 통제 스크린으로 격상된다. 인프라의 건전성(Health)이란, 장애가 나지 않는 것이 아니라 장애가 나려는 심박수의 폭주(Spike)를 모니터의 1 픽셀 흔들림으로 1초 만에 감각하고 즉각 전원을 찢어 차단해 버리는 관찰자의 시각적 지배력에서 완성되는 결판이다.