PrometheusによるGithubプル要求の監視
4042 ワード
問題
あなたのオープンソースの貢献を追跡したいことがありますか?または、おそらくいくつかの種類のイベントのために複数のユーザーによってなされる貢献をモニターします?よく、私は全く同じ問題を持ちました😊.
With Hacktoberfest ちょうど角を離れて、私は自動的に賞品や類似して参加をincentivizeできるようにオープンソースの貢献を追跡する方法を望んだ.GUTTUBのプロジェクトに大規模な組織の中でどのようなプロジェクトへのプル要求を開くのかを追跡するのはかなり難しいですが、男の子はあなたに解決策を持っています.
解決策
私は建築prometheus exporter これは、ユーザーのリストを使用して設定ファイルを受け取り、そのユーザーによって作成されたプル要求を見つけるためにgithub検索APIを使用します.この輸出者は、例えば
user
, created_at
, status
and link
.プロメテウス輸出者は何ですか?
Prometheus オープンソース時系列データベースは、“プル”モデルを使用して、それがエクスポートされたクライアント(基本的にプラグイン)にエクスポートされます.その後、一般的に15秒で構成された間隔を介して輸出者からのデータをインスト.
私はいくつかのユーザーのプル要求を見たいですか?
あなたがPrometheusに精通しているならば、あなたはgithub pr輸出者ドキュメントを見ることができますhere .
たぶんあなたはプロメテウスに慣れていない、どのように始めるために沿って従ってください!
どうやって動くの?
輸出者はGo 利用するGitHub client library Github検索APIを使用して検索を実行します.輸出者は基本的に引数を通して設定オプションを取ろうとするCLIです、そして、定期的に新しい引きリクエストデータを探すループでウェブサーバを走らせます.
検索
輸出者は検索APIを使用して、あらゆるユーザーのためにこの検索を実行します:
"type:pr author:<user> created:>=<calculated timeframe>"
検索APIは、検索APIの256文字の制限のために一括検索の代わりにユーザごとに1回実行されますが、検索APIは未認証クライアントに対して毎分10回の検索速度を制限しているので、各レート制限を避けるために、各ユーザのプルリクエストデータを収集するのにハード6秒の待ち時間があります.これは、この種のデータのために完全にすばらしい90分につきおよそ1000人のユーザーを処理するので、これは大きな取引でありません.設定オプション
--config
YAML設定ファイル--days-ago
現在のどのように多くの日前からプル要求を取得します.デフォルトは90
--ignore-user-repos
ユーザが自分のリポジトリに対して行ったプルリクエストを無視します.デフォルトはfalse
. --interval
どのくらいの期間(秒単位)新しいデータのチェックの間にスリープ状態に.デフォルトは21600
(6時間)--port
Webサーバを実行するポート.デフォルトは8080
github pr輸出者、プロメテウスとグラファナを配備すること
データを使用するために、起動して実行するために必要な3つのコンポーネントがあります.
git clone https://github.com/circa10a/github-pr-exporter.git
cd github-pr-exporter
docker-compose up -d
The default admin login is username:
admin
password:admin
独自のユーザーまたはその他の監視
デフォルトの設定を変更するには
examples/config.yaml
Githubのユーザ名を含むようにするには、実行してコンテナを再作成します.docker-compose down
docker-compose up -d
次に、ダッシュボード上の新しい詳細をチェック!新しいデータを反映するようにダッシュボードのために約2分かかることができますので、さわやかなまたは自動リフレッシュを有効にしてください.Reference
この問題について(PrometheusによるGithubプル要求の監視), 我々は、より多くの情報をここで見つけました https://dev.to/circa10a/monitoring-github-pull-requests-with-prometheus-57p2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol