Solaris 動的トレースガイド

プローブポイントの選択

DTrace では、開発者は、アプリケーションコード内 (完成したアプリケーションと共有ライブラリを含む) に静的プローブポイントを埋め込むことができます。それが開発環境であろうが本稼働環境であろうが、そのアプリケーションやライブラリを実行しているときはいつでも、これらのプローブを有効にすることができます。プローブを定義するときは、DTrace ユーザーコミュニティにとって、その意味が理解しやすいかどうかを考慮する必要があります。たとえば、要求の送付元クライアントと通信する Web サーバーに query-receive プローブ、その要求に応答する Web サーバーには query-respond プローブを定義するとします。ほとんどの DTrace ユーザーは、これらのプローブの意味を難なく理解できます。これらのプローブは、アプリケーションの下位の実装詳細レベルではなく、最上位の抽象レベルに対応しています。DTrace ユーザーは、これらのプローブを使って、要求の時間的分布を調べることができます。query-receive プローブの引数が URL 要求文字列である場合は、このプローブと io プロバイダを組み合わせて、ディスク入出力の大部分を生成している要求を特定できます。

プローブ名とプローブの位置を選択するときは、抽象化の安定性についても考慮する必要があります。アプリケーションの将来のリリースで実装が変更されても、引き続き使用できるプローブかどうか。どのシステムアーキテクチャにも通用するプローブか。あるいは、特定の命令セットに固有のプローブか。この章では、こうした判断をもとに静的トレースの定義を行なっていく方法を詳しく説明します。