Closed Bug 1203590 Opened 9 years ago Closed 9 years ago

devtools telemetry measures use large buckets

Categories

(DevTools :: General, defect)

defect
Not set
normal

Tracking

(firefox43 affected)

RESOLVED WONTFIX
Tracking Status
firefox43 --- affected

People

(Reporter: canuckistani, Unassigned)

Details

From bsmedberg:

">> Currently there are histograms with very large values for n_buckets. My understanding of our format is that we will end up submitting these histograms as very large arrays consisting mostly of zeros:
>>
>> [0,0,0,0,0,7,0,0,2,0,0,0,0,1,.....a thousand times]
>>
>> I'll assert that this is a waste of bandwidth (users and ours), storage and parsing time, and we should have a policy that limits the number of buckets to something reasonable (strawmen: 50? 100?).
>>
>> As a side-note, there are also n_buckets values represented as strings as as ints in Histograms.json. There are even a few which aren't numbers, for example POPUP_NOTIFICATION_MAINACTION_TRIGGERED_MS has "n_buckets": "80 + 1". Can anyone explain what happens in these cases and whether should we fix/validate this?"

Here's the list of devtools measures:

DEVTOOLS_DEBUGGER_RDP_REMOTE_LISTWORKERS_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_LISTTABS_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_STARTTRACE_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_PROPERTY_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_SCOPE_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_LISTADDONS_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_BINDINGS_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_RECONFIGURETAB_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_ADDONDETACH_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_THREADDETACH_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_CLIENTEVALUATE_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_INTERRUPT_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_CLIENTEVALUATE_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_STOPTRACE_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_PROTOCOLDESCRIPTION_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_TRACERDETACH_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_RELEASE_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_EVENTLISTENERS_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_PROTOTYPESANDPROPERTIES_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_ENUMPROPERTIES_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_LISTWORKERS_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_RESUME_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_GET_EXECUTABLE_LINES_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_SOURCES_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_RESUME_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_LISTTABS_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_PROTOCOLDESCRIPTION_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_FRAMES_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_THREADGRIPS_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_UNBLACKBOX_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_LISTPROCESSES_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_BLACKBOX_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_DETACH_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_RECONFIGURETHREAD_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_OWNPROPERTYNAMES_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_TABDETACH_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_TABDETACH_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_RELEASEMANY_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_THREADGRIPS_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_SUBSTRING_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_PROTOTYPE_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_RELEASEMANY_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_SCOPE_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_PARAMETERNAMES_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_SOURCES_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_WORKERDETACH_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_PROPERTY_MS,1000
DEVTOOLS_DEBUGGER_DISPLAY_SOURCE_REMOTE_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_DISPLAYSTRING_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_ADDONDETACH_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_SUBSTRING_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_ASSIGN_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_RELEASE_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_LISTADDONS_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_DISPLAYSTRING_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_RECONFIGURETAB_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_GET_EXECUTABLE_LINES_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_DETACH_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_PROTOTYPE_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_DELETE_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_THREADDETACH_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_NAVIGATETO_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_RELOAD_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_ENUMPROPERTIES_MS,1000
DEVTOOLS_DEBUGGER_DISPLAY_SOURCE_LOCAL_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_FRAMES_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_PROTOTYPESANDPROPERTIES_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_PROTOTYPEANDPROPERTIES_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_STARTTRACE_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_STOPTRACE_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_BINDINGS_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_DELETE_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_TRACERDETACH_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_ASSIGN_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_NAVIGATETO_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_INTERRUPT_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_PARAMETERNAMES_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_WORKERDETACH_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_PROTOTYPEANDPROPERTIES_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_EVENTLISTENERS_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_UNBLACKBOX_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_RECONFIGURETHREAD_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_BLACKBOX_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_RELOAD_MS,1000
DEVTOOLS_DEBUGGER_RDP_REMOTE_LISTPROCESSES_MS,1000
DEVTOOLS_DEBUGGER_RDP_LOCAL_OWNPROPERTYNAMES_MS,1000
Nick, are you using any of these?
Flags: needinfo?(nfitzgerald)
This seems like an implementation issue with telemetry, and we should fix it to support wide ranges of many buckets with sparse data rather than us bending over backwards because of unnecessary complication due to implementation details.

That said, I still use the following:

* DEVTOOLS_DEBUGGER_DISPLAY_SOURCE_*_MS
* DEVTOOLS_DEBUGGER_RDP_*_SOURCES_MS

STARTTRACE and STOPTRACE are never used anymore, the related code was ripped from the code base.
Flags: needinfo?(nfitzgerald)
bsmedberg: can you respond to Nick's comment on potentially adding support for the kinds of data we want to collect? In particular, telemetry is changing a lot right now, are there other / newer ways to do similar things that don't cause problems?

Also - while the devtools-specific measures might use more data per-measure, this data is rarely collected from release or beta users as a proportion of the overall userbase. Is it critical we remove the ones we're still using given that this does not affect non-devtools-users?
Flags: needinfo?(benjamin)
It turns out I was wrong about the buckets: we submit them sparsely as keys, so large n_buckets should be ok. mreid corrected me.
Flags: needinfo?(benjamin)
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → WONTFIX
Product: Firefox → DevTools
You need to log in before you can comment on or make changes to this bug.