Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 178604 - only report usage of org.eclipse.* views in the UsageAnalysisServlet
Summary: only report usage of org.eclipse.* views in the UsageAnalysisServlet
Status: RESOLVED FIXED
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: Mylyn (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows XP
: P1 normal (vote)
Target Milestone: 2.0 M3   Edit
Assignee: meghan CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on: 170540
Blocks:
  Show dependency tree
 
Reported: 2007-03-21 13:03 EDT by meghan CLA
Modified: 2007-04-16 18:13 EDT (History)
1 user (show)

See Also:


Attachments
improvements to MenuCommandMonitor (2.44 KB, patch)
2007-03-28 19:07 EDT, Eugene Kuleshov CLA
no flags Details | Diff
mylar/context/zip (1.22 KB, application/octet-stream)
2007-03-28 19:07 EDT, Eugene Kuleshov CLA
no flags Details
patch that strips the file of any events that aren't from org.eclipse.* packages (9.93 KB, patch)
2007-04-13 14:18 EDT, meghan CLA
no flags Details | Diff
mylar/context/zip (1.81 KB, application/octet-stream)
2007-04-13 14:18 EDT, meghan CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description meghan CLA 2007-03-21 13:03:21 EDT
http://mylar.eclipse.org/monitor/upload/UsageAnalysisServlet currently shows the 10 most used views over all the usage data that has been submitted to mylar.eclipse.org.   This will be changed so that it shows the top 10 org.eclipse.* views because this doesn't feel like an appropriate place to report usage of proprietary tools (non-representative sample, etc.).  Any comments?
Comment 1 meghan CLA 2007-03-22 13:01:59 EDT
I have this fix ready, but I can't create a patch until the original code is committed (Bug 170540), or at least I don't know how to create a patch when the original files aren't in cvs yet.
Comment 2 Mik Kersten CLA 2007-03-22 13:54:42 EDT
Patch on Bug 170540 applied, so hopefull that unblocks you.

Here is what I think would be ideal for the first public version of this (hopefully 2.0M2 since that's what we said at EclipseCon, but not the end of the world if we slip):
1) Top 10 org.eclipse.* views and editors
2) Top 10 org.eclipse.* commands
3) Top 10 org.eclipse.mylar.* commands

The latter would be very useful to us.  Let me know if you need a pointer to the code the code that grabs command usage.
Comment 3 Eugene Kuleshov CLA 2007-03-28 13:53:56 EDT
Maybe it is better to show views/commands with usage above certain threshold. I.e. used more then N times by at least M users (say N=5 and M=3).
Comment 4 Eugene Kuleshov CLA 2007-03-28 14:05:01 EDT
There are lots of commands that have ID like "null$item.label.<some text>".

