概要
Gitlab 内蔵の Promethues を使って Gitlab 自体の死活監視をする方法を紹介します
使えそうなメトリックスとダメそうなメトリックスがあったのでそれも紹介します
環境
- Gitlab 16.3.6
- Prometheus 2.46.0
使えそうなメトリックス
gitlab_sli:gitlab_component_errors:rate{job="gitlab-workhorse"} > 0
が一番いいかなと思います
gitlab に定期的にアクセスして 500 が帰ってきたときの割合を返してくれるメトリックスです
これは gitlab が提供してくれる recording alert で実際の中身は sum(rate(http_request_duration_seconds_count{job="gitlab-rails",status=~"5.."}[1m]))
になっています
使えなさそうなメトリック
avg_over_time(up[5m]) * 100 < 50
これも gitlab が提供してくれるアラートルールなのですが up を使っています
up だと各プロセスではなく Promethues が使用している targets つまり exporter のプロセス監視をしているだけなので実際の redis や postgres, rails (puma) がダウンしても exporter に影響がないためアラートがあがりません
なのでこの ServiceDown というアラートを死活監視として使うことはおすすめしません
実際にプロセス監視ができそうなのが redis_up というクエリだけで他のプロセスに関しては死活監視できそうなクエリはデフォルトの gitlab のメトリックはありませんでした
最後に
自分で blackbox_exporter を追加しても OK です
が面倒なのでデフォルトの gitlab + Promethues で死活監視できる方法を紹介しました
あとは自作の exporter を作ってもいいですがそれも面倒かなと思います
0 件のコメント:
コメントを投稿