
AI
Grafana에서 자연어로 장애 원인을 분석하기: LLM 에이전트 기반 SRELens 개발기
두줄요약
Grafana에서 자연어로 장애 원인을 찾는 SRELens 개발 사례를 소개했습니다.\nLLM 에이전트를 운영 환경에 맞게 제어하기 위해 프롬프트 레이어 분리와 도구 호출 가드레일을 설계했습니다.
문제 상황
- 메트릭, 로그, 트레이스, 프로파일이 서로 다른 화면에 흩어져 있어 장애 원인 분석 시 컨텍스트 스위칭 비용이 큼
- 데이터는 모였지만 서비스 라벨, 데이터소스 선택, 조회 관습을 사람이 알고 있어야 해서 분석 속도가 제한됨
원인 분석
- Grafana 안에서 관측성 데이터를 이어 볼 수 있어도 조회 절차와 운영 지식은 여전히 사람의 머릿속에 존재
- 기존 오픈소스 PoC는 사용자 컨텍스트 전파, 시스템 프롬프트 제어, 도구 호출 라운드, 라벨 차이, 운영 제약에서 한계 존재
해결 방법
- Grafana 애플리케이션 플러그인 형태의 SRELens를 직접 구현해 자연어 질문으로 메트릭·로그·트레이스·프로파일을 함께 조회
- 시스템 프롬프트를 베이스/데이터소스/사용자 레이어로 분리하고, 백엔드 오케스트레이터에서 도구 호출 라운드, 중복 호출, 결과 크기, 비용을 제어
- 데이터소스 프래그먼트와 로컬 툴을 통해 라벨 후보, 조회 관습, Grafana 패널 검색·렌더링을 운영 지식으로 고정
성능/운영 포인트
- max rounds, retry limit, call hash, 결과 truncation, 노 데이터 힌트로 에이전트의 무한 루프와 과도한 컨텍스트 확장 방지
- 사용자별 일일 토큰 한도와 분당 요청 수 제한을 두고 Redis 장애 시에도 단일 채팅 요청은 계속 처리 가능하게 설계
- SSE 스트리밍, Stop 버튼, 근거 링크·재현 쿼리 강화, 패널 이미지 첨부로 장애 대응 사용성을 개선