システム管理ツール「Prometheus」が「Prometheus Agent」モードを提供、エッジ環境やIoTなど限られたリソースでも利用可能に

Kubernetesをはじめとするクラウドネイティブを実現するオープンソースソフトウェアの開発を推進する「Cloud Native Computing Foundation」は、システム管理ツール「Prometheus」の新機能「Prometheus Agent」モードを発表しました

Prometheusは、Prometheusサーバが監視対象となるアプリケーションなどにアクセスしてさまざまなメトリクスを収集し、収集したメトリクスを分析してアラートなどを発することで、システム監視を行うツールです。

Prometheusがさまざまなアプリケーションにアクセスする仕組みであることから、Pullベースの監視ツールに分類されています。

Prometheusはメトリクス収集、分析、アラートなどさまざまな機能を単体で備えていることは便利さにつながる一方で、その実行には多くのコンピュータリソースが必要なことと、そしてPrometheus自体がステートフルなアプリケーションとして振る舞うという2つの側面がありました。

今回発表されたPrometheus Agentモードは、Prometheusの機能を絞ることで軽くてステートレスなアプリケーションとし、エッジ環境やIoTなどのコンピューティングリソースが限られた環境でもPromethesが利用できるようにしたものです。

下記はCloud Native Computing Foundationのブログ「Prometheus announces an Agent to address a new range of use cases」からの引用です。

Prometheus Agent is a specialized mode that focuses on three parts that have made the success of Prometheus: service discovery, scraping, and remote writing. Built into Prometheus itself, Prometheus Agent behaves like a normal Prometheus server: it is a pull-based mechanism, scraping metrics over HTTP and replicating the data to remote write endpoints.

Prometheus Agent は、Prometheus の成功をもたらした3つの要素、サービスディスカバリー、スクレイピング、リモート書き込みにのみフォーカスした専用モードです。Prometheus自身に組み込まれ、Prometheus Agentは通常のPrometheusサーバーのように動作します。つまりPull ベースの仕組みでHTTPによりメトリクスをスクレイピングし、そのデータをリモート書き込みエンドポイントにレプリケートします。

Prometheus Agentは自身でメトリクスを保持せず、別のPrometheusサーバへ受け渡すことにより、ステートレスで軽い動作を実現しているわけです。

さらにPrometheus開発チームは将来的にこの軽くてステートレスになったPrometheus Agentを利用して、ターゲットの増減に合わせて、ターゲットからのメトリクスを取得するPrometheusのデプロイ数自体も動的にスケールアップ、スケールダウンできるようにしたいと説明しています。