#DevOps

Grafana에서 자연어로 장애 원인을 분석하기: LLM 에이전트 기반 SRELens 개발기

Grafana에서 자연어로 장애 원인을 분석하기: LLM 에이전트 기반 SRELens 개발기
01

Summary

장애 원인 분석, 이제 Grafana에서 자연어 질문 하나로 끝냅니다

LLM 에이전트와 SRE 운영 지식의 결합으로 탄생한 똑똑한 관측성 분석기 SRELens 개발기

본 아티클은 다양한 도구에 흩어진 관측성 데이터를 자연어 질의로 한눈에 분석할 수 있도록 설계된 'SRELens' 개발 여정을 소개합니다. LLM 에이전트를 안정적인 운영 환경에 적용하기 위한 실질적인 프롬프트 아키텍처 및 안전 가드레일 설계에 대해 SRE 관점의 강력한 힌트를 제공합니다.

  • 01LGTM-P 자체 호스팅 스택을 기반으로 메트릭, 로그, 트레이스, 프로파일 데이터를 한 프레임에 구축
  • 02시스템 프롬프트를 세 단계 레이어로 분할하여 도메인 지식의 명문화와 보안성 확보
  • 03데이터 소스마다 다른 라벨과 필터 차이를 YAML 형태의 데이터소스 프래그먼트로 완벽 극복
  • 04최대 10라운드 호출 제한 및 중복 호출 방지를 위한 코드 레벨 오케스트레이터 구현
  • 05Grafana 패널 스냅샷 이미지를 채팅 영역 내부에서 실시간으로 렌더링하여 시각적 직관성 제고

RECOMMENDATION

SRE 업무에서 여러 모니터링 도구를 오가며 소모되는 컨텍스트 스위칭을 줄이고 싶거나, 실무 프로덕션 환경에서 LLM 에이전트의 작동 흐름을 정책과 코드로 안전하게 통제하고자 하는 플랫폼 엔지니어들에게 권장합니다.

The Problem

관측성 데이터(메트릭, 로그, 트레이스, 프로파일)가 플랫폼별로 파편화되어 있어 장애 분석 시 매번 화면을 이동하며 맥락을 옮겨야 하는 컨텍스트 스위칭 비용이 컸습니다. 또한, 데이터 소스별로 다른 라벨 규칙과 쿼리 방식을 숙련된 SRE의 경험 지식에만 의존해야 하는 한계가 존재했습니다.

The Solution

Grafana 플러그인 형태의 자연어 분석 도구인 SRELens를 자체 구현하였습니다. LLM의 안정적인 통제를 위해 시스템 프롬프트를 3개 레이어(베이스 프롬프트, 데이터소스 프래그먼트, 사용자 프롬프트)로 세분화하고, 백엔드 오케스트레이터를 통해 API 호출 라운드 제한, 중복 호출 차단, 데이터 유실 힌트 등의 가드레일을 장착했습니다.

The Result

자연어 질의 한 번으로 복잡한 메트릭, 로그, 트레이스를 유기적으로 엮어 오류율 증가 원인(API 요청 패턴, 포이즌 필 재시도 폭풍 등)을 명확하게 파악할 수 있게 되었습니다. 근거 데이터가 부족한 상황에서는 모델의 환각 없이 사실에 기반한 분석 한계점을 정확히 명시하도록 개선되었습니다.

Trade-off

에이전트의 무한 루프와 API 비용 폭증을 방지하기 위해 최대 10라운드로 도구 호출을 제한하는 안전 가드레일을 적용하였으며, 이로 인해 아주 깊거나 장기적인 분석 프로세스가 필요한 정밀 장애 탐색 상황에서는 분석 흐름이 도중에 중단될 우려가 존재합니다.

03

Key Concepts

Concept · 01

LGTM-P 스택

Loki(로그), Grafana(시각화), Tempo(트레이스), Mimir(메트릭), Pyroscope(프로파일)를 통합하여 유기적인 상관관계 분석을 가능하게 하는 관측성 기술 아키텍처입니다.

  • LY Corporation SRE 팀이 자체 호스팅형으로 구축하여 다차원 관측 데이터들을 유기적으로 연계하는 기반을 마련했습니다.
Concept · 02

MCP (Model Context Protocol)

대규모 언어 모델(LLM)이 다양한 외부 데이터 저장소, 개발 인프라 및 전용 도구와 정형화된 방식으로 통신하고 데이터를 수집할 수 있도록 돕는 통신 프레임워크입니다.

  • SRELens 아키텍처 내에서 FlavaMCP 게이트웨이를 연동하여 메트릭, 로그, 트레이스 데이터를 에이전트가 탐색하는 통로로 활용했습니다.
Concept · 03

데이터소스 프래그먼트 (DataSource Fragment)

특정 운영 환경의 데이터 소스 UID, 서비스 라벨 매핑, 로그 본문 파싱 방식 등의 도메인 지식을 LLM 에이전트가 즉각 해석할 수 있도록 YAML 형식으로 가공한 시스템 프롬프트 레이어입니다.

  • 서로 다른 데이터 소스 간의 service_name 라벨 매핑 충돌 문제를 극복하고 탐색 성공률을 극대화하는 데 사용되었습니다.