DigitalOceanとのインタビュー

2016年9月14日筆者: ブライアン・ブラジル

Prometheusユーザーへのインタビューシリーズの次回は、DigitalOceanがPrometheusをどのように使用しているかについて語ります。カルロス・アメディーは、PromCon 2016でロールアウトの社会的側面についても話しました。

ご自身とDigitalOceanの事業について教えていただけますか?

私の名前はイアン・ハンセンで、プラットフォームメトリクスチームに所属しています。DigitalOceanは、シンプルなクラウドコンピューティングを提供しています。これまでに、13のリージョンで2000万個のDroplets(SSDクラウドサーバー)を作成してきました。また、最近では新しいBlock Storage製品もリリースしました。

DigitalOcean logo

Prometheus導入以前の監視経験はどのようなものでしたか?

Prometheus以前は、GraphiteOpenTSDBを運用していました。Graphiteは小規模なアプリケーションに使用され、OpenTSDBはCollectdを介してすべての物理サーバーからメトリクスを収集するために使用されていました。Nagiosがこれらのデータベースからデータを取得してアラートをトリガーしていました。Graphiteはまだ使用していますが、OpenTSDBはもう運用していません。

Prometheusを検討することになったきっかけは何ですか?

OpenTSDBの運用を担当していましたが、メトリクスストームから保護することが難しく、不満を感じていました。時々、チームが新しい(非常に多くの情報を送信する)サービスを立ち上げ、それがクラスター全体の容量に影響を与え、私のSLAを損なうことがありました。

OpenTSDBには新しいメトリクスのブラックリスト/ホワイトリスト機能がありましたが、組織的なプロセス以外には、多くの情報を送信するサービスから保護するための良い方法がありませんでした(これは変更/強制するのが困難でした)。他のチームは、当時のクエリ言語や利用可能な可視化ツールに不満を感じていました。ジュリアス・ヴォルツとプッシュ型とプル型のメトリクスシステムについて話していたとき、自分が何を、どのくらいの頻度でプルするかを決定できることで、SLAを本当にコントロールできるという点に魅力を感じ、Prometheusを試してみたいと思いました。さらに、クエリ言語が本当に気に入りました。

どのように移行しましたか?

私たちはCollectdを介してOpenTSDBにメトリクスを収集していました。既存のCollectdセットアップと並行してNode Exporterをインストールすることで、Prometheusの実験を開始できました。また、Dropletメトリクスを公開するためのカスタムエクスポーターも作成しました。すぐに、OpenTSDBサービスと同等の機能が揃い、Collectdを停止し、その後OpenTSDBクラスターも停止しました。

人々はPrometheusとそれに付属する可視化ツールを本当に気に入りました。突然、私の小さなメトリクスチームは、人々を満足させるのに十分な速さで対応できないバックログを抱えることになり、人々のサービスのためにPrometheusを提供・維持する代わりに、他のチームができるだけ簡単にPrometheusサーバーを運用し、社内で使用している一般的なエクスポーターも運用できるようにするためのツール作成を検討しました。

一部のチームはAlertmanagerを使い始めていますが、既存の監視ツールからPrometheusをプルするという概念はまだ残っています。

移行後、どのような改善が見られましたか?

ハイパーバイザーマシンに関する洞察が向上しました。CollectdとNode Exporterから得られるデータはほぼ同じですが、私たちのgolang開発者チームにとっては、各ハイパーバイザーで実行しているサービスに特化したデータを公開する新しいカスタムエクスポーターを作成する方がはるかに簡単です。

より良いアプリケーションメトリクスを公開しています。後で正しく集計できるPrometheusメトリクスを作成する方法を学び、教えるのが簡単になりました。Graphiteでは、ドット区切りの名前が正しく構造化されていないために、後で特定の方法で集計できないメトリクスを簡単に作成してしまうことがありました。

アラートの作成は、以前よりもはるかに迅速でシンプルになり、さらに慣れ親しんだ言語で行えます。これにより、チームは自分たちが知っていて理解しているサービスに対して、迅速に反復することでより良いアラートを作成できるようになりました。

DigitalOceanとPrometheusの将来についてどうお考えですか?

DigitalOceanのチームにとって、メトリクス収集を可能な限り簡単にする方法を引き続き検討しています。現在、各チームは自分たちが関心のある事柄について独自のPrometheusサーバーを運用しており、これにより、これまで迅速には得られなかった可観測性を獲得できました。しかし、すべてのチームがPrometheusの運用方法を知る必要はありません。私たちは、Prometheusを可能な限り自動化し、チームが自分たちのサービスやデータベースでどのようなクエリやアラートが必要かということに集中できるようにするために何ができるかを検討しています。

また、私たちがツールを作成し、人々に使用方法を教えてきたPrometheusクエリ言語を保持しつつ、長期的なデータストレージを持つためにVulcanも作成しました。