PromCopilot: Simplifying Prometheus Metric Querying in Cloud Native Online Service Systems via Large Language Models

이 논문은 클라우드 네이티브 온라인 서비스 시스템의 복잡한 맥락을 지식 그래프로 표현하고 대형 언어 모델 (LLM) 과의 협력 추론을 통해 자연어 질문을 프롬메테우스 쿼리 언어 (PromQL) 로 자동 변환하는 'PromCopilot' 프레임워크를 제안하여, 수동 쿼리 작성의 어려움을 해소하고 시스템 모니터링 효율성을 향상시키는 최초의 텍스트 - 투 - PromQL 연구를 소개합니다.

Chenxi Zhang, Bicheng Zhang, Dingyu Yang, Xin Peng, Miao Chen, Senyu Xie, Gang Chen, Wei Bi, Wei Li

게시일 Thu, 12 Ma
📖 3 분 읽기☕ 가벼운 읽기

Each language version is independently generated for its own context, not a direct translation.

🏭 배경: 거대한 공장과 복잡한 지도

현대 온라인 서비스는 마치 수만 개의 부품으로 이루어진 거대한 공장과 같습니다. 이 공장은 서버, 데이터베이스, 서비스 프로그램 등 수많은 부품들이 서로 얽혀 돌아가고 있습니다.

이 공장이 잘 돌아가는지 확인하기 위해 **감시 카메라 (메트릭 모니터링 시스템)**가 곳곳에 설치되어 있습니다. 이 카메라들은 "CPU 사용량", "메모리 잔량", "요청 수" 같은 숫자 데이터를 끊임없이 찍어냅니다.

하지만 문제는, 이 데이터를 보는 엔지니어에게 있습니다.

  • 기존 방식: 엔지니어는 이 데이터를 찾으려면 PromQL이라는 아주 까다로운 '전문 용어 (DSL)'로 질문을 작성해야 합니다.
    • 비유: 공장의 기계 상태를 보려면, 공장의 모든 부품 이름과 연결 관계를 외우고 있어야 하며, 복잡한 문법으로 "A 기계의 B 부품이 C 시간 동안 D만큼 작동했는지"라고 수학 공식처럼 질문을 써야 합니다.
    • 문제점: 이걸 하려면 엄청난 공부와 시간이 필요하고, 실수하기 쉽습니다.

🤖 해결책: PromCopilot (자연어 번역기)

이 논문은 **"엔지니어가 평범한 말 (자연어) 로 질문만 하면, 시스템이 알아서 복잡한 전문 코드를 만들어주는 도구"**를 제안합니다.

  • 사용자 질문: "오더 서비스 (주문 처리) 가 설치된 서버 중 메모리가 가장 많이 남은 노드는 어디야?"
  • PromCopilot 의 역할: 이 평범한 질문을 받아서, 시스템이 알아서 알아야 할 정보들을 찾아내고, 그걸로 PromQL이라는 복잡한 코드를 자동으로 작성해 줍니다.

🧩 어떻게 작동할까? (두 명의 협력자)

이 도구는 두 가지 핵심 기술이 손잡고 협력하는 방식으로 작동합니다.

  1. 지식 지도 (Knowledge Graph): "공장의 상세 도면"

    • 시스템은 공장 전체의 구조를 지식 지도로 그립니다. "어떤 서비스가 어떤 서버에 있고, 어떤 데이터가 어떤 서버와 연결되어 있는지"를 모두 기록해 둡니다.
    • 비유: 엔지니어가 "오더 서비스"라고만 말해도, 이 지도를 보고 "아, 오더 서비스는 1 번 서버와 3 번 서버에 있고, 그 서버들은 A, B, C 라는 메모리 데이터를 가지고 있구나"라고 자동으로 찾아냅니다.
  2. 대규모 언어 모델 (LLM): "똑똑한 번역가"

    • 이 '지식 지도'에서 찾아낸 정보를 바탕으로, **LLM(인공지능)**이 엔지니어의 말을 **전문가용 코드 (PromQL)**로 번역합니다.
    • 비유: 지도를 본 번역가가 "오더 서비스의 메모리"를 의미하는 정확한 전문 용어와 문법으로 질문을 다시 작성해 주는 것입니다.

🎯 왜 이것이 중요한가요?

기존의 인공지능 (LLM) 만으로는 이 일을 잘 못했습니다. 왜냐하면?

  • LLM 의 한계: AI 는 일반적인 지식을 가지고 있지만, **특정 회사의 공장 내부 구조 (어떤 서버에 어떤 서비스가 있는지)**는 모릅니다.
  • 과거 사례의 한계: "지난번에 이런 문제가 있었을 때 이렇게 물어봤어"라는 과거 데이터를 참고하는 방식도, 시스템이 매일 변하는 클라우드 환경에서는 효과가 떨어집니다.

PromCopilot 의 혁신:
이 도구는 실시간으로 시스템의 '지식 지도'를 만들어서 AI 에게 보여줍니다. 그래서 AI 는 과거 데이터에 의존하지 않고, 지금 이 순간의 시스템 상태를 정확히 반영한 코드를 만들어냅니다.

📊 실험 결과: 얼마나 잘할까?

연구진은 직접 280 개의 질문을 만들어 테스트했습니다.

  • 결과: PromCopilot 은 **약 69%**의 확률로 완벽한 코드를 만들어냈습니다.
  • 비교: 다른 방법 (단순히 AI 에게 물어보거나, 과거 예시를 보여주는 방법) 보다 훨씬 정확했습니다.
  • 사용자 반응: 실제 엔지니어들이 실험에 참여했을 때, 작업 시간이 4 분에서 1 분 40 초로 단축되었습니다. (약 4 배 빨라짐!)

💡 결론

이 논문은 **"복잡한 기술 용어를 몰라도, 평범한 말로 시스템 상태를 물어보고 해결책을 얻을 수 있는 시대"**를 열었습니다.

마치 스마트폰의 음성 비서가 복잡한 설정 메뉴를 직접 찾아가서 건드리지 않아도, "알람을 7 시에 맞춰줘"라고 말하면 알아서 해주는 것과 같습니다. PromCopilot 은 엔지니어들이 복잡한 코드 작성에 시간을 낭비하지 않고, 진짜 중요한 시스템 안정성에 집중할 수 있게 도와주는 혁신적인 도구입니다.