What's new? | Help | Directory | Sign in
Google
google-web-toolkit
Google Web Toolkit (GWT)
  
  
  
  
    
Search
for
Updated Jun 04, 2008 by jaime...@google.com
LightweightMetricsDesign  
Zero-config lightweight performance metrics for GWT modules

Introduction

It is highly desirable to provide a "zero config" mechanism to gather coarse-grained runtime performance metrics to allow developers and production engineers to achieve increased visibility into how a GWT application behaves in the deployment environment.

Goals

Non-goals

Specifics

The GWT module will look for a user-defined, global function and feed it event objects. Event objects are simple JSON objects that have several "well-known" properties and additional, type-specific properties.

__gwtStatsEvent({
    evtGroup : 'phase1',
    millis : currentTimeInMillis,
    moduleName : 'com.foo.Module',
    subSystem : 'name',
    type : 'type',
    ...})

An Event Group (evtGroup) is analogous to a grouping of related events that can be assumed to follow a serial order. Each type can be interpreted as a checkpoint within an Event Group. The (moduleName, subsystem, evtGroup, type) tuple can be used as a "primary key" and should be used to correlate related event objects.

The type parameter may have the following values:

No guarantee is made as to the latency with which an event object is delivered relative to when the event actually occurs. Implementors of stats collectors should rely only on the millis property for timing information.

Discussion points

Future work

GWT Startup Process

Implicit Event Object for a Startup event

{ 
  moduleName : <Module Name>,
  subSystem : 'startup',
  evtGroup : <Event Group>,
  millis : <Current Time In Millis>,
  type : <Event Type> 
}

GWT RPC Event Diagram

Implicit Event Object for an RPC event

{ 
  moduleName: <Module Name>,
  subSystem: ‘rpc’,
  method: <Method Name>,
  evtGroup: <RPC counter>,
  millis: <Current Time In Millis>,
  type: <Event Type>
}


Sign in to add a comment