WEB+DB PRESS の Vol.89 で、アプリケーションモニタリングの記事を書いたので是非読んでくださし。
2015/10/24 発売ですので、既に購入頂いてる方も多いと思います。
電子書籍版もありますので物理的な媒体に興味がない方は PDF を買って下さい。
今回の記事における対象読者について#
モニタリングの話をしてるんですけども、運用者向けでは無くて実装者とか方式設計的なことする人向けの記事です。ええ。
Java ではロギングライブラリにおけるカオスが非常に極まった状況にあります。それは、あらゆるアプリケーションにおいてとりあえずロギングは為されていると言う意味では非常に良い事であると言えます。
記事の内容について#
まずは、JMX はスバラシイけどアカン奴というその二面について、結構気を使って書いています。
僕はローカルディスクにためこんだデカいデータを気合いで外に向かってブン投げるのは、あんまり良くないやり方なんじゃないかなーって考えています。この辺はネットワークの帯域に気を使う環境で運用しているか、どうかが分かれ目なんですけども。
イントラネットの帯域はある日突然ぱっと増えたりはしないんですよね。
さりとて、ビッグデータ界隈にいないとしても、日々の運用データを適切に収集して分析したい的な話はある訳です。じゃあ、そういうのって機能要件かって言われるとどうも違います。
つまり、メトリクスの収集というのはある種の非機能要件なんです。ただ、最初からそれを念頭においた設計をしていないときめ細やかな対応はできないんですね。
そうすると、システムの改善活動がどうしてもインフラエンジニアドリブンになってしまうんですね。当然、それだと出来る事の範囲が著しく狭いって事になってしまいます。
んで、Netflix のServoを紹介しました。似たような Java のライブラリは他にこういうのがあります。
- https://github.com/dropwizard/metrics
- https://github.com/glowroot/glowroot
- https://github.com/erma/erma
- https://github.com/rhq-project/rhq
僕が知らない便利なものをご存じでしたら Twitter 辺りで教えて下さい。
最後に#
僕としては、こういう類のライブラリがちゃんとあってアプリケーションモニタリングとか、メトリックスの収集は凄い便利になっていますので、皆様頑張って技術以外の設計とか非機能要件定義とかマジ頑張って下さいと主張したいです。