[erlang-questions] Announce: Erlang DTrace project proposal at OpenSolaris.org
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
Brian has posted an invitation to vote at: http://www.opensolaris.org/
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
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
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:
Apache web server has a DTrace module (http://prefetch.net/projects/
PostgreSQL has DTrace probes (http://www.postgresql.org/about/press/
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,
More information about the erlang-questions