Manuel de suivi dynamique Solaris

Effacement de groupements

Lors de l'utilisation de DTrace pour élaborer des scripts de surveillance simples, vous pouvez, de temps en temps, effacer les valeurs d'un groupement en utilisant la fonction clear(). Cette fonction prend comme unique paramètre un groupement. La fonction clear() efface uniquement les valeurs du groupement ; les clés du groupement sont conservées. Par conséquent, la présence d'une clé dans un groupement ayant une valeur associée de zéro indique que la clé avait une valeur différente de zéro qui a été ultérieurement définie sur zéro dans le cadre de l'exécution d'une fonction clear(). Pour rejeter à la fois les valeurs d'un groupement et ses clés, utilisez la fonction trunc(). Pour plus d'informations, reportez-vous à la section Troncature de groupements.

L'exemple suivant ajoute la fonction clear() à l'Exemple 9–1 :

#pragma D option quiet

BEGIN
{
	last = timestamp;
}

syscall:::entry
{
	@func[execname] = count();
}

tick-10sec
{
	normalize(@func, (timestamp - last) / 1000000000);
	printa(@func);
	clear(@func);
	last = timestamp;
}

Tandis que l'Exemple 9–1 affiche le taux d'appels système sur toute la durée de vie de l'appel dtrace, l'exemple précédent affiche le taux d'appels système uniquement sur les dix dernières secondes.