Browser Metrics:Data Collectors: Difference between revisions

no edit summary
No edit summary
 
Line 12: Line 12:


; Element <tt>&lt;profile&gt;</tt>
; Element <tt>&lt;profile&gt;</tt>
: ''Attributes:''
:; <tt>session = [integer]</tt>
:: Gives the current session count, incremented everytime the browser loads
:; <tt>time = [integer]</tt>
:: Gives the unixtime when the profile was captured
The following elements are optional children of <tt>&lt;profile&gt;</tt>:
; Element <tt>&lt;bookmarks&gt;</tt>
: A container element for 1 or more <tt>bookmarklocation</tt> elements.
: ''Attributes:'' none
: ''Attributes:'' none


The following elements are optional children of <tt>&lt;profile&gt;</tt>:
; Element <tt>&lt;bookmarklocation&gt;</tt>
: Contains information about the location of bookmarks
: ''Attributes:''
:; <tt>foldercount = [integer]</tt>
:: Gives the number of bookmark folders
:; <tt>itemcount = [integer]</tt>
:: Gives the total number of bookmark items
:; <tt>livemarkcount = [integer]</tt>
:: Gives the total number of livemarks
:; <tt>separatorcount = [integer]</tt>
:: Gives the total number of separators
:; <tt>name = [string]</tt>
:: Gives the name of the set of bookmarks (full-tree, root, toolbar)


; Element <tt>&lt;cpu&gt;</tt>
; Element <tt>&lt;cpu&gt;</tt>
Line 22: Line 44:
:: Gives the CPU architecture (x86, powerpc, etc).
:: Gives the CPU architecture (x86, powerpc, etc).


; Element <tt>&lt;memory&gt;</tt>
; Element <tt>&lt;display&gt;</tt>
: Describes the memory configuration of the client system.
: Describes the user's display.
: ''Attributes:''
: ''Attributes:''
:; <tt>mb = [integer]</tt>
:; <tt>xsize = [integer]</tt>
:: Gives the number of megabytes of system memory.
:: Gives the number of pixels horizontally on the primary screen.
:; <tt>ysize = [integer]</tt>
:: Gives the number of pixels vertically on the primary screen.
:; <tt>screens = [integer]</tt>
:: Gives the number of screens on the system.
 
; Element <tt>&lt;extensions&gt;</tt>
: A container element for 1 or more <tt>extension</tt> elements.
: ''Attributes:'' none


; Element <tt>&lt;os&gt;</tt>
; Element <tt>&lt;extension&gt;</tt>
: Describes the operating system the client is running.
: Contains information about a single extension.
: ''Attributes:''
: ''Attributes:''
:; <tt>name = [string]</tt>
:; <tt>extensionid = [string]</tt>
:: Gives the name of the operating system, e.g. "Windows" or "MacOSX".
:: Gives an MD5 hash of the extension's id.
:; <tt>version = [string]</tt>
:; <tt>version = [string]</tt>
:: Gives the version of the operating system, e.g. "XP" or "Tiger".
:: Gives the extension's version number.


; Element <tt>&lt;install&gt;</tt>
; Element <tt>&lt;install&gt;</tt>
: Describes the installation of Firefox the user is running.
: Describes the installation of Firefox the user is running.
: ''Attributes:''
: ''Attributes:''
:; <tt>appversion = [string]</tt>
:: Gives the current application version (e.g. 3.0b4)
:; <tt>buildid = [integer]</tt>
:; <tt>buildid = [integer]</tt>
:: Gives the Build ID (e.g. 20060327).
:: Gives the Build ID (e.g. 20060327).
:; <tt>default = [boolean]</tt>
:: Whether the browser is set as the default browser for the current user.
:; <tt>extversion = [string]</tt>
:: Gives the current spectator extension version (e.g. 2.1a9)
:; <tt>installdate = [integer]</tt>
:; <tt>installdate = [integer]</tt>
:: Gives the date the build was first run on this profile (seconds since the epoch).
:: Gives the date the build was first run on this profile (seconds since the epoch).
:; <tt>default = [boolean]</tt>
:; <tt>locale = [string]</tt>
:: Whether the browser is set as the default browser for the current user.
:: Gives the locale (e.g. en-US, de, etc)


