06
라인
Grafana에서 자연어로 장애 원인을 분석하기: LLM 에이전트 기반 SRELens 개발기
CARD 5 · 디테일
5 / 9
자세히 보기
Line의 Home SRE 팀은 장애 분석 시 메트릭은 Grafana/IMON, 로그는 LaaS/IU, 트레이스는 IMON 트레이스/Tempo, 프로파일은 별도 도구에서 각각 확인해야 했다. 도구 간 전환뿐 아니라 시간 범위, 서비스명, 라벨, 트레이스 ID 같은 분석 컨텍스트를 계속 옮겨 적어야 하는 비용이 컸고, 특히 장애 상황에서는 이 컨텍스트 스위칭이 큰 부담이었다.
CARD 6 · 디테일
6 / 9
자세히 보기 (2/4)
SRE 팀은 먼저 자체 호스팅형 LGTM-P 스택(Loki, Grafana, Tempo, Mimir, Pyroscope)을 구축했고, OpenTelemetry Collector를 중심으로 메트릭·로그·트레이스·프로파일을 한곳에 모았다. 이를 통해 쿼리 성능, 보관 기간, 샘플링 정책, 데이터 간 연결 방식을 직접 조정할 수 있게 됐다. 그러나 데이터가 모여도 사용자는 여전히 데이터소스 선택, 라벨 규칙, 시간 범위 설정을 알아야 했다. 특히 같은 '서비스 이름'도 Prometheus 메트릭에서는 service_name, Tempo에서는 resource.service.name으로 표현되는 차이 같은 운영 지식이 숙련된 SRE의 머릿속에만 있었다.
CARD 7 · 디테일
7 / 9
자세히 보기 (3/4)
기존 오픈소스 Grafana LLM 플러그인 PoC로 확인한 한계는 다섯 가지였다. 첫째, 사용자 컨텍스트와 권한을 Grafana 인증 정보 기준으로 안정적으로 전파받기 어려웠다. 둘째, 도구 호출 순서, 재시도 정책, 위험한 작업 제한 같은 운영 정책을 사용자 질의와 분리하여 체계적으로 관리하기 어려웠다. 셋째, 기본 도구 호출 라운드가 짧아서 메트릭→트레이스→로그로 이어지는 다단계 분석이 중간에 끝났다. 넷째, 데이터 소스별 라벨 차이를 처리하지 못해 쿼리가 0건 결과를 반환했다. 다섯째, 운영 환경에 맞게 수정해 배포하기에는 라이선스와 제약이 있었다.
CARD 8 · 디테일
8 / 9
자세히 보기 (4/4)
이 PoC 경험을 통해 팀은 '자연어 질의 자체보다 중요한 것은 LLM 에이전트의 행동을 운영 환경에 맞게 통제할 수 있는 제어권'이라는 결론에 도달하고, SRELens를 직접 구현하기로 결정했다. SRELens는 Grafana 애플리케이션 플러그인으로 프런트엔드는 채팅 UI를, 백엔드는 LLM 호출·도구 오케스트레이션·프롬프트 합성·사용량 제어를 담당하며, MCP 게이트웨이를 통해 관측성 데이터를 조회한다.