K6M Surfer는 Spring Boot 애플리케이션용 경량 모니터링, 분석 및 디버깅 도구입니다. 별도의 에이전트 설치 없이 메서드 흐름, API 구조, 에러 분석, 부하 테스트를 수행할 수 있습니다.
- 메서드 흐름 분석: 메서드 실행 경로, 호출 시간, 파라미터, 반환값을 추적하고 분석합니다.
- AI 기반 코드 분석: OpenAI, Anthropic, Azure OpenAI와 연동하여 코드와 에러에 대한 지능형 분석을 제공합니다.
- API 스캐닝: Spring 애플리케이션의 API 엔드포인트를 자동으로 스캔하고 문서화합니다.
- 부하 테스트: 내장된 부하 테스트 도구로 API 성능을 평가합니다.
- 에러 분석: 발생한 예외를 캡처하고 소스 코드와 함께 분석합니다.
- 웹 인터페이스: 모든 기능을 웹 UI로 편리하게 사용할 수 있습니다.
Maven:
<dependency>
<groupId>com.github.k6mt</groupId>
<artifactId>surfer</artifactId>
<version>1.0.0</version>
</dependency>Gradle:
implementation 'com.github.k6mt:surfer:1.0.0'라이브러리를 의존성에 추가하면 기본적인 기능은 별도 설정 없이 바로 사용할 수 있습니다. 대부분의 설정은 기본값이 true로 되어 있어 생략 가능합니다.
AI 분석 기능을 사용하려면 application.yml 파일에 다음 설정을 추가하세요:
surfer:
config:
ai:
enabled: true # AI 기능 활성화
provider: openai # openai, anthropic, azure 중 선택
model-name: gpt-4
api-endpoint: https://api.openai.com/v1/chat/completions
api-key: your-api-key-here
temperature: 0.7
max-tokens: 1000- HTTP 요청 헤더에
X-Surfer-Header: [고유ID]값을 추가합니다. - 해당 요청을 처리하는 메서드 실행 경로가 자동으로 추적됩니다.
- 추적 데이터는
/trace엔드포인트에서 확인할 수 있습니다.
curl -H "X-Surfer-Header: trace-123" http://localhost:8080/your-api-endpoint
curl -H "X-Surfer-Header: trace-123" http://localhost:8080/trace?url=/your-api-endpoint&method=GET애플리케이션의 모든 REST API 엔드포인트를 스캔하고 문서화합니다:
curl http://localhost:8080/scan/list특정 API에 대한 자세한 정보 확인:
curl "http://localhost:8080/scan?methodType=GET&encodeUrl=your-encoded-api-path"추적된 메서드에 대한 AI 기반 분석:
curl -H "X-Surfer-Header: trace-123" http://localhost:8080/method-analysis발생한 에러에 대한 정보 및 AI 분석:
curl -H "X-Surfer-Header: error-123" http://localhost:8080/errors
curl -H "X-Surfer-Header: error-123" http://localhost:8080/errors/analysis지정된 API에 대한 부하 테스트 실행:
curl -X POST "http://localhost:8080/load/start?testId=test-1&url=/your-api&method=GET&threadCount=10&requestPerSecond=50&durationSeconds=30"테스트 중지:
curl -X POST "http://localhost:8080/load/stop?testId=test-1"메트릭 확인:
curl "http://localhost:8080/load/metrics?testId=test-1"모든 기능은 웹 인터페이스에서도 사용할 수 있습니다:
http://localhost:8080/k6mt-surfer
K6M Surfer는 다양한 AI 제공자를 지원합니다:
surfer:
config:
ai:
enabled: true
provider: openai
model-name: gpt-4
api-endpoint: https://api.openai.com/v1/chat/completions
api-key: your-openai-api-keysurfer:
config:
ai:
enabled: true
provider: anthropic
model-name: claude-3-opus-20240229
api-endpoint: https://api.anthropic.com/v1/complete
api-key: your-anthropic-api-keysurfer:
config:
ai:
enabled: true
provider: azure
model-name: your-deployment-name
api-endpoint: https://your-resource-name.openai.azure.com/openai/deployments/your-deployment-name/chat/completions?api-version=2023-05-15
api-key: your-azure-api-keyK6M Surfer는 데이터를 다음 위치에 저장합니다:
~/.surfer/
├── api_history/ # API 호출 기록
└── load_test_history/ # 부하 테스트 결과
기본 경로는 surfer.config.home-path 설정으로 변경할 수 있습니다.
K6M Surfer는 다음 주요 모듈로 구성되어 있습니다:
- Core: 기본 기능 및 유틸리티
- AI: AI 서비스 연동 (OpenAI, Anthropic, Azure)
- Method Trace: 메서드 호출 추적 및 분석
- API Scan: API 엔드포인트 스캐닝 및 문서화
- Error Analysis: 예외 캡처 및 분석
- Load Test: 부하 테스트 도구