; Element <tt>&lt;extensions&gt;</tt>
; Element <tt>&lt;memory&gt;</tt>
: A container element for 1 or more <tt>extension</tt> elements.
: Describes the memory configuration of the client system.
: ''Attributes:'' none
: ''Attributes:''
:; <tt>mb = [integer]</tt>
:: Gives the number of megabytes of system memory.


; Element <tt>&lt;extension&gt;</tt>
; Element <tt>&lt;os&gt;</tt>
: Contains information about a single extension.
: Describes the operating system the client is running.
: ''Attributes:''
: ''Attributes:''
:; <tt>extensionid = [string]</tt>
:; <tt>name = [string]</tt>
:: Gives an MD5 hash of the extension's id.
:: Gives the name of the operating system, e.g. "Windows" or "MacOSX".
:; <tt>version = [string]</tt>
:; <tt>version = [string]</tt>
:: Gives the extension's version number.
:: Gives the version of the operating system, e.g. "XP" or "Tiger".


; Element <tt>&lt;plugins&gt;</tt>
; Element <tt>&lt;plugins&gt;</tt>
Line 69: Line 107:
:: Gives the version of the plugin.
:: Gives the version of the plugin.


; Element <tt>&lt;display&gt;</tt>
===Load Event===
: Describes the user's display.
 
Load events record a document being loaded into a DOM Window.
 
; Element <tt>&lt;document&gt;</tt>
: ''Attributes:''
: ''Attributes:''
:; <tt>xsize = [integer]</tt>
:: Gives the number of pixels horizontally on the primary screen.
:; <tt>ysize = [integer]</tt>
:: Gives the number of pixels vertically on the primary screen.
:; <tt>screens = [integer]</tt>
:: Gives the number of screens on the system.


