Linux コンテナ環境で CPU やメモリ使用率が閾値を超えたら Go アプリを自動プロファイルするライブラリです
中辛 の解説
Go で書かれたこのライブラリは、Linux コンテナのリソースクォータに対する使用率を監視します。CPU・メモリ・ゴルーチン数のほか、カスタムメトリクスも登録可能です。Slack Reporter が組み込まれており、プロファイルダンプを自動レポートできます。v2 では Metric インターフェースで統一されて拡張性が高まり、カスタムメトリクス(接続プール使用率、キューバックログなど)を自分で実装して登録できます。オーバーヘッドは微小(ベンチマーク参照)なため、本番環境への導入も安心です。
이런 레포예요
이럴 때 쓰면 좋아요
- 本番環境で突発的なリソース枯渇が発生したときに自動的にプロファイルを取得して原因を調査する
- データベース接続プール使用率などのカスタムメトリクスをアプリケーション固有で定義して監視する
- Slack に自動的にプロファイルレポートを送信して、チーム全体でパフォーマンス情報を共有する
핵심 기능
대안 대비 차별점
Linux cgroup のリソースリミットに対する使用率ベースの自動トリガー、カスタムメトリクスを Metric インターフェースで統一実装できる拡張性、微小なオーバーヘッドが特徴です。
食べた人たち
実際に使ってみた人の記録です — 一言も完走の記録も、確認のうえで公開しています。
このリポジトリの作り方
はじめてですか? むずかしくありません — 上から順にたどれば、自分の環境で動かして味見できます。
준비물
- Go 1.13 以上
- Linux コンテナ環境
すぐ動かしてみるGo
ギット飯がリポジトリの構成を確認して組み立てた実行コマンドです。ターミナルに貼り付ければ、取得から実行までまとめて進みます。
git clone --depth 1 https://github.com/daangn/autopprof.git && cd autopprof && go run .
コードは自分の環境で動きます — はじめて見るリポジトリなら、中身にひととおり目を通してから実行するのがおすすめです。
README가 안내하는 자세한 단계 보기
- モジュールをインストールします。
go get -u github.com/daangn/autopprof/v2
- Go コード内で autopprof を初期化します。
package main
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()
// Your code here.
}
- アプリケーションをビルド・実行します。
go build
./your_app
ギット飯トライで味見
入れるのが面倒で少し不安だったなら — 安全スキャンからインストールまで、ターミナル一行で終わります。
ターミナルに貼り付ければ、ギット飯の安全スキャン → 隔離フォルダへ clone → インストール → 実行方法の案内まで自動です。はじめてでも大丈夫 — この一行だけです。
npx gitbap-try daangn/autopprof
Node.js さえあれば、インストールなしで動きます · ギット飯トライとは? →
スター推移 · 7日
使いやすさ · まねしやすいか
- ゆるいライセンス
- テストあり
- サンプル集
- 最近の更新
- AGENTS.md
- llms.txt
- テンプレート
最近の更新あり · 2022 年に作成
「데브옵스·인프라」 こういうリポジトリを毎週受け取りませんか?
毎週月曜の朝、選んだ一膳だけ。広告なし · いつでも解除。
自分のリポジトリですか? README にギット飯バッジを貼る
[](https://www.gitbap.com/r/daangn/autopprof)Claude からそのまま使う — ギット飯のつなぎ方
ギット飯を Claude につなぐと、こうしたリポジトリを Claude・Cursor・Codex から直接さがして試せます。
Claude の設定 → コネクタにこのアドレスを貼り付け。
https://www.gitbap.com/api/mcpプラグインを入れると /gitbap-trending·/gitbap-try のスラッシュコマンドで、その場でリポジトリを試せます。Claude Code で下の 2 行を順に実行してください。
/plugin marketplace add jakeparkcolde/gitbap-cowork/plugin install gitbap-cowork@gitbapAI が README をもとに要約しました · 原文を見る