daangn/autopprof
Linux 컨테이너에서 Go 애플리케이션의 CPU·메모리 사용량이 임계값을 초과할 때 자동으로 프로파일링하는 도구
218+0이번 주0 찜
10포크0이슈
중간맛 분석
스택: Go 언어로 작성된 라이브러리. 난이도: 낮음(기본 설정으로 3줄이면 시작 가능). 바로 쓸 수 있는가: 네. 간단한 autopprof.Start() 호출만으로 기본 CPU·메모리·고루틴 모니터링이 활성화됩니다. Slack Reporter가 내장되어 있어 즉시 보고 기능도 사용 가능합니다. 데모: 에서 실제 프로파일링 리포트 이미지(CPU·메모리)를 제공합니다. v2부터 커스텀 메트릭 인터페이스를 지원하므로 데이터베이스 커넥션 풀·큐 백로그 같은 도메인 특화 신호도 모니터링할 수 있습니다.
이런 레포예요
이럴 때 쓰면 좋아요
- 프로덕션 Go 서비스에서 갑작스러운 높은 CPU/메모리 사용을 감지하고 자동으로 프로파일을 수집해 Slack에 알림
- 마이크로서비스 환경에서 각 서비스의 리소스 상태를 지속적으로 모니터링하고 임계값 초과 시 즉시 증거 수집
- 데이터베이스 커넥션 풀이나 캐시 같은 도메인 특화 메트릭도 함께 모니터링해 성능 병목 지점 파악
핵심 기능
CPU·메모리·고루틴 사용률을 Linux cgroup 할당량 대비 자동 모니터링임계값 초과 시 pprof 프로파일 자동 수집 및 Slack 리포트커스텀 메트릭 인터페이스로 도메인 신호(풀 사용률, 큐 백로그 등) 추가 모니터링 가능
대안 대비 차별점
내장 메트릭들이 cascade되어 하나의 임계값 초과가 다른 메트릭도 함께 프로파일링하므로, 단편적 데이터가 아닌 전체적 맥락에서 성능 문제를 진단할 수 있습니다.
준비물
- Linux 환경 (cgroup 기반 컨테이너)
- Go 1.13 이상
- Slack API 토큰 (리포팅용)
바로 시작하기
- 모듈 가져오기 및 의존성 설치
go get -u github.com/daangn/autopprof/v2
- Go 코드에서 autopprof 초기화.
main함수에서autopprof.Start()를 호출하고 설정 옵션(앱 이름, CPU/메모리 임계값, 모니터링 간격, Slack 리포터 등)을 전달합니다.
import (
"errors"
"log"
"time"
"github.com/daangn/autopprof/v2"
"github.com/daangn/autopprof/v2/report"
)
func main() {
err := autopprof.Start(autopprof.Option{
App: "YOUR_APP_NAME",
CPUThreshold: 0.8,
MemThreshold: 0.8,
WatchInterval: 10 * time.Second,
ReportCooldown: 5 * time.Minute,
Reporter: report.NewSlackReporter(
&report.SlackReporterOption{
Token: "YOUR_TOKEN_HERE",
ChannelID: "REPORT_CHANNEL_ID",
},
),
})
if errors.Is(err, autopprof.ErrUnsupportedPlatform) {
log.Println(err)
} else if err != nil {
log.Fatalln(err)
}
defer autopprof.Stop()
// 애플리케이션 코드
}
- 애플리케이션을 빌드하고 Linux 환경(컨테이너)에서 실행합니다. autopprof가 자동으로 CPU/메모리 모니터링을 시작하며, 임계값 초과 시 프로파일을 생성해 Slack으로 보냅니다.
별 추이 · 7일
218+0 / 7일
활용성 · 따라 만들기 좋은가
따라 하기 좋음샘플 점수 50/100
- 관대한 라이선스
- 테스트 있음
- 예제 디렉토리
- 최근 활동
- AGENTS.md
- llms.txt
- 템플릿
🟢 최근 활동 있음 · 2022년 생성
이 레포에 깃밥 배지 달기
[](https://www.gitbap.com/r/daangn/autopprof)🔌 클로드에서 바로 써보기
깃밥을 클로드에 연결하면 이런 레포를 클로드·커서·Codex에서 바로 찾고 체험할 수 있어요.
방법 ① 커넥터 URL
클로드 설정 → 커넥터에 이 주소를 붙여넣기.
https://www.gitbap.com/api/mcp방법 ② 플러그인 (체험까지)
플러그인을 설치하면 /gitbap-trending·/gitbap-try 슬래시 커맨드로 레포를 그 자리에서 체험. Claude Code에서 아래 두 줄을 차례로 실행하세요.
/plugin marketplace add jakeparkcolde/gitbap-cowork/plugin install gitbap-cowork@gitbapAI가 README 기반으로 요약했습니다 · 원문 보기