; Element <tt>&lt;config&gt;</tt>
:; <tt>action = [string]</tt>
: Gives the configuration that was used for this log, in the same format as sent by the server.
:: Records if the document is being loaded or destroyed
: See [[Browser Metrics:Data Collection Service#Server Response]] for a description of this element.


TBD: talkback GUID
:; <tt>window = [integer]</tt>
:: The id of the window where the document was loaded.


===Window Event===
:; <tt>bfCacheHit = [boolean]</tt> (optional)
:: Whether the document presentation was loaded from the session history cache.  If not specified, assumed to be false.


Window events log various actions pertaining to DOM Windows, which provide a context for load events.
:; <tt>docid = [integer]</tt>
:: The id of the document that was loaded


; Element <tt>&lt;window&gt;</tt>
:; <tt>loadtime = [integer]</tt>
: ''Attributes:''
:: The time from the initiation of the load until the document is complete (which includes all images, stylesheet, etc) in milliseconds.
:; <tt>action = [string]</tt>
:: Indicates the action that happened for this window.  Possible values are:
::* <tt>create</tt>: a new toplevel or child DOM Window was created
::* <tt>open</tt>: a toplevel DOM Window was opened
::* <tt>close</tt>: a toplevel DOM Window was closed
::* <tt>destroy</tt>: a toplevel or child DOM Window was destroyed
:; <tt>windowid = [integer]</tt>
:: The id of the affected window.  Ids are assigned starting from 0 and are never reused during that session.  The window id is not unique across sessions.
:; <tt>parent = [integer]</tt> (optional)
:: For create events, the id of the parent of the newly created window.  Toplevel windows do not have a parent, so this attribute will not be set.
:; <tt>chrome = [boolean]</tt> (optional)
:: For create events, whether the new window has chrome privileges.  Defaults to false.
:; <tt>opener = [integer window id]</tt> (optional)
:: For open events, the id of the opener DOM window.  Windows opened from native code may not have an opener, and this attribute will not be set.


===Load Event===
:; <tt>memresident = [integer]</tt>
:: The resident memory after the page has loaded


Load events record a document being loaded into a DOM Window.
:; <tt>memtotal = [integer]</tt>
:: The total memory usage after the page has loaded


; Element <tt>&lt;load&gt;</tt>
: ''Attributes:''
:; <tt>window = [integer]</tt>
:: The id of the window where the document was loaded.
:; <tt>origin = [string]</tt> (optional)
:; <tt>origin = [string]</tt> (optional)
:: The action which initiated the load.  Possible values include:
:: The action which initiated the load.  Possible values include:
Line 120: Line 141:
::* <tt>session-history</tt>: The user used back/forward navigation to load the document.
::* <tt>session-history</tt>: The user used back/forward navigation to load the document.
::* <tt>reload</tt>: The user used the reload button or keyboard shortcut to reload the document.
::* <tt>reload</tt>: The user used the reload button or keyboard shortcut to reload the document.
::* <tt>global-history</tt>: The user loaded the page by selecting it from their global history.
::* <tt>global-history (not implemented)</tt>: The user loaded the page by selecting it from their global history.
::* <tt>bookmark</tt>: The user loaded the page by selecting it from the bookmarks menu, bookmarks toolbar, or bookmarks management UI.
::* <tt>bookmark (not implemented)</tt>: The user loaded the page by selecting it from the bookmarks menu, bookmarks toolbar, or bookmarks management UI.
::* <tt>script</tt>: A script executing on a page loaded the document.
::* <tt>script (not implemented)</tt>: A script executing on a page loaded the document.
::* <tt>refresh</tt>: A meta-refresh loaded the document.
::* <tt>refresh</tt>: A meta-refresh loaded the document.
::* <tt>external</tt>: The document URI was passed in from an external application.
::* <tt>external (not implemented)</tt>: The document URI was passed in from an external application.
:; <tt>loadtime = [integer]</tt>
 
:: The time from the initiation of the load until the document is complete (which includes all images, stylesheet, etc) in milliseconds.
:; <tt>session = [integer]</tt>
:; <tt>bfCacheHit = [boolean]</tt> (optional)
:: Gives the current session count, incremented everytime the browser loads
:: Whether the document presentation was loaded from the session history cache.  If not specified, assumed to be false.
 
:; <tt>subframe = [integer]</tt>
:: Whether the document was loaded from a subframe.  If not specified, assumed to be false.
 
:; <tt>time = [integer]</tt>
:: Gives the unixtime when the document load was captured


Todo / possible todo items:
:; <tt>urlhash = [string]</tt>
* cache size before/after load
:: Gives the md5 hash of chrome document load URLs
* content viewer size estimate
* cache hit
* session history index
* last visit date
* tagged/bookmarked


===UI Event===
===UI Event===


action = [click, key, drag, drop...]
Records UI events
target = [some kind of ID, possibly XUL name]
 
; Element <tt>&lt;uielement&gt;</tt>
: ''Attributes:''
:; <tt>action = [string]</tt>
:: Records what caused the event (command, popupshowing)
 
:; <tt>keyidhash = [string]</tt>
:: Records the md5 hash of the key combo that caused the event (goBackKb, etc)
 
:; <tt>session = [integer]</tt>
:: Gives the current session count, incremented everytime the browser loads
 
:; <tt>targetanonidhash = [string]</tt>
:: Gives the md5 hash of the anonymous target id that caused the event
 
:; <tt>targetidhash = [string]</tt>
:: Gives the md5 hash of the target id that caused the event
 
:; <tt>time = [integer]</tt>
:: Gives the unixtime when the event was captured
 
:; <tt>window = [integer]</tt>
:: The id of the window where the document was loaded.
 
== Other Ideas ==


===Garbage Collection===
===Garbage Collection===
334

edits