Logging format for the cross-lang trace tool Changes from original proposal: - moved context attributes to Stage from Process (as attr elt) - renamed Script to Program - make Process, HttpRequest and Program top-level stages - allow mixed nesting of Stage, Transaction Nestable and Toplevel stages Stage + name. string (20 chars) + start time. milliseconds (8 bytes) + end time. milliseconds (8 bytes) + n * attr + n * stage + n * operation Process extends Stage + host. string (20 chars) + pid. integer (4 bytes) + result. 'pass' or 'fail' (1 byte) + 0/1 * exception pass fail HttpRequest extends Process + URLpath. string (250 chars) + method. string (8 chars) + sourceIP. integer (4 bytes) + sourcePort. integer (2 bytes) + n * cookies + n * URL parameters Program Extends Process - filePath. string (250 chars) - n * arguments - uid. integer (2 bytes) - gid. integer (2 bytes) Transaction extends Stage + completionTime. milliseconds (8 bytes) + status. 'comit' or 'abort' (1 byte) + 0/1 * exception commit abort Any operation Operation + start time. milliseconds (8 bytes) + end time. milliseconds (8 bytes) + 0/1 * exception + 0/1 * stack trace Database Operation extends Operation + statement text. (~50-500 characters) + row count. (8 bytes) + error code (8 bytes) + n * bind variables (~1 kb ?) Messaging Operation extends Operation - message text (1-5 kb) - queue name (200 chars) - action. 'get' or 'put' (1 byte) get put RPC Operation extends Operation + object name (200 chars) + member name (20 chars) + action. 'call' or 'signal' + n * parameters (~1 kb ?) call signal Exception extends StackTrace + message (200 chars) + type (100 chars) + 0/1 * exception StackTrace + n * stack frame StackFrame + object name (100 chars) + method name (20 chars) + file name (200 chars) + line number (4 bytes)