GitLab.com のモニタリング

GitLab.com サービス可用性

GitLab.com の可用性は顧客ごとにモニタリングされています。顧客のダウンタイムを判定するための方法論は、サービスレベル契約に文書化されています。 このページに記録されている可用性は、選択されたサービスの指標を使用して測定されています。これはカバードエクスペリエンスだけでなく、エラーとレイテンシの両方を対象としています。これは SLA に記載されているものとは異なります。これらの数値は内部的に使用されます。

このページでは、GitLab.com を内部的にモニタリングするために使用しているツールについて説明します。 GitLab.com サービス可用性の計算方法論はモニタリングポリシーに記載されています。

障害、劣化の定義の詳細については、インシデント管理ページをご覧ください。

過去のサービス可用性

年月可用性コメント
2026 年 3 月99.93%
2026 年 2 月99.95%
2026 年 1 月100.00%
2025 年 12 月99.99%
2025 年 11 月99.98%
2025 年 10 月99.95%
2025 年 9 月100.00%
2025 年 8 月100.00%
2025 年 7 月99.91%
2025 年 6 月99.84%
2025 年 5 月99.73%
2025 年 4 月99.97%
2025 年 3 月100.00%
2025 年 2 月99.99%
2025 年 1 月99.98%
2024 年 12 月99.95%
2024 年 11 月100.00%
2024 年 10 月99.66%
2024 年 9 月99.85%
2024 年 8 月100.00%
2024 年 7 月99.99%
2024 年 6 月99.99%
2024 年 5 月100.00%
2024 年 4 月99.96%
2024 年 3 月100%
2024 年 2 月99.86%
2024 年 1 月100%
2023 年 12 月99.99%
2023 年 11 月99.99%
2023 年 10 月99.8910 月 30 日 Sev 1
2023 年 9 月99.98%
2023 年 8 月100%
2023 年 7 月99.78%2 件のセビリティ 1 インシデントがサービス障害の約 94% を占めました。2023-07-072023-07-14
2023 年 6 月100%
2023 年 5 月99.92%
2023 年 4 月99.98%
2023 年 3 月99.99%
2023 年 2 月99.98%
2023 年 1 月99.80%
2022 年 12 月100%
2022 年 11 月99.86%
2022 年 10 月100%
2022 年 9 月99.98%
2022 年 8 月99.92%
2022 年 7 月99.95%
2022 年 6 月99.96%
2022 年 5 月99.99%
2022 年 4 月99.98%
2022 年 3 月99.91%
2022 年 2 月99.87%
2022 年 1 月99.95%
2021 年 12 月99.96%
2021 年 11 月99.71%
2021 年 10 月99.98%
2021 年 9 月99.85%
2021 年 8 月99.86%
2021 年 7 月99.78%
2021 年 6 月99.84%
2021 年 5 月99.85%PostgreSQL 12 アップグレードの手動調整は含まれていません
2021 年 4 月99.98%
2021 年 3 月99.34%
2021 年 2 月99.87%
2021 年 1 月99.88%
2020 年 12 月99.96%
2020 年 11 月99.90%
2020 年 10 月99.74%
2020 年 9 月99.95%
2020 年 8 月99.87%
2020 年 7 月99.81%
2020 年 6 月99.56%
2020 年 5 月99.58%

関連ページ

関連動画

これらの動画は、サーバー、ネットワーク、データベース、セキュリティ、パフォーマンスに関連する障害、欠陥、問題を迅速に特定する方法の例を示しています。

モニタリング

Pingdom 統計

公式の可用性報告には apdex ベースの測定を使用しています(上記参照)。ただし、GitLab.com の全体的なパフォーマンスの代表的なビューとして、いくつかの公開 pingdom テストも実施しています。これらは https://stats.pingdom.com で確認できます。具体的には、以下の可用性とレイテンシが含まれています:

モニタリングインフラ

メトリクスの取り込みとクエリには Grafana Mimir を使用しています。Mimir は Prometheus を拡張するオープンソースの分散時系列データベースです。実装の詳細については、Runbook ドキュメントをご覧ください。

モニタリングダッシュボード

メトリクスは Grafana で確認できます。Grafana の Explore ダッシュボードでは、PromQL を使用して Mimir のすべてのデータをクエリできます。

  • アクセスには Google SSO 経由の @gitlab.com メールアドレスが必要です
  • 高可用性セットアップ
  • このセットアップからアラートが送信されます
  • コンプライアンス、セキュリティ、可用性の理由から公開から分離されています

ダッシュボードの追加

Grafana を使用して新しいグラフやダッシュボードを設定する方法については、以下のリソースをご覧ください:

ダッシュボードを追加するためのアクセスが必要ですか?インフラチーム内の任意のチームリードにお問い合わせください。

