Grafana 대시보드 MCP 개발하기

Keno Kim·2025년 4월 19일

생각

  • Grafana 대시보드 MCP 서버를 만들어서, claude desktop 과 같은 agent 가 대시보드를 보고 디버깅할 수 있는지 테스트해 보자.

구성도

  • 가장 간단하게 spring boot 대시보드를 agent 가 읽는 테스트를 해 보자.

사용 grafana API

  • GET /api/snapshots/SNAPSHOT_KEY
  • 대시보드의 구성 정보, 시계열 데이터를 포함한다.

테스트 결과 (수동으로 claude 업로드)

  • 실제 대시보드 데이터

  • 스냅샷을 통해 claude 가 생성한 분석 결과

/api/slow 엔드포인트는 Grafana 대시보드 데이터에서 볼 수 있듯이 200 성공 상태 코드를 반환하고 있습니다. 이는 example2.json 파일의 두 개의 별도 섹션(10321줄과 10594줄)에서 확인할 수 있습니다.
데이터는 이러한 느린 API 호출이 다음과 같은 특성을 가지고 있음을 보여줍니다:

HTTP 메소드: GET
상태 코드: 200
결과: SUCCESS
URI: /api/slow
애플리케이션: target-api
오류나 예외가 보고되지 않음


대시보드는 "요청 수"와 "응답 시간" 패널 모두에서 이러한 느린 API 호출에 대한 메트릭을 포함하며, 다음을 보여줍니다:

404 오류에 대한 응답 시간은 약 0.002초에서 0.004초 범위
느린 API 엔드포인트에 대한 성공적인 200 응답의 경우 훨씬 더 긴 응답 시간(약 10초)


이러한 느린 API 호출은 REST 템플릿을 사용하여 프로그래밍 방식으로 /api/slow 엔드포인트를 호출하는 ApiCallRunner 컴포넌트에 의해 이루어지고 있습니다(ApiCallRunner.java에서 확인 가능).
Grafana 대시보드는 응답 시간에 대한 히스토그램 분위수(p50 및 p95)를 추적하는 Prometheus 쿼리를 사용하여 이러한 느린 API 호출의 성능을 특별히 모니터링하고 있습니다.

데이터는 /api/slow 엔드포인트가 의도적으로 응답에 오랜 시간이 걸리면서도 성공적으로 200 상태 코드를 반환하고 있음을 확인해 주며, 이는 모니터링 기능을 테스트하기 위한 느린 API로서의 설계된 목적과 일치합니다.

느린 API(/api/slow)의 응답 속도는 약 10초 정도였습니다. 
데이터를 확인해보니 정확히는 10.012초와 10.009초의 응답 시간이 기록되어 있습니다. 
이는 Grafana 대시보드의 "Response Time" 패널에서 확인된 GET 요청에 대한 측정값입니다. 
이 API는 의도적으로 느리게 설계되어 모니터링 테스트 목적으로 사용되고 있으며, 성공적인 응답(상태 코드 200)을 반환하면서도 약 10초의 지연 시간을 가지고 있습니다.

소스코드

profile
개발자의 생각 로그

0개의 댓글