Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
GitLabサーバーのモニタリング / gitlab server monitoring
Search
Teraoka Yoshinori
April 24, 2019
Technology
1
2.8k
GitLabサーバーのモニタリング / gitlab server monitoring
GitLab server monitoring with Prometheus.
And some server configurations.
Teraoka Yoshinori
April 24, 2019
Tweet
Share
More Decks by Teraoka Yoshinori
See All by Teraoka Yoshinori
Job に挿入される sidecar を停止させる sidecar を挿入する話
yteraoka
0
130
What is the difference between docker and containerd about logging?
yteraoka
2
950
Prometheus の relabeling
yteraoka
1
18k
Other Decks in Technology
See All in Technology
Node-RED × MCP 勉強会 vol.1
1ftseabass
PRO
0
180
自律的なスケーリング手法FASTにおけるVPoEとしてのアカウンタビリティ / dev-productivity-con-2025
yoshikiiida
0
280
製造業からパッケージ製品まで、あらゆる領域をカバー!生成AIを利用したテストシナリオ生成 / 20250627 Suguru Ishii
shift_evolve
PRO
1
160
より良いプロダクトの開発を目指して - 情報を中心としたプロダクト開発 #phpcon #phpcon2025
bengo4com
1
3.2k
Lambda Web Adapterについて自分なりに理解してみた
smt7174
5
140
開発生産性を組織全体の「生産性」へ! 部門間連携の壁を越える実践的ステップ
sudo5in5k
0
300
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
26k
高速なプロダクト開発を実現、創業期から掲げるエンタープライズアーキテクチャ
kawauso
1
140
Snowflake Summit 2025全体振り返り / Snowflake Summit 2025 Overall Review
mtpooh
2
440
Liquid Glass革新とSwiftUI/UIKit進化
fumiyasac0921
0
300
Connect 100+を支える技術
kanyamaguc
0
150
作曲家がボカロを使うようにPdMはAIを使え
itotaxi
0
370
Featured
See All Featured
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
800
Reflections from 52 weeks, 52 projects
jeffersonlam
351
20k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Bash Introduction
62gerente
614
210k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
107
19k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
124
52k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.5k
Git: the NoSQL Database
bkeepers
PRO
430
65k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
GitHub's CSS Performance
jonrohan
1031
460k
Transcript
GitLabサーバーの モニタリング Yoshinori Teraoka 2019.4.24 GitLab Meetup Tokyo #16 @PLAID
自己紹介 エムスリー株式会社 エンジニアリンググループ SREチーム yteraoka yteraoka
自己紹介 ◀ これ書きました autoscale runner のことはこ れ読めばだいたいわかる https://www.m3tech.blog/entry/advent-calendar-2018-2
エムスリーと GitLab ユーザーの作成日時を見ると 2012年7月~(っぽい) 当然タヌキは昔のやつ 当時はまだ Omnibus package はまだ存在しなかったし、DB は
MySQL だった どこかのタイミングで OS 更新に合わせて Omnibus package に変更 現在のプロジェクト数1200超 GitLab CI, GitLab Pages, Review Apps 使ってます
今日はモニタリングの話
Agenda • Prometheus の活用 • 私の欲しかったもの • gitlab.rb 見てますか?
Prometheus Monitoring GitLab with Prometheus https://docs.gitlab.com/ce/administration/monitoring/prometheus/ GitLab 9.0 以降では有効になっているはず 初期は有効にしていると問題があったので弊社ではながらく無効にしていました
Prometheus Expoters • GitLab monitor exporter ◦ database (:9168/database) ◦
process (:9168/process) ◦ sidekiq (:9168/sidekiq) • Node exporter (:9100/metrics) • Redis exporter (:9121/metrics) • Postgres exporter (:9187/metrics) • Nginx exporter (:8060/metrics) • Gitaly exporter (:9236/metrics) • GitLab Sidekiq exporter (:8082/metrics) • GitLab Workhorse exporter (:9229/metrics) • GitLab Unicorn (:8080/-/metrics)
Grafana Dashboard Grafana Dashboard Repository がある https://gitlab.com/gitlab-org/grafana-dashboards Omnibus package 用
https://gitlab.com/gitlab-org/grafana-dashboards/tree/master/omnibus (でも別にこれ使う必要はないし、必要なものを自分で作ったほうが良い)
Overview Dashboard
コレジャナイ感... Overview だけじゃなくて他にもいくつかあるし、必要なら自分で Dashboard も作れ ば良いのだが、何かあったら見ればよいメトリクスで、 GitLab で普段見る必要がある ようなものではない 私が欲しかったものは
GitLab CI の待ち時間が知りたかった Runner 不足があるなら早く気づいて対処したい (実はまだ autoscale Runner 導入してない) しかし、Job
の状況を確認できるメトリクスが見つからない 無かったら作るしかない
GitLab CI の待ち時間が知りたかった node_exporter には Textfile Collector という機能があり、デフォルトで --collector.textfile.directory=/var/opt/gitlab/node-exporter/textfile_collector というオプションが指定してある
このディレクトリに .prom という拡張子でテキストファイルを置けばメトリクスとして取得 可能になる DB から定期的に取りだしてファイルに書き出すようにしました
GitLab CI の待ち時間が知りたかった こんなのが見れるようになった 赤い横線は Grafana のアラートの閾値
GitLab には Prometheus の alertmanager も含まれているが Grafana でやるとグラフ付きで Slack に送れます
入門 Prometheus 良さそうな本が出るみたいです 2019/05/18 発売 自分の見たい情報は自分で Dashboard 作るのが良い。 Grafana のサイトに共有されているものが参考になる。
モニタリングだけじゃ時間が余りそうなので...
gitlab.rb 見てますか? Omnibus package では /etc/gitlab/gitlab.rb にあり chef を使ったセットアップのための 変数定義がされています。
yum update ではこれは更新されずに新機能はデフォルト値でセットアップされます。 カスタマイズしたい場合は /opt/gitlab/etc/gitlab.rb.template をもとに更新しましょう。 Release note に書かれていない新機能が見つかるはずです。
S3 利用の拡大 利用者が増えるとストレージの容量を気にする必要がでてきますが S3 もしくはその互換ストレージにファイルを保存できるものが増えてます • Backup • LFS •
MergeRequest の diff • Artifacts (CI の生成物保存) • Uploads (Avatar 画像や添付ファイル) • Container registry
Rack Attack かつてデフォルトで有効になっていましたが、オンプレ GitLab の導入理由を考えたらデ フォルトでは無効の方が良かったということでしょう。 インターネットに公開する場合は有効にしましょう。
Unicorn worker killer GitLab には unicorn worker killer が組み込まれています。かつて、この値が弊社環境 には小さすぎたため頻繁に
woker が kill されて遅いという問題がありました。気になる 場合はログを確認して unicorn['worker_memory_limit_min'] unicorn['worker_memory_limit_max'] を調整しましょう。
まとめ • GI の待ち時間を減らしたい ◦ 可視化したので効果も見える ◦ autoscale させるぞ •
gitlab.rb の差分をちょいちょい見ておくと良いですよ • GitLab CI (gitlab-ci.yml) のドキュメントもときどき見直すと発見がある