New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 728322 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jul 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Bug



Sign in to add a comment

UMA.SubprocessMetricsProvider.UntrackedProcesses is logging some values

Project Member Reported by asvitk...@chromium.org, May 31 2017

Issue description

UMA.SubprocessMetricsProvider.UntrackedProcesses is logging some values.

https://uma.googleplex.com/histograms/?endDate=20170530&dayCount=14&histograms=UMA.SubprocessMetricsProvider.UntrackedProcesses&fixupData=true&showMax=true&filters=isofficial%2Ceq%2CTrue&implicitFilters=isofficial

This is supposed to be one of those "impossible to hit" histograms, but it's being hit.

Looks like the values its logging are outside the PROCESS_TYPE_CONTENT_END range, so it ends up hitting the overflow bucket.

The histogram is also not correctly defined in histograms.xml so some of our dashboards treat it as numeric, even though it should be enumerated.

Suggest switching it to be a sparse histogram and then once we have results from that, investigating what needs to be done to support those process types.
 
I did it this way because I didn't want to worry about "custom" process types but I see now that it'll be confusing should new standard types get added because the numeric value of the added type will duplicate the number currently used for the custom processes.  I either didn't realize or didn't think about the "overflow" bucket.

I think the better choice is to put "if (type < PROCESS_TYPE_CONTENT_END)" around the histogram and so avoid this if new process types get added in the future.

It could be made "sparse" but the new single-value optimization makes it pretty much the same thing.

The sparse suggestion is not for optimizing memory use but so we don't have to specify a max value.

I think we should aim for the same functionality for all the processes - that means if we're currently missing some processes (in Chrome - not talking about other products built from Chrome codebase) that are implemented outside of content/ and thus use a value above PROCDESS_TYPE_CONTENT_END then we should figure out what they are and add support for them.
Understood but there's a big problem that new process types would be injected in the middle of the extended enum.  I think it's simpler and safer to cap the reporting at the standard types to that any new values in the future will get reported without conflict.

Well, there will be technically be conflict but I think we can safely assume that the existing values will have expired long before a new process type gets added.

Sorry, I'm not following.

"there's a big problem that new process types would be injected in the middle of the extended enum"

Why is this a problem? Sparse histograms definitely support non-contiguous enums so I don't think there should be any issues here.

"I think it's simpler and safer to cap the reporting at the standard types to that any new values in the future will get reported without conflict."

Well, this ignored the fact that we're missing some process types *today* in shipping Chrome. The histogram can help us find those and add support for them.
It's not the continuity but the meaning.  We could have a bunch of counts for untracked process #12 and be okay with that because they're not standard processes.  It's in that "custom" process range.

Then someone adds a new standard process that, because items are added to the middle of the enum, becomes #12.  It's stats are untracked but we don't notice because there have always been counts for #12.

So I think it's better to report "untracked" for only standard process types and not the custom ones.

At which point, since there will generally be no counts and the adding of a new (untracked) process would add only add one count, there's no benefit of sparse of linear.
Perhaps we can still log it sparse but for custom processes, add a large base offset (e.g. 1000 - instead of the PROCESS_TYPE_CONTENT_END base) so there's no chance of a future standard process colliding with a previous custom one?

My ultimate point is we should figure out which process this is and support it as well for persistent metrics. The logging is only an issue because it currently doesn't help us with "figure out which process this is".
Do we know if any method of metrics are supported for these custom processes?

If you want to be concerned with custom processes, then sure.  My feeling is that we should just ignore anything that isn't officially listed in the enumeration.

No, I don't know. I guess I'd like us to first find out what they are before deciding whether we should ignore them or not. And we need the histogram to find out what they are.
Status: Fixed (was: Assigned)

Sign in to add a comment