Some of those came from Eclipse's menu contributions, i.e. "null$item.label.Duplicate" is from Launch configuration dialog. But there also items with user sensitive info like launch configuration names and items from Mylar's Task List's task history drop down (for those <some text> will be the task name).
Comment 5 Mik Kersten CLA 2007-03-28 17:49:44 EDT
 (In reply to comment #4)
> There are lots of commands that have ID like "null$item.label.<some text>".

*Very* good that you spotted this.  For the time being I have removed monitoring monitoring of all commands that come from menu items with no ID, because we currently have no way of detecting whether they contain private (e.g. dynamically generated) contents or not.  This unfortunately means that we will no longer know when users invoke commands from context menus that do not come from contributions (i.e. have no ID).  We should verify how this impacts our ability to report on interaction with the Task List.

Eugene: it would be great if you could try this again with a new build, and a dev build should go up within the next 3 hours.  Note that you will need to delete your monitor file.
Comment 6 Eugene Kuleshov CLA 2007-03-28 18:12:08 EDT
 (In reply to comment #5)
> *Very* good that you spotted this.  For the time being I have removed monitoring
> monitoring of all commands that come from menu items with no ID, because we
> currently have no way of detecting whether they contain private (e.g.
> dynamically generated) contents or not.  This unfortunately means that we will
> no longer know when users invoke commands from context menus that do not come
> from contributions (i.e. have no ID).  We should verify how this impacts our
> ability to report on interaction with the Task List.

Hmm. Can't you use class name if there is no id? That would at least give some clue who contributed such command.

> Eugene: it would be great if you could try this again with a new build, and a
> dev build should go up within the next 3 hours.  Note that you will need to
> delete your monitor file.

Will do.
Comment 7 Eugene Kuleshov CLA 2007-03-28 18:18:44 EDT
 (In reply to comment #5)
> For the time being I have removed monitoring monitoring of all commands

BTW, you made a typo in the bug number in the code you commented out. I wanted to try hyperlink detector and it brought me somewhere else...
Comment 8 Eugene Kuleshov CLA 2007-03-28 19:07:28 EDT
Created attachment 62308 [details]
improvements to MenuCommandMonitor

Mik, apparently toolbar tooltips can also cointain some local info. So, I've commented out tooltip capturing and added id recovery using target or action class names. Please take a look
Comment 9 Eugene Kuleshov CLA 2007-03-28 19:07:30 EDT
Created attachment 62309 [details]
mylar/context/zip
Comment 10 Mik Kersten CLA 2007-03-28 22:02:20 EDT
Very good idea, patch applied.  The reason we didn't do it this way before is that Leah Findlater created a map from the UI labels to the corresponding actions.  So that map will now have to be updated for class names instead.

The only change I had to make is to remove the tags (e.g. "actionId") that you prevised with.  This is because what we generate is actually an interaction event handle, and those have to correspond to the most concise form identifying an element in the UI.  We can make that table label provider format them better.  Currently the only weird case should be that if an ID uses a class name it will look like it's a class name, but in this case the corresponding action should still be easy for the plug-in developer to determine.
Comment 11 Mik Kersten CLA 2007-03-30 14:18:58 EDT
Meghan: do you think you can do this today?  We should not be reporting submission without it because we could inadvertently report some private actions.  Also, I wonder if we should have a mode where we only submit usage of "org.*" IDs, as to avoid someone working in a large company accidentally uploading private data from a tool they were developing internally.  We have to add this facility to the editor itself, and then make a copy of the file without only "org.*" events before uploading.  Then the Servlet does not need to do the processing.
Comment 12 Eugene Kuleshov CLA 2007-03-30 22:03:33 EDT
(In reply to comment #11)
> Also, I wonder if we should have a mode where we only submit usage of
> "org.*" IDs, as to avoid someone working in a large company accidentally
> uploading private data from a tool they were developing internally.  We have to
> add this facility to the editor itself, and then make a copy of the file
> without only "org.*" events before uploading.

Mik, you could scramble all ids. Then build a map for publically known types on the server.

Another option to allow user to mark events that are ok to send and save allowed event types locally for next submission.
Comment 13 Mik Kersten CLA 2007-04-05 14:49:17 EDT
Meghan: do you have an eta for doing this according to comment#11?  Eugene's comment#12 is a good suggestion but considerably more work, and we can't encourage use of this until we have comment#11 done due to the privacy issues.
Comment 14 Mik Kersten CLA 2007-04-09 20:22:55 EDT
Meghan: when doing this please also delete the old data that has been uploaded.
Comment 15 meghan CLA 2007-04-10 12:48:50 EDT
I think this will be done today (Mar 10)
Comment 16 meghan CLA 2007-04-13 14:18:26 EDT
Created attachment 63785 [details]
patch that strips the file of any events that aren't from org.eclipse.* packages

This patch creates a new file that only contains the org.eclipse.* events from the monitor-log.xml file and submits the new file to eclipse.org.  A message has been added to the Usage Summary editor and to the Usage Submission Wizard stating this.
Comment 17 meghan CLA 2007-04-13 14:18:27 EDT
Created attachment 63786 [details]
mylar/context/zip
Comment 18 Mik Kersten CLA 2007-04-16 15:03:49 EDT
Excellent.  Patch applied, with minor UI changes made (wizard now called "UI Usage Report", feature now called "Mylar Usage Reporting").
Comment 19 Eugene Kuleshov CLA 2007-04-16 15:13:08 EDT
I still think it would be better to obfuscate everything and let user to choose what keys should be send back. Then even if user won't mark org.eclipse.* as public we could maintain own dictionary for those public keys.
Comment 20 Mik Kersten CLA 2007-04-16 18:13:08 EDT
I agree that such a feature would be useful.  But it would be considerably more work, and with this bug we needed to implement the simplest and quickest way to be defensive in preventing users from accidentally uploading sensitive data.  I created bug 182639 for your suggestion.