マジセミドライブ

ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。

OSS情報

2020.01.01

【OSS情報アーカイブ】Prometheus

【OSS情報アーカイブ】Prometheus

※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。

「Prometheus」とは

概要

Prometheus(プロメテウス)とは、システム監視および警告ツールキットです。柔軟なクエリとリアルタイムアラートを備えたHTTPプルモデルを使用して構築された時系列データベースにリアルタイムメトリックを記録します。時系列データに基づいたアクティブな「スクレイピング」「保存」「クエリ」「グラフ化」「アラート」を含む完全な監視および傾向分析機能を提供します。

基本説明

Prometheusは、指定された間隔で構成済みのターゲットからメトリックを収集し、ルール式を評価し結果を表示します。何らかの条件が真であることが観察された場合にアラートをトリガーできます。

「どのエンドポイントが存在すべきか?」「時系列パターンがトラブルを意味するか?」などについて積極的な障害探知を実施できます。

経緯

・2012年:初版リリース

Prometheusプロジェクトはスタンドアロンのオープンソースプロジェクトとして、どの企業からも独立して維持されています。

リリース開始以来、多くの企業や組織がPrometheusを採用しており、プロジェクトには非常に活発な開発者やユーザーコミュニティが参加しています。

2016年、Prometheusプロジェクトは、プロジェクトのガバナンス構造を明確にするために、Kubernetesに続く2番目のホストプロジェクトとして、Cloud Native Computing Foundationに参加しました。

ユースケース

■時系列記録に強み

Prometheusは純粋に数値的な時系列の記録に適しています。

「マシン中心の監視」と「非常に動的なサービス指向アーキテクチャの監視」の両方に適合します。

マイクロサービスの世界では、多次元データの収集とクエリサポートが特別な強みとなります。

■課金データ収集には不向き

「リクエストごとの請求」などの100%の収集精度が必要な場合、Prometheusは適切な選択ではありません。

そのような場合、他のシステムを使用して課金用のデータを収集および分析し、Prometheusで残りの監視を実施する使い方が適しています。

オフィシャルサイト情報

■オフィシャルサイト

→prometheus.io

■主要開発元

Prometheusは「Cloud Native Computing Foundation」プロジェクトが中心となり開発が進められています。

→cncf.io

■ライセンス情報

Prometheusのライセンスは「Apache License 2.0」です。

詳細について、こちらを参照ください。
→GitHub →prometheus/prometheus →LICENSE

■ダウンロード

公式にメンテナンスされているほとんどのPrometheusコンポーネント用に、プリコンパイルされたバイナリとDockerイメージを提供しています。

・Darwin
・Linux
・Windows

→Prometheus →DOWNLOAD

同様製品

同様な機能を提供する製品として、次のようなものがあります。

オープンソース製品:「Graphite」「InfluxDB」「OpenTSDB」など。

時系列データモデル

■概要

Prometheusは、高次元の時系列データモデルを実装しており、基本的にすべてのデータを時系列として保存します。

時系列は「メトリック名」+「ラベル(一連のキーと値のペア)」によって一意に識別されます。

同じメトリックおよび同じラベル付きディメンションのセットに属するタイムスタンプ付き値のストリームとして処理します。保存された時系列に加えて、クエリ結果として一時的に派生した時系列を生成する場合があります。

→Prometheus →DOCS →CONCEPTS →DATA MODEL

■プルモデル

Prometheusにおいて、時系列データの収集はHTTP経由のプルモデルを介して行われます。

プルモデルの利点

HTTPをプルすることには、多くの利点があります。

・変更時にラップトップで監視を実行できる
・ターゲットがダウンしているかどうかをより簡単に確認できる
・手動でターゲットに移動し、Webブラウザでその状態を検査できる など

対象ケースに最適な監視ツールを

Prometheusプロジェクトでは「プルモデルはプッシュモデルよりもわずかに優れている」と考えていますが、監視システムを検討する場合、対象ケースに最適な監視ツールを導入することを推奨しています。

