2023年12月7日木曜日

Gitlab の Promethues を使って死活監視をするときに使えそうなメトリックス

Gitlab の Promethues を使って死活監視をするときに使えそうなメトリックス

概要

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 件のコメント:

コメントを投稿