메트릭과 로그는 제품이 모으고, 추론은 고객의 AI 가 합니다.
OpsRadar 는 LOOP Run 의 관측 토대입니다. 탐지와 근거 수집은 제품이 맡고, 서술과 추론은 고객이 이미 쓰는 AI 클라이언트가 하도록 설계했습니다. 제품 안에 LLM 이 없습니다.
자사 프로덕션 클러스터를 첫 관측 대상으로 두고 https://opsradar.weveloop.ai 에서 운영 중입니다.
대시보드는 "무엇" 을 보여주고, 필요한 답은 "왜" 입니다
운영 중인 클러스터에 서비스는 계속 늘었는데 관측 스택이 없었습니다. 첫 고객은 우리 자신이었습니다.
대시보드는 무엇이 일어났는지를 보여줍니다. 정작 필요한 답은 왜인데, 그건 사람이 대시보드 열 몇 개를 오가며 직접 조립해야 합니다.
LLM 을 붙인 관측 도구가 여럿 나왔지만 대부분 대시보드 위에 챗봇을 얹은 형태입니다. 모델이 메트릭 이름을 추측하고 서비스 관계를 상상해서, 그럴듯하지만 틀린 근본 원인을 만듭니다.
OpsRadar 가 맡을 일을 PRD 는 이렇게 적었습니다. "왜 이 서비스가 느렸는지 근거로 답을 얻고 싶다 — 추론은 내 AI 로"
그래서 LLM 을 제품에서 뺐습니다. 이상 감지를 에이전트에게 맡기면 컨텍스트를 소진하고 놓치기 때문에, 탐지는 제품이 하고 서술은 에이전트가 합니다. 어떤 모델에 무엇을 보낼지는 고객의 선택이자 고객의 계약이 됩니다.
MCP 도구는 실재하는 것만 돌려주고, 원시 시계열이나 로그를 덤프하지 않으며, 에이전트가 무엇을 물어야 할지 모르는 상태에서 시작할 수 있게 하도록 설계했습니다. 에이전트의 컨텍스트 예산이 실질적 제약입니다.
지금 도는 것과 다음에 붙을 것
| 우선 | 기능 | 상태 |
|---|---|---|
| 필수 | OpenTelemetry 로 수집해 Mimir 와 Loki 에 저장합니다 (메트릭, 로그) | 운영 (P0 완료) |
| 필수 | 통합 조회 화면. 구간과 필터가 전부 URL 에 있어 조사하던 화면을 링크로 공유합니다 | 운영 (P1 완료) |
| 필수 | 멀티테넌트 격리. 토큰이 정한 테넌트만 조회되고, 요청이 보낸 X-Scope-OrgID 헤더는 신뢰하지 않습니다 | 운영 (검증됨) |
| 필수 | 온톨로지 그래프와 MCP 서버. 도구가 그래프만 순회하도록 구조로 제한해 추측을 막습니다 | 계획 (P2 미착수) |
| 권장 | 요일별 베이스라인 (DriftScan 으로) | 계획 |
| 권장 | 알림 채널 | 계획 |
| 선택 | 커뮤니티 대시보드 임포트. 쿼리를 고치지 않고 넣었습니다 | 실증 |
단계마다 하는 일
| 단계 | 하는 일 |
|---|---|
| 수집 | 대상 클러스터에는 경량 에이전트만 둡니다. 로컬 Prometheus 를 두지 않고 곧바로 플랫폼으로 보냅니다 |
| 정규화와 상관 | 전송은 OpenTelemetry, 메트릭 이름은 Prometheus 생태계 표준을 유지합니다. 커뮤니티 대시보드와 알림 룰을 그대로 씁니다 |
| 저장과 인덱싱 | 플랫폼 클러스터의 Mimir 와 Loki 에 저장하고, 장기 보존은 S3 입니다. 테넌트는 처음부터 나눕니다 |
| 질의와 알림 | opsradar-api 하나가 유일한 데이터 게이트웨이입니다. 웹도, 분석도, MCP 도 스토리지에 직접 닿지 않습니다 |
지금 있는 화면 세 개입니다.
| 화면 | 내용 |
|---|---|
/ | 클러스터 개요. 노드 예약과 사용, CPU 와 메모리 시계열, 파드, 재시작, 네임스페이스 |
/metrics | 메트릭 드릴다운. 카탈로그에서 고르고 레이블로 좁힙니다. PromQL 직접 편집 |
/logs | 로그 드릴다운. 네임스페이스에서 파드, 컨테이너로 좁히고 줄 필터 |
수집에서 질의까지 네 단계
신호를 받는 곳과 주는 곳
| 상대 | 무엇을 | 링크 |
|---|---|---|
| Deployflow | 받음 · 배포 인계와 헬스 신호 | /products/weveloop/deployflow |
| DriftScan | 줌 · 라이브 신호와 근거. 요일별 베이스라인 학습의 입력 | /products/weveloop/driftscan |
| SelfMend | 줌 · 라이브 신호 | /products/weveloop/selfmend |
| RunGuard | 줌 · 보안 판단에 교차할 관측 신호 | /products/weveloop/runguard |
| ITS | 줌 · 운영 신호 기반 자동 접수 (계획) | /products/weveloop/its |
| Tactus | 관통 · 접근과 조회 정책, 감사 (계획) | /products/weveloop/tactus |
| AgentFlow | 관통 · 운영 피드백 조율 | /products/agentflow |
추측으로 채우는 대신 없다고 말합니다
제품 안에서 LLM 을 돌리지 않습니다. RCA 서술을 만드는 버튼도 당분간 없습니다. 추론은 고객의 AI 클라이언트가 합니다.
파드와 컨테이너 단위 실사용은 모릅니다. cAdvisor 를 긁지 않기 때문입니다. 화면의 네임스페이스 패널에 예약만 있고 실사용이 없는 이유이고, 화면에도 그렇게 적었습니다. 추측으로 채우는 대신 없다고 말하는 쪽을 골랐습니다.
완전 무인 자동복구가 아닙니다. MCP 는 pull 방식이라 서버가 스스로 세션을 열지 못합니다. 새벽에 알림이 떠도 RCA 가 자동으로 만들어지지 않습니다.
대시보드를 교체하는 것이 목적이 아닙니다. 왜에 답하는 근거 계층을 얹는 것이 핵심입니다.
어디까지 왔나
https://opsradar.weveloop.ai 에서 운영 중입니다. 인터넷에서 HTTPS 로 접속하고, 자사 프로덕션 클러스터가 관측 대상입니다.
플랫폼은 관측 대상과 다른 클러스터에 둡니다. 관측 시스템이 관측 대상과 운명을 공유하면 정작 장애 시점에 쓸 수 없습니다.
재시작 목록에서 파드 이름을 누르면 그 파드의 로그로 넘어갑니다.
MVP 기준은 달성했습니다. Grafana 를 켜지 않고 OpsRadar 만으로 프로덕션 클러스터의 상태를 파악합니다.
MCP 도구 4개는 동작 코드로 있습니다. 온톨로지와 함께 P2 에서 붙입니다.
고객의 AI 클라이언트에는 MCP 로 근거를 노출합니다. Claude Code, Claude Desktop, Cursor 등 MCP 클라이언트가 대상입니다 (P2).
하위 모듈과 주고받는 신호 규약은 아직 정해지지 않았습니다.
판매 형태는 정해지지 않았습니다. 가격과 배포 방식은 도입 문의로 안내합니다.
도입 전에 물어보는 것들
Claude Code 에서 "왜 느렸는지" 물어보는 건 지금 되나요?
아직 아닙니다. MCP 서버와 온톨로지는 P2 이고 미착수입니다. 지금 되는 것은 화면에서 메트릭과 로그를 조회하는 것까지입니다. 착수 시점은 정해지지 않았습니다.
AI 클라이언트를 못 쓰는 환경입니다. 그러면 근거만 있고 답은 없나요?
지금 설계로는 그렇습니다. 추론을 제품에서 빼는 대신 데이터가 파이프라인 밖으로 나가지 않게 했습니다. 공공과 금융처럼 AI 클라이언트가 없는 환경에서 제품 안 RCA 를 되살릴지는 열어 두었고, 되돌릴 수 있게 MCP 도구 계층을 설계했습니다.
데이터가 쌓이면 비용이 어떻게 되나요?
LLM 비용과 GPU 는 없습니다. 추론은 고객의 AI 클라이언트가 하고 그 비용은 고객의 기존 구독에 있습니다. 보존 기간 만료는 S3 라이프사이클이 아니라 Mimir 와 Loki 가 직접 관리합니다. 샘플링과 계층 저장은 열린 과제입니다.
판매 형태가 정해지지 않아 가격표가 없습니다. 도입을 검토 중이면 메일로 환경을 알려 주세요.