コアメトリックタイプ

■概要

Prometheusクライアントライブラリは、4つのコアメトリックタイプを提供します。

これらは、特定タイプの使用に合わせて調整されたAPIを有効にするため、「クライアントライブラリ」と「ワイヤープロトコル」でのみ区別されています。

→Prometheus →DOCS →CONCEPTS →METRIC TYPES

■①カウンタ

カウンタは単一の累積メトリックとして「単調増加カウンタ値」のみ扱えます。

ユースケース

・処理された要求カウント
・完了したタスクカウント
・エラー数カウント など

「減少する可能性のある値」の計測は不可

カウンタは「実行中のプロセスの数」などの減少する可能性のある値には使用できません。

このような場合には「②ゲージ」を使用します。

■②ゲージ

ゲージは、任意に数値の上下を表現できるメトリックです。

数値上下できる「カウント」のように使用できます。

ユースケース

・温度
・現在のメモリ使用量
・同時リクエスト数 など

■③ヒストグラム

リクエスト期間などのヒストグラム観測を実施できます。

すべての観測値の合計も提供します。

分位点計算

「histogram_quantile()関数」を使用して、ヒストグラムまたはヒストグラム集計から分位点を計算できます。

ヒストグラムは「Apdexスコア計算」などにも適しています。

■④サマリ

「観測の合計数」や「すべての観測値の合計」などを提供します。

スライディングタイムウィンドウで設定可能な変位値を計算できます。

インスタンスとジョブ

■概要

インスタンス

Prometheusの用語として、スクレイピングできるエンドポイントは「インスタンス」と呼ばれ、通常は単一のプロセスに対応します。

ジョブ

「ジョブ」は、スケーラビリティや信頼性のために複製されたプロセスを持つインスタンスのコレクションを指します。

→Prometheus →DOCS →CONCEPTS →JOBS AND INSTANCES

■スクレイピング時ラベル添付機能

Prometheusはターゲットをスクレイピングする場合、スクレイピングされた時系列に対して、スクレイピングされたターゲットを識別するのに役立ついくつかのラベルを自動的に添付します。

「Prometheus」の主な特徴

単一サーバノード構成

■概要

Prometheusサーバは単一サーバノード構成で実行されます。

「ネットワークストレージ」「分散ストレージ」「リモートサービス」などの外部の依存関係はなく、ローカルストレージのみに依存します。外部システム故障時に影響を受けないメリットがあります。

Prometheusは、信頼性を考慮して設計されており、障害時に迅速に問題を診断できるシステムとして利用できます。

■構成ファイル

Prometheusは「コマンドラインフラグ」と「構成ファイル」を介して構成されます。

コマンドラインフラグ

コマンドラインフラグは不変なシステムパラメーターを構成します。

・ストレージの場所
・ディスクやメモリに保持するデータ量 など

構成ファイル

構成ファイルは以下を定義します。

・スクレイピングジョブ
・インスタンス関連
・ルールファイル定義 など

→Prometheus →DOCS →PROMETHEUS →CONFIGURATION

クライアントライブラリ

■概要

クライアントライブラリを使用すると、さまざまなサービスを簡単に計測できます。

10以上の言語がサポートされており、簡単にカスタムライブラリを実装できます。

インストルメンテーション追加

サービスを監視する前に、アプリケーションが記述されている言語に一致するPrometheusクライアントライブラリを選択し、インストルメンテーションを追加する必要があります。

これにより、アプリケーションインスタンスのHTTPエンドポイントを介して内部メトリックを定義および公開できます。

→Prometheus →DOCS →INSTRUMENTING →CLIENT LIBRARIES

■サポートライブラリ

オフィシャルライブラリ

・Go
・Java/Scala
・Python
・Ruby

サードパーティクライアントライブラリ

・Bash
・C++
・.NET/C#
・Node.js
・Perl
・PHP
・Rust など

