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)