1History - History of the DTraceToolkit
2
3------------------------------------------------------------------------------
420-Apr-2005	Brendan Gregg	Idea
5	For a while I had thought that a DTrace toolkit would be a nice 
6	idea, but on this day it became clear. I was explaining DTrace to 
7	an SSE from Sun (Canberra, Australia), who had a need for using 
8	DTrace but didn't have the time to sit down and write all the
9	tools he was after. It simply made sense to have a DTrace toolkit
10	that people could download or carry around a copy to use. Some
11	people would write DTrace tools, others would use the toolkit.
12------------------------------------------------------------------------------
1315-May-2005	Brendan Gregg	Version 0.30
14	I had discussed the idea of a DTrace toolkit with the Sun PAE guys in 
15	Adelaide, Australia. It was making more sense now. It would be much
16	like the SE Toolkit, not just due to the large number of sample 
17	scripts provided, but also due to the role it would play: few people
18	wrote SE Toolkit programs, more people used it as a toolkit. While
19	we would like a majority of Solaris users to write DTrace scripts, 
20	the reality is that many would want to use a prewritten toolkit.
21	Today I created the toolkit as version 0.30, with 11 main directories,
22	a dozen scripts, man pages and a structure for documentation.
23------------------------------------------------------------------------------
2416-May-2005	Brendan Gregg	OneLiners
25	I've been using the toolkit for a day now (wow!), and have noticed
26	a few problems I've been fixing. One of them was the dtrace oneliners.
27	I have them in two files, Docs/oneliners.txt and the examples in
28	Docs/Examples/oneliners_examples.txt. The problem is that when I'm
29	looking for a script, I'm looking in Docs/Commands - a list of the
30	seperate script files, or I'm doing an ls or find. Ok, so I've now
31	made each one liner a seperate script. This seems at first pretty
32	silly since they are oneliners and shouldn't deserve an entire script
33	each, but I've found having them as seperate scripts makes them far 
34	easier to find and use. The scripts and man page for each script do 
35	point out the fact that it's a one liner. 
36------------------------------------------------------------------------------
3717-May-2005	Brendan Gregg	Version 0.33
38	Version 0.33 with 33 scripts. Maybe I should make the version number
39	equal the script count. :) I just finished dtruss, dapptrace and
40	dappprof.
41------------------------------------------------------------------------------
4208-Jun-2005	Brendan Gregg	Name changes.
43	I've renamed Docs/Commands to Docs/Contents. I found myself typing
44	"more Docs/Contents" by mistake a lot. ok, maybe it made more sense
45	to call it Contents after all. I've also made a symlink to it called
46	Index.
47------------------------------------------------------------------------------
4808-Jun-2005	Brendan Gregg	Version 0.35
49	Version 0.35 with 35 scripts. Also touched up procsystime and some
50	man pages. Added the CDDL version 1.0.
51------------------------------------------------------------------------------
5209-Jun-2005	Brendan Gregg	Version 0.42
53	Added 7 more scripts.
54------------------------------------------------------------------------------
5514-Jun-2005	Brendan Gregg	Version 0.57
56	Added heaps of new scripts. Now at 57 scripts.
57------------------------------------------------------------------------------
5817-Jun-2005	Brendan Gregg	Version 0.61
59	Restyled many commands.
60------------------------------------------------------------------------------
6128-Jun-2005	Brendan Gregg	Version 0.70
62	Added several commands including dexplorer. Developed a few useful
63	variants of classic scripts while writing dexplorer, and have added
64	them to the toolkit (I kept wanting to run them individually but 
65	not have to run an entire dexplorer).
66------------------------------------------------------------------------------
6725-Jul-2005	Brendan Gregg	Version 0.77
68	Added tcpsnoop.d, tcpsnoop, tcptop.  Because of their addition I have
69	dropped tcpwbytes.d and tcpwlist.  These are complex scripts, but they
70	track TCP in an accurate manner. However! also because they are 
71	complex scripts, I expect they will require maintainence for newer
72	versions of [Open]Solaris, as various probes may change. They will
73	become much more stable once a network provider has been added to
74	DTrace (which may be some time away).
75	Also added iotop, and updated a bunch of scripts. A lot of work went
76	into this version, although the version change doesn't reflect that
77	(I'm still keeping the version number == to number of scripts).
78	Also added rwsnoop, rwtop, and more.
79------------------------------------------------------------------------------
8026-Jul-2005	Brendan Gregg	Version 0.82
81	Many new scripts added, many updates. This is a major release.
82------------------------------------------------------------------------------
8317-Sep-2005	Brendan Gregg	Version 0.83
84	A few scripts have been updated so that they work better.
85	execsnoop, iosnoop, opensnoop and rwsnoop will be more responsive
86	(increased switchrate).
87------------------------------------------------------------------------------
8822-Sep-2005	Brendan Gregg	Version 0.84
89	Some updates, fixed some bugs (cputimes, cpudists). Added cpuwalk.d.
90------------------------------------------------------------------------------
9115-Nov-2005	Brendan Gregg	Sys Admin Magazine
92	Ryan Matteson wrote an article on the DTraceToolkit which has been
93	printed in Sys Admin Magazine, December 2005. It's quite good,
94	and made it as the feature article - which means it will be available
95	online for some time. Thanks Matty, and Sys Admin Magazine!
96	"Observing I/O Behavior with the DTraceToolkit"
97	http://www.samag.com/documents/sam0512a/
98------------------------------------------------------------------------------
9901-Dec-2005	Brendan Gregg	Version 0.88
100	Many scripts were updated. Added the Apps category. I had planned
101	to add some key scripts, but they haven't made it out of testing yet.
102------------------------------------------------------------------------------
10303-Dec-2005	Brendan Gregg	Version 0.89
104	Added nfswisard.d, fixed a minor bug with tcp* tools (see 
105	dtrace-discuss mailing list).
106------------------------------------------------------------------------------
10712-Jan-2006	Brendan Gregg	Version 0.92
108	Added a few scripts including rwbytype.d. Fixed several issues.
109------------------------------------------------------------------------------
11009-Apr-2006	Brendan Gregg	Solaris Internals 2nd Edition
111	In the past few months I have been contributing to Solaris Internals
112	2nd Edition. This book (now two volumes) is really amazing. The 2nd
113	volume does use the DTraceToolkit where appropriate, and covers loads
114	of useful topics. While writing and reviewing material for Solaris
115	Internals, I've had numerous new ideas for DTrace scripts. Not only
116	that, but a few people have managed to send me well styled, carefully
117	tested, well considered DTrace scripts for inclusion in the toolkit.
118------------------------------------------------------------------------------
11920-Apr-2006	Brendan Gregg	TCP bug fixed
120	Stefan Parvu sent me a bug for the tcp* scripts: on build 31+ they
121	error'd on the symbol SS_TCP_FAST_ACCEPT. This symbol was 
122	renamed to SS_DIRECT (I checked the code, they are used in the 
123	same way). Ironically, when I first wrote the scripts I had hardcoded
124	the value 0x00200000, then rewrote it "properly" by importing
125	the header files and using the symbol name. Had I been lazy and left
126	it hardcoded, the bug would never have eventuated. Not to worry,
127	it has returned to being hardcoded, so that it works on all builds
128	(until something else changes).
129------------------------------------------------------------------------------
13021-Apr-2006	Brendan Gregg	Restyled - again!
131	I've been writing the "DTraceToolkit Style Guide", to document
132	the style that these scripts obey. It is quite strict, and sets
133	the bar fairly high. I've been warned that it may cause very few
134	people to ever contribute scripts, which is fine. At some point
135	I'll carefully explain the mentality behind this, but in a nutshell:
136	Users on critical production servers expect the tools to be 
137	accurate, carefully tested, and cause no undocumented harm. 
138------------------------------------------------------------------------------
13922-Apr-2006	Brendan Gregg	Docs changes
140	The "Contrib" file was merged into the "Who" file. In hindsight
141	it is better to keep this data together than to split it up.
142------------------------------------------------------------------------------
14324-Apr-2006	Brendan Gregg	Version 0.96
144	The toolkit now contains 104 scripts, however I'll keep the version
145	number < 1.00 until the dust has settled on these new scripts.
146	There is some special significance with version 1.00, it would 
147	imply that every script had been tested for some time - not that
148	I've just added a few. 
149	There is a new main directory, FS for file system related scripts.
150	There are some interesting scripts in there, from or based on
151	Solaris Internals 2nd ed, vol 2.
152------------------------------------------------------------------------------
153
154