Prometheusクエリ「PromQL」

Prometheusは、機能的クエリ言語「PromQL(Prometheus Query Language)」を提供しています。

ユーザーがリアルタイムで時系列データを選択および集約できるようにするためのクエリ言語です。

収集された時系列データをスライスおよびダイシングして「アドホックグラフ」「表形式データ」「アラート」などを生成できます。

→Prometheus →DOCS →PROMETHEUS →QUERYING PROMETHEUS

「Prometheus」の主な機能

可視化機能

■概要

Prometheusには、データを視覚化するための3つのモードがあります。

■①式ブラウザ

式ブラウザは、任意の式を入力した結果を「表形式表示」や「時間の経過とともにグラフ化」できます。

アドホッククエリやデバッグに利用できます。

→Prometheus →DOCS →VISUALIZATION →EXPRESSION BROWSER

■②「Grafana」統合

概要

データ時系列分析用ダッシュボードツール「Grafana」は、Prometheusクエリをサポートしているため、統合して利用できます。

→Prometheus →DOCS →VISUALIZATION →GRAFANA SUPPORT FOR PROMETHEUS

「Grafana」とは

Grafana(グラファナ)とは、オープンソースのデータ時系列分析用ダッシュボードツールです。

インフラやアプリケーションなどのさまざまなデータソースにアクセスして各種メトリクス情報を収集し、時系列データとして可視化できます。

リッチなグラフ描画によって一目見ただけでリアルタイムにステータスを把握できます。

→OSSxCloudNews →オープンソースの運用管理・運用自動化/Grafanaとは

■③コンソールテンプレート

概要

コンソールテンプレートを使用すると、Go言語テンプレートを使用して任意のコンソールを作成できます。

例えば、「タスクの数」「稼働中の数」「平均CPU使用率」「平均メモリ使用量」「クエリ/秒グラフ」などを1ページで把握できるコンソールを作成できます。

→Prometheus →DOCS →VISUALIZATION →CONSOLE TEMPLATES

ストレージ機能

Prometheusは、時系列を効率的なカスタム形式でメモリとローカルディスクに保存します。

スケーリングは機能的なシャーディングとフェデレーションによって実現されます。

オプションでリモートストレージシステムと統合することも可能です。

→Prometheus →DOCS →PROMETHEUS →STORAGE

アラート機能

■概要

アラートルールを使用すると、Prometheus式言語式に基づいてアラート条件を定義し、アラートの発生に関する通知を外部サービスに送信できます。

→Prometheus →DOCS →PROMETHEUS →ALERTING RULES

■サポート外部システム

次の外部システムがサポートされています。

・Email
・Generic Webhooks
・HipChat
・OpsGenie
・PagerDuty
・Pushover
・Slack など

 

参考元サイト

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

この記事のタグ一覧

おすすめの記事

【AIツール実験室】チャットAI対抗「添削能力」選手権🏆

AIツール実験室

2023.12.27

【AIツール実験室】チャットAI対抗「添削能力」選手権🏆

各チャットAIの「添削能力」について比較確認をしています。 「ChatGPT4と同等の添削能力を発揮した無料チャットAI」にご注目ください。 また、 ChatGPTカスタマイズ機能「GPTs」を利用して作成した GPTs文章添削機能「添削師匠さん✍️」を紹介しています。 課金勢は試しに使ってみてください。

AIツール関連 記事リストポータル

AIツール

2023.10.05

AIツール関連 記事リストポータル

AI 関連の記事をまとめたポータルページです。

【IT用語解説】「 デジタルヒューマン 」とは😊

IT用語解説

2024.01.26

【IT用語解説】「 デジタルヒューマン 」とは😊

【IT用語解説】「 デジタルヒューマン 」として、「デジタルヒューマンとは何か?」「どのようにして作成できるのか?」「私たちの世界にどのような影響を与えているのか?」などについて、まとめています。