人間とウェブの未来

「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。

Webサーバの仮想ホスト単位のリソース使用量をFluentd+Norikra+GrowthForecastでグラフ化

ご存知の通り、ApacheのVirtualHost(以下vhost)、所謂、Webサーバの仮想ホストは単一のApacheで複数のホストを処理しています。そのため、複数のvhostを含めたCPU使用量といったリソース使用量をグラフ化することは簡単なのですが、vhost単位となると各vhostへのリクエスト単位でのリソースを計測しておかないとグラフ化することはできません。そういう意味でvhost単位でリソース使用量をグラフ化しようとすると一気に敷居が上がってしまいます。

また、uid毎に実行プロセスを分離しておけば、pacctといったプロセスアカウンティング機能でuidのカウントはできますが、リアルタイムの計測(秒とか分のオーダー)にはコストが高かったり、vhostで提供しているコンテンツによっては、Apache権限で配信されているものもある(静的コンテンツ)ため、正確に計測することは難しくなります。

一方で、ログをリアルタイムで集計して一定期間内で計測してグラフ化するツールとしては、FluentdやNorikra、GrowthForecastといった素晴らしいプロダクトがすでにあり、それらをうまく組み合わせてこれを実現したいという欲求が膨れ上がってきました。そう考えると、リクエスト単位でリソースを計測できれば、すぐに実装できそうです。

というわけで、思いついたらまずは手を動かしてみようということで、プロトタイプ実装をしてみました。

続きを読む