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 토큰 (리포팅용)

바로 차려먹기Go

깃밥이 레포 구조를 확인하고 만든 실행 명령이에요. 터미널에 붙여넣으면 받기부터 실행까지 한 번에 진행돼요.

git clone --depth 1 https://github.com/daangn/autopprof.git &&
cd autopprof &&
go run .

코드는 내 컴퓨터에서 실행돼요 — 처음 보는 레포라면 내용을 한번 훑어보고 실행하는 습관을 추천해요.

README가 안내하는 자세한 단계 보기
  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으로 보냅니다.

깃밥트라이로 맛보기

받아보기 귀찮고 살짝 불안했다면 — 안전 스캔부터 설치까지 터미널 한 줄로 끝나요.

터미널에 붙여넣으면 깃밥 안전 스캔 → 격리 폴더 clone → 설치 → 실행법 안내까지 자동이에요. 처음이어도 괜찮아요 — 이 한 줄이 전부예요.

npx gitbap-try daangn/autopprof

Node.js만 있으면 설치 없이 실행돼요 · 깃밥트라이가 뭐예요? →

별 추이 · 7일

218+0 / 7일

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

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

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

「데브옵스·인프라」 이런 레포, 매주 받아보실래요?

매주 월요일 아침, 골라 담은 밥상만. 광고 없이 · 언제든 해지.

내 레포인가요? README에 깃밥 배지 달기
[![깃밥](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 기반으로 요약했습니다 · 원문 보기