インストルメンテーションは、多くの方にとって聞きなれない言葉ですが、 ITの世界にいる方であればきっと思い当たることがある概念だと思います。 計装と訳されることもある、このインストルメンテーションは、 一言で言うと計測器を装備することです。
例えば、アプリケーションがデータベースから3秒以内にデータを抽出する 必要がある場合、外部から3秒以内に処理されているかどうかを 測定することは非常に困難です。しかし、アプリケーションの コードに時間を測定するロジックを組み込むことは比較的簡単にできます。 このように、アプリケーションなどの構成アイテムに、何かを計測する 仕組みを装備することをインストルメンテーション(計装)と言います。
インストルメンテーションは、イベント管理にとって重要なテクニックです。 運用にとって必要なインフラストラクチャの詳細情報を、自動的に収集することが できるからです。ただ、運用のチームだけでは取り組みことができないテーマでもあります。 理想は、アプリケーションの設計者が運用のシーンを思い浮かべて、 運用担当者にとって有用な情報を知らせるように設計することが一番良いわけですが、 どんなに優れた設計者であろうとも将来のあらゆる可能性まで織り込むことは難しいでしょう。
むしろ、運用の実践の中から設計に対してフィードバックすることの方が現実的です。 変更にはリスクやコストが伴いますので、アプリケーションのコードやインフラストラクチャを 監視する仕組みを変えることは簡単なことではありません。
それでもなお運用上の利点が大きい場合には、対象となる構成アイテムの 何をどのように監視して、どのようにコントロールするかを改めて検討し直すことが必要かもしれません。
先にあげた例で言えば、データベースの処理に3秒以上かかっている頻度をみて キャパティの見直しをすれば、常にデータベースの処理状況を監視する必要がなくなるかもしれません。 ただ、不用意なインストルメンテーションは、深刻なパフォーマンスの低下を 引き起こすことがあるので注意が必要です。
次回は、2010/07/10 の予定です。