Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

GitLab Prometheus

1,336 views

Published on

GitLab Meetup Tokyo #5: GitLab 10リリース記念の資料です。
https://gitlab-jp.connpass.com/event/69475/

Published in: Technology

GitLab Prometheus

  1. 1. GitLab x Prometheus デプロイアプリのPerformance測定 Shingo.Kitayama 2017/11/17 GitLab Meetup Tokyo #5 https://gitlab-jp.connpass.com/event/69475/
  2. 2. Introduction GitLab x Prometheus 2 日本ヒューレット・パッカード株式会社 テクニカルアーキテクト ・オープンソースソリューションの提案 ・コンサルティング、および構築デリバリーを担当 Now on Sale
  3. 3. Introduction ITmediaエンタープライズ 連載中 3 変化を拒むおっさんに 喝をいれる連載 執筆中!! お仕事の息抜き&気分転換に ご覧ください。
  4. 4. 本日のIndex GitLab x Prometheus 4 1. とりあえず理解するPrometheus 2. GitLabとPrometheusの連携 3. アプリパフォーマンス監視
  5. 5. 1. とりあえず理解するPrometheus 5 - What’s Prometheus -
  6. 6. Prometheusとは オープンソースの軽量サービス監視ツール 6https://qiita.com/tnir/items/7dd63b7baa4299135194 パフォーマンスデータの収集やグラフの表示、アラートなどの通常監視機能に加え、クエリを利用して、CPUの負荷やメモリ、 ストレージの利用率、HTTPのレイテンシなどのメトリクスを計算しグラフ化することも可能。 - Pull型監視 - 監視対象Prometheus 管理サーバ側から管理対象に情報をリクエストし、ステータスを収集する方法。監視対象を完全にコントロールできる 反面、監視対象ホストが増えるたびに管理サーバの設定ファイルを更新する必要があります。 情報収集 リクエスト
  7. 7. Prometheusの仕組み Prometheus Architecture 7 監視対象 Prometheus Server Retrieval PromQL ローカル ストレージ Storage 監視対象プロセス Exporter 情報収集 リクエスト ジョブプログラム PushGateway リクエスト情報収集 情報送信 Alert manager Web UI ・ Grafana ・ API Client アラート送信 mailslack web hook Expression Browser 『メトリクスの収集/格納』 『アラートの通知』 『クエリの返答』
  8. 8. Prometheus Exporters メトリクスの収集 8 監視対象 node exporter mysqld exporter mysql 監視対象 既存の監視メトリックをPrometheusメトリックとしてエクスポートするのに役立つライブラリ。 http://target.local:9100/metrics - job_name: node static_configs: - targets: - ":9100" Prometheus Server
  9. 9. 2. GitLabとPrometheusの連携 9 - Prometheus within GitLab -
  10. 10. GitLabにおけるPrometheusの用途 Omnibus GitLabに付随しているPrometheusはGitLab管理用途 10 GitLabのプロセスステータス管理用Prometheus GitLabでデプロイしたアプリの パフォーマンス測定用Prometheus Omnibus GitLabに付随しているPrometheusでは、GitLab上で利用するプロセスのステー タスチェックを行う。 個別にExporterを用意することによって、Environmentに配置したアプリケーションのパフォー マンスチェックを動的に行う。
  11. 11. GitLabのプロセスステータス管理用Prometheus Exporters for Process Status 11 Exporters ステータス内容 ポート Node exporter メモリ、ディスク、CPU使用率などのマ シンリソースの測定 localhost:9100 Redis exporter Redisプロセスのリソース測定 localhost:9121 Postgres exporter ProstgreSQLプロセスのリソース測定 localhost:9187 GitLab monitor exporter DatabaseやGit、SidekiqなどのGitLab に関するリソース測定 localhost:9168
  12. 12. GitLabのプロセスステータス管理用Prometheus http://gitlab.example.com/-/metrics?token=$token_id 12
  13. 13. GitLabでデプロイしたアプリのパフォーマンス測定用Prometheus サポートメトリクス 13 Exporters Support Metric Kubernetes Average Memory Usage (MB) Average CPU Utilization (%) NGINX VTS exporter Throughput (req/sec) Latency (ms) HTTP Error Rate (HTTP Errors / sec) NGINX Ingress Controller Throughput (req/sec) Latency (ms) HTTP Error Rate (HTTP Errors / sec) HAProxy Throughput (req/sec) HTTP Error Rate (%) Amazon Cloud Watch Throughput (req/sec) Latency (ms) HTTP Error Rate (%)
  14. 14. 3. アプリパフォーマンス監視 14 - Performance Monitoring -
  15. 15. アプリケーションデプロイメント Sample Application 15
  16. 16. Application構成 デプロイメント構成 16 Docker Engine Prometheus Server GitLab 情報収集 リクエスト http://haproxy:8080/admin?stats HAProxy Exporter http://gitlab-runner01:9101/metrics HAProxy Tomcat ユーザー アクセス - job_name: review-develop-33z241 static_configs: - targets: - gitlab-runner01:9101 relabel_configs: - source_labels: - job target_label: environment
  17. 17. Demo 17 でも(時間があったら
  18. 18. Environment Monitoring $CI_ENVIRONMENT_SLUG 18 Environment = $CI_ENVIRONMENT_SLUG
  19. 19. 19 Thank you

×