DTrace 集積体の一般構文は、次のとおりです。
@name[ keys ] = aggfunc( args );
この一般構文では、変数は次のように定義されています。
集積体の名前。先頭に @ 文字が付きます。
D 式をコンマで区切って指定します。
DTrace 集積関数のいずれか。
その集積関数に対応する引数をコンマで区切って指定します。
関数名 |
引数 |
結果 |
---|---|---|
count |
なし |
count 関数が呼び出される回数。 |
sum |
スカラー式 |
指定された式の合計値。 |
avg |
スカラー式 |
指定された式の算術平均。 |
min |
スカラー式 |
指定された式のうちもっとも小さい値。 |
max |
スカラー式 |
指定された式のうちもっとも大きい値。 |
lquantize |
スカラー式、下限値、上限値、ステップ値 |
指定された式の値から成る、指定された範囲の線形度数分布。この集積関数は、指定された式より小さい、最大バケット内の値を増分します。 |
quantize |
スカラー式 |
指定された式の値の二乗度数分布。この集積関数は、指定された式より小さい、2 のべき乗の最大バケット内の値を増分します。 |
次に示すのは、count 集積関数を使って、プロセスごとに write(2) システムコールの数をカウントする例です。この集積体は、dtrace コマンドが終了するまで、一切のデータを出力しません。出力される内容は、dtrace コマンドがアクティブであったときに収集されたデータの概要です。
# cat writes.d #!/usr/sbin/dtrace -s syscall::write:entry] { @numWrites[execname] = count(); } # ./writes.d dtrace: script 'writes.d' matched 1 probe ^C dtrace 1 date 1 bash 3 grep 20 file 197 ls 201 |