<div dir="ltr"><div><div><div>Hi everyone,<br><br></div>I'm currently looking at FxA user metrics this quarter and have a few thoughts around some ideas. Let me kick off by just having a brief outline so you get an idea of what's needed.<br><br><div class="" id="magicdomid4"><span class=""> "All services attached to FxA should report metrics on user
activity in a consistent, privacy-respecting manner. We should have
dashboards that allow us to measure success and monitor for problems."</span></div><br></div>This may or may not be the exact goal we're reaching for, but it's currently a good statement to aim for. Other questions we might like to ask and answer in the future are:<br><br></div><div>* how many users signed up this month?<br></div><div>* how many users used a particular service (e.g. Hello, Sync)?<br></div><div>* how many users logged in with a mobile device?<br></div><div>* (perhaps other questions we don't yet know about)<br><br></div><div>To do this we need to figure out how to make this happen. By logging 'user events' we should be able to take advantage of the regular data pipeline running through Heka/ElasticSearch/Kibana and/or any other Reporting/MapReduce plus custom dashoards as aimed for by the Data Pipeline v2 [1]. Therefore this email is mainly concentrating on what we do at the edges, i.e. our application servers.<br><br></div><div>We would love to correlate users across services so we need something which allows us to do this. Of course the uid of a user is the obvious answer but one that would raise some privacy questions. Perhaps we could post-process these in the data pipeline into something else, or we can log something locally which we could use to correlate that same user to another service (but not back to the user him/herself). The idea of a Metrics ID has been raised which is a one-way mapping from uid to Metrics ID (am leaving out any implementation details for now). Of course, all services would need to know how to make that MetricsID if it was logged at the edge, but if the uid was post-processed in the data pipeline this could be done centrally.<br><br></div><div>I'm sure there are other solutions too ... ideas welcome!<br></div><div><br>Does this sound like it could work (both technically but keeping an eye on what we against each metrics ID)? I am deliberately leaving off any details of how this could work since I'm currently more interested in what you all think of this idea. What are the gotchyers? Can anyone see problems we'll hit? Does this all sound reasonable?<br><br></div><div>Cheers,<br></div><div>Andy<br><br>[1] <a href="https://wiki.mozilla.org/CloudServices/DataPipeline#V2_Pipeline">https://wiki.mozilla.org/CloudServices/DataPipeline#V2_Pipeline</a><br><br></div></div>