Skip to content

Datadog MCP로 운영 에러 분석 자동화하기

Datadog MCP로 운영 에러 분석 자동화하기
목차

매일 아침 운영 에러 분석에 30분씩 쓰던 일을 Datadog MCP와 Claude, IntelliJ를 연결해 5분으로 줄였습니다. 에러 분류와 우선순위 판단, 팀 공유용 리포트, Jira 백로그 생성까지 한 흐름으로 처리됩니다. 대신 처음에 MCP 설정이 필요하고, Claude Max 구독료($100/월)가 들며, 분석 결과는 사람이 한 번 확인해야 합니다.

서론

매일 아침 출근하면 하는 일이 있습니다.

Datadog 켜고, 어젯밤에 뭐가 터졌나 확인하고, 심각한 거 있으면 Jira 티켓 파고, 팀 슬랙에 공유하고.

이걸 한 달 넘게 하다 보니 Claude에게 시키면 어떨까 싶었습니다. MCP(Model Context Protocol)로 Datadog을 연결하면 될 것 같았습니다. 예전에 블로그에 MCP 서버 만드는 글도 썼어서 기본 개념은 알고 있었습니다.


기존 워크플로우의 문제점

제가 하던 기존 방식은 이랬습니다.

1. Datadog 로그인
2. Logs 탭에서 "ERROR" 필터링
3. 서비스별로 하나씩 클릭해서 확인
4. 심각한 거 발견하면 스택트레이스 복사
5. Jira에 새 티켓 생성
6. 슬랙에 "이거 봐주세요" 공유

문제가 몇 가지 있었습니다.

첫째, 시간이 너무 오래 걸립니다. 서비스가 4개인데, 각각 로그 뒤지다 보면 30분은 금방 갑니다.

둘째, 우선순위 판단이 주관적입니다. NullPointerException 90건이랑 ConnectTimeoutException 2건 중에 뭐가 더 급할까요? 건수만 보면 NPE인데, 외부 연동 장애면 타임아웃이 더 급할 수도 있습니다.

셋째, 같은 에러가 반복되면 놓치기 쉽습니다. “아 이거 어제도 봤는데…” 하면서 넘어가다가 나중에 큰 장애로 번지는 경우가 있었습니다.


Datadog MCP 연결하기

MCP는 AI가 외부 도구에 접근할 수 있게 해주는 프로토콜입니다. Claude Desktop이나 Claude Code에서 MCP 서버를 연결하면, Claude가 직접 Datadog API를 호출해서 로그를 가져올 수 있습니다.

이전 글의 @anthropic/mcp-server-datadog 패키지를 공식 서버라고 소개한 근거를 확인하지 못해 실행 예제를 제거했습니다. 실제 연결은 Datadog가 제공하는 현재 공식 안내와 클라이언트의 transport·인증 지원을 확인해야 합니다.

공식 제공자 문서에서 서버 URL 또는 검증된 배포본 확인
→ 최소 권한 인증 설정
→ 클라이언트에서 도구 목록 확인
→ 제한된 시간 범위의 읽기 전용 조회로 연결 검증

이렇게 설정하면 Claude가 Datadog 로그를 직접 조회할 수 있게 됩니다.


실제 사용 예시

이제 Claude한테 이렇게 말하면 됩니다.

최근 24시간 동안 발생한 ERROR 레벨 로그 분석해줘.
서비스별로 분류하고, 심각도 순으로 정리해줘.

그러면 Claude가 Datadog API를 호출해서 로그를 가져오고, 분석 리포트를 만들어줍니다.


자동 생성된 리포트 예시

실제로 오늘 아침에 생성된 리포트입니다.

에러 유형발생 건수심각도
NullPointerException90건Critical
AqaraException10건High
IllegalStateException6건Medium
TokenExpiredException4건Medium
ConnectTimeoutException2건High

심각도는 Claude가 판단합니다. 단순 건수가 아니라 에러 유형, 영향 범위, 외부 연동 여부 등을 종합합니다.

NullPointerException이 90건으로 가장 많지만, ConnectTimeoutException은 외부 서비스 연동 문제라서 High로 분류됩니다. 이런 판단을 사람이 하려면 시간이 꽤 걸리는데, Claude는 몇 초 만에 해줍니다.


상세 분석도 자동으로

각 에러에 대한 상세 분석도 같이 나옵니다.

### NullPointerException (90건)

**발생 위치:**
- AqaraWorksApi.saveMotionLog:141 (45건)
- AqaraWorksService.saveMotionLog:366 (27건)

**원인 분석:**
masterTenantShortInfoVO가 null인 상태에서 getCustomerId() 호출

**권장 조치:**
1. AqaraService:1406 라인에서 null 체크 로직 추가
2. 방어적 프로그래밍 적용

스택트레이스를 일일이 읽어볼 필요가 없어졌습니다. Claude가 패턴을 분석해서 어디서 문제가 발생하는지, 왜 발생하는지, 어떻게 고쳐야 하는지까지 정리해줍니다.


IntelliJ에서 바로 확인

저는 Claude Code를 IntelliJ 터미널에서 사용합니다.

리포트를 보다가 “이 코드 수정해야겠다” 싶으면, 바로 그 자리에서 코드를 열어볼 수 있습니다.

AqaraService.java 1406번째 줄 보여줘.
null 체크 로직 추가해줘.

