| 初回リリース | 2012年11月24日 |
|---|---|
| 安定版リリース | v2.54.1 [1]
/ 2024年8月27日 |
| リポジトリ | github.com/プロメテウス/プロメテウス |
| 書かれた | 行く |
| オペレーティング·システム | クロスプラットフォーム |
| タイプ | 時系列データベース |
| ライセンス | Apache ライセンス 2.0 |
| Webサイト | プロメテウス |
Prometheusは、イベント監視とアラートに使用される無料のソフトウェアアプリケーションです。[2] HTTPプルモデルを使用して構築された時系列データベース(高次元性を可能にする)にメトリックを記録し、柔軟なクエリとリアルタイムアラートを備えています。[3] [4]このプロジェクトはGoで書かれており、Apache 2ライセンスの下でライセンスされており、ソースコードはGitHubで入手できます。[5]また、 KubernetesやEnvoyとともに、Cloud Native Computing Foundationの卒業プロジェクトでもあります。[6]
歴史
Prometheusは2012年にSoundCloudで開発が始まりました。 [7]同社は、既存のメトリクスと監視ツール(StatsDとGraphiteを使用)がニーズに不十分であることに気付きました。具体的には、多次元データモデル、操作のシンプルさ、スケーラブルなデータ収集、強力なクエリ言語など、Prometheusが満たすべきニーズをすべて1つのツールにまとめたものでした。[8]このプロジェクトは最初からオープンソースであり、明示的に発表されていなかったにもかかわらず、BoxeverとDockerのユーザーにも使用され始めました。[8] [9] Prometheusは、Googleで使用されていた監視ツールBorgmonに触発されました。[10] [11]
2013年までに、PrometheusはSoundCloudの制作監視に導入されました。[8]公式発表は2015年1月に行われました。[8]
2016年5月、Cloud Native Computing FoundationはKubernetesに続く2番目のインキュベートプロジェクトとしてPrometheusを承認しました。これを発表したブログ記事には、このツールがDigitalOcean、Ericsson、CoreOS、Weaveworks、Red Hat、Googleなど多くの企業で使用されていると書かれていました。[12]
Prometheus 1.0は2016年7月にリリースされました。[13]その後のバージョンは2016年から2017年にかけてリリースされ、2017年11月にPrometheus 2.0がリリースされました。[14]
2018年8月、クラウドネイティブコンピューティング財団は、Prometheusプロジェクトが卒業したことを発表しました。[6]
Prometheus に焦点を当てたさまざまな会議が開催されました。
建築
Prometheus を使用した典型的な監視プラットフォームは、複数のツールで構成されています: [引用が必要]
- 通常、ローカル メトリックをエクスポートするために、監視対象ホスト上で複数のエクスポータが実行されます。
- メトリックを一元管理して保存するための Prometheus。
- Alertmanager [15]はこれらの指標に基づいてアラートをトリガーします。
- ダッシュボードを作成するためのGrafana。
- PromQL は、ダッシュボードとアラートを作成するために使用されるクエリ言語です。
データ保存形式
Prometheus のデータはメトリックの形式で保存され、各メトリックには参照やクエリに使用される名前があります。各メトリックは、任意の数のキー = 値のペア (ラベル) でドリルダウンできます。ラベルには、データ ソース (データの送信元サーバー) に関する情報や、HTTP ステータス コード (HTTP 応答に関連するメトリックの場合)、クエリ メソッド (GET と POST)、エンドポイントなどのアプリケーション固有の内訳情報を含めることができます。任意のラベル リストを指定し、それらに基づいてリアルタイムでクエリを実行できるため、Prometheus のデータ モデルは多次元と呼ばれます。[16] [8] [9]
Prometheusはデータをローカルディスク上に保存するため、高速なデータ保存と高速なクエリが可能になります。[8]メトリックをリモートストレージに保存する機能もあります。[17]
データ収集
Prometheusは時系列の形式でデータを収集します。時系列はプルモデルを通じて構築されます。Prometheusサーバーは、特定のポーリング頻度でデータソース(エクスポーターと呼ばれることもあります)のリストを照会します。各データソースは、Prometheusによって照会されたエンドポイントでそのデータソースのメトリックの現在の値を提供します。その後、Prometheusサーバーはデータソース全体のデータを集約します。[8] Prometheusには、データソースとして使用する必要があるリソースを自動的に検出するメカニズムがいくつかあります。[18]
プロムQL
Prometheus は、ユーザーがデータを選択して集計できるようにする独自のクエリ言語 PromQL (Prometheus Query Language) を提供します。PromQL は、時系列データベースと連携して動作するように特別に調整されているため、時間関連のクエリ機能を提供します。例としては、rate() 関数、インスタント ベクトル、およびクエリされた各時系列に対して多くのサンプルを提供できる範囲ベクトルがあります。[19] Prometheus には、 PromQLコンポーネントが中心となる4 つの明確に定義されたメトリック タイプがあります。4 つのタイプは次のとおりです。[20]
- ゲージ
- カウンタ
- ヒストグラム
- まとめ
アラートと監視
アラートの設定は Prometheus で指定でき、アラートをトリガーするために特定の期間維持する必要がある条件を指定します。アラートがトリガーされると、アラートは Alertmanager サービスに転送されます。Alertmanager には、アラートを無音にしたり、電子メール、Slack 、 PagerDutyなどの通知サービスに転送したりするロジックを含めることができます。[21] Microsoft Teams [22]などの他のメッセージング システムは、外部統合のメカニズムとして Alertmanager Webhook Receiver を使用して設定できます。[23]また、Prometheus Alerts を使用すると、Alert Manager でターゲットを設定する必要がなく、Android デバイスで直接アラートを受信できます。[24]
ダッシュボード
Prometheusは本格的なダッシュボードとして意図されたものではありません。特定のクエリをグラフ化するために使用できますが、本格的なダッシュボードではなく、ダッシュボードを生成するにはGrafanaに接続する必要があります。これは、セットアップの複雑さが増すため、欠点として挙げられています。[25]
相互運用性
Prometheusはホワイトボックス監視を推奨しています。アプリケーションは、Prometheusによって定期的に収集される内部メトリックを公開(エクスポート)することが推奨されています。[26]メトリックを提供するために、さまざまなアプリケーション用のエクスポーターとエージェントがいくつか利用可能です。[27] Prometheusは、移行時の相互運用性を可能にするために、 Graphite、StatsD、SNMP、JMX 、およびCollectDなどの監視および管理プロトコルをサポートしています。
Prometheusはプラットフォームの可用性と基本的な操作に重点を置いています。[28]メトリクスは通常数週間保存されます。長期保存の場合は、メトリクスをリモートストレージにストリーミングすることができます。[17]
OpenMetricsへの標準化
Prometheusの表示形式をOpenMetricsとして知られる標準に推進する取り組みがあります。[29] InfluxDataのTICKスイート、 [30] InfluxDB、Google Cloud Platform、[31] DataDogなどの製品がこの形式を採用しています。[32]
使用法
Prometheusは、開発されたSoundCloudで社内システムを監視するために最初に使用されました。[8] Cloud Native Computing Foundationには、Prometheusを使用している他の企業のケーススタディが多数あります。これには、デジタルホスティングサービスのDigitalOcean、[33]デジタルフェスティバルのDreamHack、[34]電子メールと連絡先の移行サービスのShuttleCloudが含まれます。[35]また、Pandora Radioは、データパイプラインを監視するためにPrometheusを使用していると述べています。[36]
GitLabは、 GitLabのメトリクスをPrometheusにエクスポートするためのPrometheus統合ガイドを提供しており[37]、バージョン9.0以降ではデフォルトで有効化されています[38]。
参照
参考文献
- ^ Github の最新リリース
- ^ 「概要」。prometheus.io。
- ^ ジェームズ・ターンブル(2018年6月12日)。プロメテウスによるモニタリング。ターンブル・プレス。ISBN 978-0-9888202-8-9。
- ^ 「Prometheus: メトリクスから洞察へ。最先端のオープンソース監視ソリューションでメトリクスとアラートを強化」 。 2018年12月26日閲覧。
- ^ 「Prometheus」. GitHub . 2018年12月26日閲覧。
- ^ ab Evans, Kristen (2018 年 8 月 9 日)。「Cloud Native Computing Foundation が Prometheus 卒業を発表」 。2018年12 月 26 日閲覧。
- ^ ブライアン・ブラジル(2018年7月9日)。Prometheus: Up & Running: インフラストラクチャとアプリケーションのパフォーマンス監視。O'Reilly Media。p. 3。ISBN 978-1-4920-3409-4。
- ^ abcdefgh ヴォルツ、ユリウス;ラーベンシュタイン、ビョルン(2015年1月26日)。 「プロメテウス: SoundCloud でのモニタリング」。サウンドクラウド。
- ^ ab 「Monitor Docker Containers with Prometheus」。5π Consulting。2015年1月26日。2019年1月3日時点のオリジナルよりアーカイブ。2018年12月26日閲覧。
- ^ マーフィー、ニール、ベイヤー、ベッツィ、ジョーンズ、ジェニファー・ペトフ (2016)。サイト信頼性エンジニアリング: Google の運用システム運用方法。オライリー メディア。ISBN 978-1491929124Borgmon は Google 内部にとどまりますが、
アラートを生成するためのデータ ソースとして時系列データを扱うというアイデアは、Prometheus などのオープン ソース ツールを通じて誰でも利用できるようになりました...
- ^ Volz, Julius (2017 年 9 月 4 日)。「PromCon 2017: Conference Recap」 – YouTube 経由。
私は 2012 年に Google から SoundCloud に入社しました。当時は、このような動的な環境で機能する監視ツールがまだありませんでした。Google が独自の内部クラスタ スケジューラで監視を行っていた方法が懐かしく感じられ、それにとても感銘を受け、最終的に独自のオープン ソース ソリューションを構築することにしました。
- ^ 「Cloud Native Computing Foundation が Prometheus を 2 番目のホスト プロジェクトとして承認」 。Cloud Native Computing Foundation。2016年 5 月 9 日。2018年12 月 26 日閲覧。
- ^ 「Prometheus 1.0 が登場」。Cloud Native Computing Foundation。2016年 7 月 18 日。2018 年12 月 26 日閲覧。
- ^ 「Prometheus 2.0.0 の新機能」。Robust Perception。2017 年 11 月 8 日。2018年12 月 26 日閲覧。
- ^ “Alertmanager”. GitHub . 2022年5月17日.
- ^ 「データモデル」。Prometheus 。2018年12月26日閲覧。
- ^ ab 「統合 - Prometheus」。prometheus.io。
- ^ 「Prometheus: メトリックを収集し、アラートとグラフの Web UI を提供します」。2017 年 3 月 18 日。2018年12 月 26 日閲覧。
- ^ 「Prometheus のクエリ」 。2019年11 月 4 日閲覧。
- ^ 「メトリックタイプ」。prometheus.io 。 2024年6月29日閲覧。
- ^ Dubey, Abhishek (2018 年 3 月 25 日). 「AlertManager と Prometheus の統合」 . 2018 年12 月 26 日閲覧。
- ^ Danuka, Praneeth (2020 年 3 月 8 日)。「Prometheus を使用したクラウドネイティブ アプリケーションのアラート」 。2020年10 月 18 日閲覧。
- ^ 「統合 | Prometheus」。
- ^ 「Prometheusアラート - Google Playのアプリ」。
- ^ Ryckbosch, Frederick (2017年7月28日). 「Prometheusモニタリング:長所と短所」。2018年12月26日閲覧。
- ^ Prometheus. 「インストルメンテーション - Prometheus」。prometheus.io。
- ^ 「エクスポーター」。prometheus.io。
- ^ Prometheus. 「Prometheus - 監視システムと時系列データベース」。prometheus.io。
- ^ “OpenMetrics”. GitHub . 2018-11-13.
- ^ "InfluxData の Telegraf". GitHub。 2018年12月25日。
- ^ 「Stackdriver Kubernetes モニタリングの発表」。
- ^ 「DataDogHQ」.
- ^ Evans, Kristen (2017 年 2 月 28 日)。「Prometheus ユーザー プロファイル: DigitalOcean による Prometheus の利用方法」。Cloud Native Computing Foundation。2018年12 月 26 日閲覧。
- ^ Evans, Kristen (2016 年 8 月 24 日)。「Prometheus ユーザー プロファイル: 世界最大のデジタル フェスティバル DreamHack の監視」。Cloud Native Computing Foundation。2018年12 月 26 日閲覧。
- ^ Evans, Kirsten (2017 年 5 月 17 日)。「Prometheus ユーザー プロファイル: ShuttleCloud が Prometheus が小規模スタートアップに適している理由を説明します」。Cloud Native Computing Foundation。2018年12 月 26 日閲覧。
- ^ Haidrey, Ace (2018 年 3 月 15 日)。「Apache Airflow at Pandora」。Pandora でのエンジニアリング。2018年12 月 26 日閲覧。
- ^ 「GitLab Prometheus メトリクス」。2018年12 月 26 日閲覧。
- ^ 「サブグループとデプロイボードを備えた GitLab 9.0 がリリースされました」。GitLab。2017 年 3 月 22 日。
さらに読む
- Russ, McKendrick (2015-12-15) 。Docker の監視: この特別ガイドの助けを借りて、さまざまなネイティブおよびサードパーティのツールを使用して Docker コンテナーとそのアプリを監視します。バーミンガム、英国。ISBN 9781785885501. OCLC 933610431.
{{cite book}}: CS1 メンテナンス: 場所が見つかりません 発行者 (リンク) - JOSEPH., HECK (2018).開発者のための Kubernetes コンテナを活用してアプリケーションを開発、テスト、デプロイします。Kubernetes を使用して開発します。[Sl]: PACKT PUBLISHING. ISBN 978-1788830607. OCLC 1031909876.
- バーンズ、ブレンダン (2018-02-20)。分散システムの設計: スケーラブルで信頼性の高いサービスのためのパターンとパラダイム(初版)。セバストポル、カリフォルニア州。ISBN 9781491983614. OCLC 1023861580.
{{cite book}}: CS1 メンテナンス: 場所が見つかりません 発行者 (リンク) - Martin., Helmich (2017). Cloud Native programming with Golang マイクロサービスベースの高性能 Web アプリをクラウド向けに Go で開発する。Andrawos, Mina., Snoeck, Jelmer. バーミンガム: Packt Publishing. ISBN 9781787127968. OCLC 1020029257.
- Alok, Shrivastwa (2018-02-23)。『アーキテクトのためのハイブリッドクラウド: AWS と OpenStack を使用した堅牢なハイブリッドクラウドソリューションの構築』。バーミンガム、イギリス。ISBN 9781788627986. OCLC 1028641698.
{{cite book}}: CS1 メンテナンス: 場所が見つかりません 発行者 (リンク) - Kaewkasi, Chanwit (2016). Swarm によるネイティブ Dockerクラスタリング。ISBN 978-1786469755。
外部リンク
- プロメテウス: YouTubeのドキュメンタリー
