On Thu, Mar 19, 2015 at 8:06 PM, Oliver Keyes <okeyes@wikimedia.org> wrote:
As I see it, we basically have two possibilities here:

1. Make the URLs distinguishable;
2. Add additional metadata in a non-URL place

1 is undesirable because it ruins caching, and we like caching. So we
look at 2, which realistically means the x_analytics field. Why don't
we add a parameter there? refresh=1. And then, our app check boils
down to (in pseudocode):

if(other_checks & urlContains("sections=(0|all)" &
!xAnalyticsContains("refresh")){
    return true;
}
return false;

Nice and simple and easy. It'll require some coordination with
Ottomata because it means modifying the UDF parameters, and we're
using said UDF in production so it'll have to be synced to a change in
the relevant Oozie job, but it should be totally doable, and I can't
see an easier way of doing it.

Thoughts, people?

Why use anything other than X-Analytics at all? Source of the pageview is exactly the kind of information it is meant for. Just set source=AndroidAppPageView /  source=IosAppSectionView / source=AndroidAppSavedPageRefresh etc. (Or set up a mapping to three-letter acronyms if you want to be nice on the servers.) That puts logging completely in the hands of the app developers, so there are no information flow problems and less organizational overhead; it also makes rules more explicit (and thus harder to mess up / easier to spot errors).