ステージグループ向けダッシュボード

各ステージグループ向けに設計されたモニタリングダッシュボードのセットがあります。これらのダッシュボードは、機能カテゴリに携わるすべての人が、自分たちのコードが GitLab.com スケールでどのように動作しているかを把握できるように設計されています。機能/コードの変更、デプロイ、フィーチャーフラグの切り替えの影響を示すために、ステージグループごとにグループ化されています。

  1. 各ステージグループのダッシュボード一覧(GitLab チームメンバー限定)
  2. ステージグループダッシュボード入門ガイド
  3. ステージグループダッシュボードを紹介する YouTube 動画

ステージグループのダッシュボードはまだ初期段階です。すべての貢献を歓迎します。質問や提案がある場合は、Scalability チームの Issue トラッカーに Issue を提出してください。

モニタリングから選定した有用なダッシュボード

ブラックボックスモニタリング

  • GitLab Web Status: GitLab のフロントエンド視点。ユーザー視点から GitLab.com がどのように見えるかを理解するのに役立ちます。GitLab のどの部分が遅いかをすばやくトラブルシュートするためにこのグラフを使用してください。
  • GitLab Git Status: GitLab SSH アクセスのフロントエンド視点。

プライベートホワイトボックスモニター

  • Host Stats: 特定のホストを詳しく調べて何が起きているかを理解するのに役立ちます。上部のドロップダウンからホストを選択してください。
  • Business Stats: プッシュ数、新しいリポジトリ、CI ビルドを表示します。
  • Daily overview: コール数とパフォーマンスメトリクスを伴うエンドポイントを表示します。全体的に何が遅いかを理解するのに役立ちます。

ログ

ネットワーク、システム、アプリケーションのログは、ELK スタックを使用して処理・保存・検索されています。GCP 上のマネージド Elasticsearch クラスターを使用しているため、インターフェースは API、Kibana、elastic.co の Web UI のみです。システムのパフォーマンスとメトリクスのモニタリングには、Elastic の x-pack モニタリングメトリクスを使用しています。これらは専用のモニタリングクラスターに送信されます。長期的には Prometheus と Grafana を優先インターフェースに切り替える予定です。Elastic によって管理されているため、VM は Elastic が運用しており、私たちはアクセスできません。ただし、エラーやインシデントの調査には、生のログが Kibana 経由で利用可能です。 ステージングログは、別の Kibana インスタンスから利用できます。

Kibana ダッシュボードは、アプリケーションアクティビティ、スパムイベント、一時的なエラー、システムおよびネットワーク認証イベント、セキュリティイベントなどのモニタリングに使用されます。よく使用されるダッシュボードは Abuse、SSH、Rack Attack ダッシュボードです。

インフラのロギング方法については、runbook に概要が記載されています。

ログ管理に関するポリシーはモニタリングポリシーに記載されています。

ダッシュボードの追加

Kibana ダッシュボードの作成方法については、以下のリソースをご使用ください:

GitLab プロファイリング

Go サービス

Stackdriver Continuous Go Profiling を使用すると、Go サービスのパフォーマンスとリソース消費をより深く理解できます。(Google Workspace の stackdriver-profiler-sg グループへのメンバーシップが必要)

CPU とメモリ使用データを含む GCP 上のシンプルな UI が提供されます:

詳細については、クイックビデオチュートリアルをご覧ください。

また、この Issue で各プロジェクトの開発チームとペアリングして一連の詳細調査を行い、以下の動画が生まれました:

パフォーマンスモニタリングのための Ruby のインストルメンテーション

Ruby コードのブロックをパフォーマンス計測のために「インストルメント」できます。

その他のツール

Sentry

エラートラッキングサービス。

グループ向け Sentry アラートの設定

アラートルールを作成することで、グループが機能をモニタリングし、問題を積極的に検出できるようになります。これにより、エラーバジェット SLO を超える前に問題を修正でき、GitLab.com サービス可用性の維持に貢献します。

アラート作成手順:

  1. Sentry のアラートルールダッシュボードを開く。
  2. 右上の「Create Alert」ボタンをクリックする。
  3. グループの機能カテゴリに応じた必要な条件を設定する。
  4. 次の命名規則で新しい公開 Slack チャンネルを作成する: “g_group_name_alerts”。例: #g_govern_compliance_alerts
  5. アラート通知を送信するためにこのチャンネルを選択する。
  6. 新しいアラートがないかグループをモニタリングし、解決に向けて取り組む。

Sitespeed.io

ウェブサイトの速度とパフォーマンスをモニタリング、分析、最適化するためのツール。


ステージングモニタリング
ステージング環境のモニタリング方法とトラフィック生成方法