daangn/autopprof

Linux 컨테이너에서 Go 애플리케이션의 CPU·메모리 사용량이 임계값을 초과할 때 자동으로 프로파일링하는 도구

개발 재료맘대로 써도 됨 · Apache-2.0데브옵스·인프라Go난이도
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 토큰 (리포팅용)

바로 시작하기

  1. 모듈 가져오기 및 의존성 설치
go get -u github.com/daangn/autopprof/v2
  1. 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()
	// 애플리케이션 코드
}
  1. 애플리케이션을 빌드하고 Linux 환경(컨테이너)에서 실행합니다. autopprof가 자동으로 CPU/메모리 모니터링을 시작하며, 임계값 초과 시 프로파일을 생성해 Slack으로 보냅니다.

별 추이 · 7일

218+0 / 7일

활용성 · 따라 만들기 좋은가

따라 하기 좋음샘플 점수 50/100
  • 관대한 라이선스
  • 테스트 있음
  • 예제 디렉토리
  • 최근 활동
  • AGENTS.md
  • llms.txt
  • 템플릿

🟢 최근 활동 있음 · 2022년 생성

이 레포에 깃밥 배지 달기

[![깃밥](https://www.gitbap.com/badge/daangn/autopprof.svg)](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@gitbap
연결 방법 자세히 →

AI가 README 기반으로 요약했습니다 · 원문 보기