Jump to: navigation, search

Difference between revisions of "UDC/What Gets Captured"

< UDC
(New page: At a high-level, the Usage Data Collector (UDC) monitors what is being used and when (timestamp), including: *Runtime environment (operating system, host Java runtime, etc.) *Loaded bundle...)
 
Line 23: Line 23:
 
=Runtime Environment=
 
=Runtime Environment=
  
Every time Eclipse is started, the runtime environment is recorded by the UDC. This functionality is implemented by [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.epp/plugins/org.eclipse.epp.usagedata.gathering/src/org/eclipse/epp/usagedata/internal/gathering/monitors/SystemInfoMonitor.java?view=markup&root=Technology_Project SystemInfoMonitor.java]. This monitor does not install any hooks, it just grabs system information.
+
Every time Eclipse is started, the runtime environment is recorded by the UDC. This functionality is implemented by [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.epp/plugins/org.eclipse.epp.usagedata.gathering/src/org/eclipse/epp/usagedata/internal/gathering/monitors/SystemInfoMonitor.java?view=markup&root=Technology_Project SystemInfoMonitor.java]. This monitor does not install any hooks, it just grabs system information. Since this monitor gathers information every time Eclipse is started, the information that it gathers may be somewhat redundant. However, it should indicate changes in the runtime environment over time.
  
 
For all runtime environment "events", the ''kind'' is "sysinfo", ''what'' is the name of a property (see below), and ''description'' contains the value of the corresponding system property. No bundle id or version is captured.
 
For all runtime environment "events", the ''kind'' is "sysinfo", ''what'' is the name of a property (see below), and ''description'' contains the value of the corresponding system property. No bundle id or version is captured.

Revision as of 12:54, 22 September 2010

At a high-level, the Usage Data Collector (UDC) monitors what is being used and when (timestamp), including:

  • Runtime environment (operating system, host Java runtime, etc.)
  • Loaded bundles
  • Commands accessed via keyboard shortcuts
  • Actions invoked via menus or toolbars
  • Perspective changes
  • View usage
  • Editor usage

The UDC uses a collection of "monitors" to gather information. These monitors are started when the UDC starts up; generally, they install observer hooks into the Eclipse framework.

Each usage data event is stored in a table that is transmitted to the Eclipse Foundation Server. Files are in CSV-format with the following columns:

  • what - What happened (i.e. the event), e.g. "activated", "started", "executed", ...
  • kind - The kind of thing that caused the event (i.e. the source), e.g. "view", "editor", "command", ...
  • bundleId - The name of the bundle that "owns" the thing that caused the event, e.g. "org.eclipse.ui.editors"
  • bundleVersion - The version of the bundle, e.g. "3.6.0.v20100520-0800"
  • description - Event-specific information, e.g. "org.eclipse.pde.ui.PDEPerspective"
  • time - Time of the event (millisecond clock value from the workstation)

FWIW, we recognized (too late) that what and kind are terrible names for what should probably be called event and source.

Runtime Environment

Every time Eclipse is started, the runtime environment is recorded by the UDC. This functionality is implemented by SystemInfoMonitor.java. This monitor does not install any hooks, it just grabs system information. Since this monitor gathers information every time Eclipse is started, the information that it gathers may be somewhat redundant. However, it should indicate changes in the runtime environment over time.

For all runtime environment "events", the kind is "sysinfo", what is the name of a property (see below), and description contains the value of the corresponding system property. No bundle id or version is captured.

Properties Captured

  • os - The operating system (result of calling Platform.getOS()), e.g. "linux";
  • arch - The system architecture (result of calling Platform.getOSArch()), e.g. "x86"
  • ws - The windowing system (result of calling Platform.getWS()), e.g. "gtk"
  • locale - Locale (result of calling Platform.getNL()), e.g. "en_CA"
  • processors - Number of available processors, e.g. "2"
  • System properties (result of calling System.getProperty(name))
    • java.runtime.name, e.g. "Java(TM) SE Runtime Environment"
    • java.runtime.version, e.g. "1.6.0_14-b08"
    • java.specification.name, e.g. "Java Platform API Specification"
    • java.specification.vendor, e.g. "Sun Microsystems Inc."
    • java.specification.version, e.g. "1.6"
    • java.vendor, e.g. "Sun Microsystems Inc."
    • java.version, e.g. "1.6.0_14"
    • java.vm, e.g. "mixed mode, sharing"
    • java.vm.name, e.g. "Java HotSpot(TM) Client VM"
    • java.vm.specification.name, e.g. "Java Virtual Machine Specification"
    • java.vm.specification.vendor, e.g. "Sun Microsystems Inc."
    • java.vm.specification.version, e.g. "1.0"
    • java.vm.vendor, e.g. "Sun Microsystems Inc."
    • java.vm.version, e.g. "14.0-b16"

Example

what,kind,bundleId,bundleVersion,description,time
os,sysinfo,,,"linux",1282863531113
arch,sysinfo,,,"x86",1282863531113
ws,sysinfo,,,"gtk",1282863531114
locale,sysinfo,,,"en_CA",1282863531114
processors,sysinfo,,,"2",1282863531114
java.runtime.name,sysinfo,,,"Java(TM) SE Runtime Environment",1282863531114
java.runtime.version,sysinfo,,,"1.6.0_14-b08",1282863531114
java.specification.name,sysinfo,,,"Java Platform API Specification",1282863531114
java.specification.vendor,sysinfo,,,"Sun Microsystems Inc.",1282863531114
java.specification.version,sysinfo,,,"1.6",1282863531114
java.vendor,sysinfo,,,"Sun Microsystems Inc.",1282863531114
java.version,sysinfo,,,"1.6.0_14",1282863531114
java.vm.info,sysinfo,,,"mixed mode, sharing",1282863531114
java.vm.name,sysinfo,,,"Java HotSpot(TM) Client VM",1282863531114
java.vm.specification.name,sysinfo,,,"Java Virtual Machine Specification",1282863531114
java.vm.specification.vendor,sysinfo,,,"Sun Microsystems Inc.",1282863531114
java.vm.specification.version,sysinfo,,,"1.0",1282863531114
java.vm.vendor,sysinfo,,,"Sun Microsystems Inc.",1282863531114
java.vm.version,sysinfo,,,"14.0-b16",1282863531114