Member-only story
Prometheus 101
Prometheusとは?
Prometheusは、オープンソースの監視・アラートツール(TSDB:時系列データベースではありません)です。アプリケーションやシステムに関するデータを収集し、データの可視化やデータに基づくアラートの発信が可能です。堅牢で複雑なインフラを管理するためには、システムで何が起こっているかを迅速かつ容易に理解することが必要です!
Prometheusのハイレベルな使用例
メトリックの収集 — システムやアプリケーションに関する重要なメトリックを一箇所に集めることができます。
可視化 — システムの健全性の概要を提供するダッシュボードを構築します。
アラート — 何かが壊れたときに電子メールを受け取ります。
Prometheusの限界
Prometheusは様々なユースケースに対応できる優れたツールですが、どのような場合に最適なツールでないかを理解することが重要です。
100%の精度 — Prometheusは、障害発生時でも動作するように設計されています。つまり、障害や停電により新しいデータが入手できない場合でも、データを提供し続けることができるのです。リクエストごとの課金など、100%の最新精度が必要な場合、Prometheusは最適なツールではないかもしれません。
非時系列データ(例:ログ集計) — Prometheusは時系列メトリック、特に数値データを監視するために構築されています。システム・ログなど、より一般的なタイプのデータを収集するのには最適ではありません。時系列データは、異なる時点に関連する一連の値で構成されています。
Prometheus アーキテクチャ
Prometheusは様々なコンポーネントで構成されています。Prometheusシステムの最も基本的なコンポーネントは次の2つです。
Prometheusサーバー — メトリックを収集し、利用可能にする中央サーバーです。Prometheusは時系列データの保存を中心に構築されています。時系列データは、異なる時点に関連する一連の値で構成されています。
Exporters — Prometheusサーバーによって収集されるメトリックデータを提供します。エクスポーターとは、Prometheusが読める形式でデータを公開するアプリケーションのことです。prometheus.ymlのscrape_configは、Prometheusサーバーが定期的に各エクスポーターに接続し、メトリックデータを収集するようコンフィギュアします。