[erlang-questions] Announce: Erlang DTrace project proposal at OpenSolaris.org

G Bulmer <>
Sat Dec 22 21:15:43 CET 2007


Tim Becker and I have initiated a project to implement Erlang DTrace.  
We've been setting things up for a week or more.

Brian Cantrill at Sun has been supportive of hosting the code at  
OpenSolaris, and has encouraged us to make a project proposal to  
opensolaris.org

Brian has posted an invitation to vote at: http://www.opensolaris.org/ 
jive/thread.jspa?threadID=47801&tstart=0

First of all, I hope that no one is offended by my slightly  
'marketing' words, It was past midnight when I wrote it, and the  
project application instructions encouraged me to write a 'sales  
pitch' to get community support, and attract other developers to join  
and contribute. I do apologise if you feel it undersells Erlang; that  
was definitely not my intention.

Secondly, the major benefit will come to systems who are using Erlang  
in an heterogeneous environment with other technologies. Within a  
pure Erlang environment, there is less benefit.

For an example of an heterogeneous technology architecture, consider  
an application which uses a web browser (executing lots of  
JavaScript), a web server, an application server, and SQL database.  
We might like to observe specific 'usecases' end-to-end, to identify  
latency, or resource usage, or debug a broken query.

That is possible with DTrace, but requires quite a lot of skill. It  
is possible to write a D script to observe and correlate events in  
the four applications, but, the default DTrace providers observe the  
binary program. So it can be very difficult to relate function calls  
in the VM binary code to the Erlang module functions and processes.  
(I should add DTrace does a good job for most kernel, filesystem and  
network events)

This type of obstacle has been overcome for some of the components an  
the example, where more helpful, 'application oriented' DTrace probes  
have been implemented.

While some of these may be a bit unpolished, here are some examples:
Mozzila have a JavaScript DTrace in the nightly firefox 3 (http:// 
www.opensolaris.org/os/project/mozilla-dtrace/)
Apache web server has a DTrace module (http://prefetch.net/projects/ 
apache_modtrace/index.html)
PostgreSQL has DTrace probes (http://www.postgresql.org/about/press/ 
presskit82.html.en)
Ruby/Java/Python/PHP: http://groups.google.com/group/erlang-dtrace/ 
web/reference

Our hope is that it will be much easier to use DTrace to observe  
Erlang applications (rather than the Erlang VM) within its complete  
application and OS environment as a result of this project.

We'd be very happy to receive comments, encouragement, assistance,  
participation or even Christmas presents from the Erlang community :-)

Merry Christmas, and Happy New Year,
G Bulmer




More information about the erlang-questions mailing list