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
|