IDE를 떠나지 않고 에러 분석 → 코드 확인 → 수정까지 한 흐름으로 됩니다.

graph LR
    subgraph "기존 워크플로우"
        A1[Datadog 웹] --> A2[에러 확인]
        A2 --> A3[IDE로 이동]
        A3 --> A4[코드 찾기]
        A4 --> A5[수정]
    end

    subgraph "MCP 워크플로우"
        B1[IntelliJ + Claude] --> B2[에러 분석 + 코드 확인 + 수정]
    end

    style A1 fill:#FFCDD2,stroke:#D32F2F
    style A2 fill:#FFCDD2,stroke:#D32F2F
    style A3 fill:#FFCDD2,stroke:#D32F2F
    style A4 fill:#FFCDD2,stroke:#D32F2F
    style A5 fill:#FFCDD2,stroke:#D32F2F
    style B1 fill:#C8E6C9,stroke:#388E3C
    style B2 fill:#C8E6C9,stroke:#388E3C

컨텍스트 스위칭이 확 줄었습니다.


Jira 백로그 자동 생성

분석 리포트에서 “이건 백로그로 만들어야겠다” 싶은 항목이 있으면, 바로 Jira 티켓을 생성할 수 있습니다.

Jira도 공식 제공자의 연결 방식과 쓰기 권한을 따로 확인합니다. 이전 @anthropic/mcp-server-jira 예제는 검증된 배포명이 아니어서 제거했습니다. 티켓 생성 같은 쓰기는 사용자 확인과 감사 기록을 포함한 별도 정책이 필요합니다.

공식 제공자 문서에서 서버 URL 또는 검증된 배포본 확인
→ 최소 권한 인증 설정
→ 클라이언트에서 도구 목록 확인
→ 제한된 시간 범위의 읽기 전용 조회로 연결 검증

그러면 이렇게 할 수 있습니다.

이 에러들 중에서 Critical, High 등급인 것들
Jira 백로그로 만들어줘.
프로젝트는 EPYON이고, 컴포넌트는 Backend로.

Claude가 알아서 티켓을 생성하고, 제목/설명/우선순위를 채워넣습니다.

생성된 티켓 예시:

제목: [Critical] AqaraWorksService NPE - masterTenantShortInfoVO null 체크 누락
설명:
- 발생 건수: 90건/24시간
- 발생 위치: AqaraWorksApi.saveMotionLog:141
- 원인: masterTenantShortInfoVO null 상태에서 getCustomerId() 호출
- 권장 조치: null 체크 로직 추가
우선순위: Highest

전체 워크플로우

지금 제 아침 루틴은 이렇습니다.

1. IntelliJ 터미널에서 Claude Code 실행
2. "어젯밤 에러 분석해줘" 한 줄 입력
3. 리포트 확인 (2분)
4. "Critical, High는 Jira로" 한 줄 입력
5. 슬랙에 리포트 공유 (복사/붙여넣기)

여기까지 5분이면 됩니다.

예전에는 Datadog 탭, IDE 탭, Jira 탭, 슬랙 탭 왔다 갔다 하느라 30분이 걸렸는데, 이제는 터미널 하나에서 다 끝납니다.


한계와 주의점

만능은 아닙니다. 첫째, 초기 설정이 필요합니다. MCP 서버 연결, API 키 발급, 권한 설정… 처음에 한 시간 정도 투자해야 합니다.

둘째, Claude Max 구독이 필요합니다. MCP 기능을 제대로 쓰려면 월 $100짜리 플랜이 필요합니다. 개인이 부담하기엔 좀 비쌉니다.

셋째, 에러 분석의 정확도가 100%는 아닙니다. 가끔 엉뚱한 원인을 짚을 때가 있어서, 최종 확인은 사람이 해야 합니다.

그래도 “1차 필터링”으로는 충분합니다. 예전에는 100개 에러를 다 봤는데, 이제는 Claude가 걸러준 10개만 보면 됩니다.


팀에 도입하려면

혼자 쓰기엔 좋은데, 팀 전체에 도입하려면 몇 가지 고민이 필요합니다.

고려사항내용
비용Claude Max 구독료를 회사에서 지원받을 수 있는지
보안Datadog API 키, Jira 토큰 관리 정책
표준화리포트 포맷, 백로그 생성 규칙 통일
온보딩팀원들 MCP 사용법 교육

저희 팀은 아직 저 혼자 쓰고 있는데, 효과가 좋아서 다음 달부터 팀 전체로 확대할 예정입니다. 회사에서 Claude 라이선스 비용 지원받는 것도 협의 중입니다.


마무리

운영 에러 분석은 지루하지만 놓치면 큰 장애로 번질 수 있는 일입니다. 이제는 Claude가 정리해 준 리포트를 훑어보고 정말 중요한 것에만 집중합니다.

수정 3분, 원인 파악 3시간 같은 삽질도 확실히 줄었습니다. 팀에 확대하기 전에 Datadog 키와 Jira 토큰을 어디에 두고 누가 관리할지 먼저 정해 두려 합니다.


읽어주셔서 감사합니다.🖐


Ramsbaby
Written byRamsbaby
이 블로그는 직접 개발/운영하는 블로그이므로 당신을 불쾌하게 만드는 불필요한 광고가 없습니다.

#My Github#소개 페이지#Blog OpenSource Github