ツナワタリマイライフ

日常ネタから技術ネタ、音楽ネタまで何でも書きます。

GitHub の Issue の数を prometheus 形式で export する OSS 作った

作った。

github.com

github.com

これのお友達。

なぜ作ったか

Quipper では基本 Issue で仕事をしている。で、適当に Label も活用している。

もともとの Motivation は Open になってる Postmortem Issue が放置されてることだったりする。

結局いまだに放置されていてその問題は解決していないのだけれど....

f:id:take_she12:20210127054456p:plain

こんな風に metric として可視化されると、n 件たまったらアラートとかできる。するかはまだわからない。

そもそも今 Workload の管理というか、Issue 管理全然できてるとは言えない。が、まぁなんにせよ見えるようにして長期トレンドを見て何かアクションする、みたいなことはできる可能性がある。この手の可視化、metric 化はそれによって意味のあるアクションが取れるか、意味のある意思決定がとれるかは、とってみて眺めて味わう、というフェーズがないとなんとも言えんので、しばらくはちょっとでも「あると便利かも?」と思ったものはバンバン送ろうと思っている。

工夫した点

Label Filtering

Issue は多い。開きっぱなしのものも多い。しかも Quipper の場合は quipper/quipper にかなりの割合のメンバーが issue を作成しているので多い。3k とか 5k とかある。ので、取得時点で Label でフィルタリングできるようにしている。

github.com

GITHUB_LABEL という環境変数からとってきて、ListOption にいれる。

で、ないならないで良いようにもした。

github.com

Pagination

工夫というほどでもないけど。GitHub API は default で 30件、max 100件しか取れない。

ちゃんと Pagination 対応した。

github.com

ただ数k になると結構時間かかって、Ticker の Interval 以内に取得できないケースもある。

次回作

Github 編は終わり。次は AWS の RDS Engine Version を Prometheus 形式で Export するやつを作る。これまた役に立つか、Alert つけるにせよどのバージョンがアウトかを管理する必要があるので、そのへんどうできるかは不明だが、とりあえず作る。