Skip to content

Datadog MCP로 운영 에러 분석 자동화하기 - 리포트 생성부터 Jira 백로그까지

Datadog MCP로 운영 에러 분석 자동화하기 - 리포트 생성부터 Jira 백로그까지

TL;DR

  • 상황: 운영 에러 분석하느라 매일 아침 30분씩 Datadog 뒤지는 중
  • 원인: 수동 로그 분석, 주관적인 우선순위 판단, Jira 티켓 수작업 생성
  • 해결: Datadog MCP + Claude + IntelliJ 연동으로 분석 → 리포트 → 백로그 자동화
  • 효과: 에러 분석 시간 30분 → 5분, 우선순위 자동 분류, 팀 공유용 리포트 자동 생성
  • 한계: MCP 초기 설정 필요, Claude Max 구독 비용 ($100/월)

서론

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

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

이거 한 달 넘게 하다 보니까 문득 이런 생각이 들었습니다. 이거 Claude한테 시키면 어떨까 싶었습니다.

MCP(Model Context Protocol)로 Datadog을 연결하면 되겠다 싶었습니다. 예전에 블로그에 MCP 서버 만드는 글도 썼었고, 기본 개념은 알고 있었습니다.

결과부터 말하면, 지금은 매일 아침 5분이면 끝납니다. 리포트도 자동 생성되고, Jira 백로그도 알아서 만들어집니다.


기존 워크플로우의 문제점

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

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를 호출해서 로그를 가져올 수 있습니다.

Datadog 공식 MCP 서버가 있어서 설정은 간단합니다.

{
  "mcpServers": {
    "datadog": {
      "command": "npx",
      "args": ["-y", "@anthropic/mcp-server-datadog"],
      "env": {
        "DATADOG_API_KEY": "your-api-key",
        "DATADOG_APP_KEY": "your-app-key",
        "DATADOG_SITE": "datadoghq.com"
      }
    }
  }
}

이렇게 설정하면 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 MCP 서버도 연결해두면 됩니다.

{
  "mcpServers": {
    "jira": {
      "command": "npx",
      "args": ["-y", "@anthropic/mcp-server-jira"],
      "env": {
        "JIRA_URL": "https://your-company.atlassian.net",
        "JIRA_EMAIL": "your-email",
        "JIRA_API_TOKEN": "your-token"
      }
    }
  }
}

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

이 에러들 중에서 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 라이선스 비용 지원받는 것도 협의 중입니다.


시스템 점검 체크리스트

  • Datadog API 키와 App 키가 발급되어 있는가?
  • Claude Code 또는 Claude Desktop에 MCP 서버가 연결되어 있는가?
  • Jira API 토큰이 발급되어 있는가? (백로그 자동 생성 시)
  • 에러 분석 결과를 팀과 공유할 채널이 정해져 있는가?
  • AI 분석 결과를 검증하는 프로세스가 있는가?

마무리

운영 에러 분석은 지루하고 반복적인 일입니다. 그런데 중요하기도 합니다. 놓치면 큰 장애로 번질 수 있기 때문입니다.

MCP로 Datadog을 연결하니까, 이 “지루하지만 중요한” 일을 AI가 대신 해줍니다. 저는 Claude가 정리해준 리포트를 훑어보고, 정말 중요한 것만 집중하면 됩니다.

수정 3분, 원인 파악 3시간… 같은 삽질이 확실히 줄었습니다.

MCP를 아직 안 써봤다면, Datadog 연동부터 시작해보세요. 매일 아침 30분을 돌려받을 수 있습니다.


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


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

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