summaryrefslogtreecommitdiffstats
path: root/cddl/contrib/dtracetoolkit/dist/System/sar-c.d
diff options
context:
space:
mode:
Diffstat (limited to 'cddl/contrib/dtracetoolkit/dist/System/sar-c.d')
-rwxr-xr-xcddl/contrib/dtracetoolkit/dist/System/sar-c.d101
1 files changed, 101 insertions, 0 deletions
diff --git a/cddl/contrib/dtracetoolkit/dist/System/sar-c.d b/cddl/contrib/dtracetoolkit/dist/System/sar-c.d
new file mode 100755
index 0000000..ef63198
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/dist/System/sar-c.d
@@ -0,0 +1,101 @@
+#!/usr/sbin/dtrace -s
+/*
+ * sar-c.d - sar -c demo in DTrace.
+ * Written using DTrace (Solaris 10 3/05).
+ *
+ * This has been written to demonstrate fetching similar data as sar -c
+ * from DTrace. This program is intended as a starting point for other
+ * DTrace scripts, by beginning with familiar statistics.
+ *
+ * $Id: sar-c.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE: sar-c.d
+ *
+ * FIELDS:
+ * scall/s System calls
+ * sread/s reads
+ * swrit/s writes
+ * fork/s forks
+ * exec/s execs
+ * rchar/s read characters
+ * wchar/s write characters
+ *
+ * IDEA: David Rubio, who also wrote the original.
+ *
+ * NOTES:
+ * As this program does not use Kstat, there is no summary since boot line.
+ *
+ * SEE ALSO: sar(1)
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License"). You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at Docs/cddl1.txt
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 12-Jun-2005 Brendan Gregg Created this.
+ * 12-Jun-2005 " " Last update.
+ */
+
+#pragma D option quiet
+
+inline int SCREEN = 21;
+
+/*
+ * Initialise variables
+ */
+dtrace:::BEGIN
+{
+ scall = 0; sread = 0; swrit = 0; fork = 0; exec = 0;
+ rchar = 0; wchar = 0;
+ lines = SCREEN + 1;
+}
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN,
+tick-1sec
+/lines++ > SCREEN/
+{
+ printf("%-20s %7s %7s %7s %7s %7s %8s %8s\n",
+ "Time", "scall/s", "sread/s", "swrit/s", "fork/s",
+ "exec/s", "rchar/s", "wchar/s");
+ lines = 0;
+}
+
+/*
+ * Probe events
+ */
+syscall:::entry { scall++; }
+sysinfo:::sysread { sread++; }
+sysinfo:::syswrite { swrit++; }
+sysinfo:::sysfork { fork++; }
+sysinfo:::sysvfork { fork++; }
+sysinfo:::sysexec { exec++; }
+sysinfo:::readch { rchar += arg0; }
+sysinfo:::writech { wchar += arg0; }
+
+/*
+ * Print output line
+ */
+profile:::tick-1sec
+{
+ /* print line */
+ printf("%20Y %7d %7d %7d %4d.00 %4d.00 %8d %8d\n",
+ walltimestamp, scall, sread, swrit, fork, exec, rchar, wchar);
+
+ /* clear counters */
+ scall = 0; sread = 0; swrit = 0; fork = 0; exec = 0;
+ rchar = 0; wchar = 0;
+}
OpenPOWER on IntegriCloud