MetricsDataPing: Difference between revisions

Jump to navigation Jump to search
Line 130: Line 130:
</pre>
</pre>


== Server-side ==


*Clients will POST data to the configured URL not more than once every 24 hours.
*Clients will POST data to the configured URL not more than once every 24 hours.
*The first timer check should be one minute after startup.
*The first timer check should be one minute after startup.
*The POST data will consist of a JSON document containing a document ID and all the metrics that were collected since the last submission.
*The POST data will consist of a JSON document containing a document ID and all the metrics that were collected since the last submission.
*The server side will receive the POST request and perform GeoIP location on the IP address. ''The raw IP will never be stored. ''The GeoIP data and submission timestamp will be added to the JSON document.
 
== Server-side ==
*The server side will receive the POST request and perform GeoIP location on the IP address. ''The raw IP will never be stored in the document.'' The GeoIP data and submission timestamp will be added to the JSON document.
*The server will store the JSON document into a daily staging collection with all other documents received during that date, UTC.
*The server will store the JSON document into a daily staging collection with all other documents received during that date, UTC.
*If the POST request contains a header with the ID of a previously submitted document, the server will delete that old document as part of the transaction of storing the new one.
*The server will return an HTTP response to the client indicating success of the storage and a document ID. For the initial feature release, this ID will be the same as the one passed in (i.e. an installation GUID). It can easily be changed to be new each time (i.e. a document GUID). If the ID is new, the client should store it to be returned on the next submission.
*The server will return an HTTP response to the client indicating success of the storage and a document ID. For the initial feature release, this ID will be the same as the one passed in (i.e. an installation GUID). It can easily be changed to be new each time (i.e. a document GUID). If the ID is new, the client should store it to be returned on the next submission.
*In the future this response might also include instructions to the client for things such as changing timing or MetricsDataPing configuration.
*In the future this response might also include instructions to the client for things such as changing timing or MetricsDataPing configuration.
*Asynchronously, the server will retrieve a document with the same document ID from the "latest" bucket if one exists and will insert/update the "latest" bucket with a merged document that does not include any metrics we wish to avoid collecting longitudally per installation such as GeoIP. This "current" bucket is used to perform retention analysis since it will have the last submitted data for any installation even if it is no longer in use. We will set a retention policy for when these inactive installation documents shall be deleted from the "latest" bucket.
*Longitudinal data for 6 months (e.g. intensity of use) is stored cumulatively in the JSON objects indexed by document ID. ''Documents older than 6 months are deleted.''
*Longitudinal data for 6 months (e.g. intensity of use) is stored cumulatively in the JSON objects indexed by GUID. ''Anything older than 6 months is deleted.''
*''At the end of the day, UTC, the server will aggregate all the documents submitted on that date and store the aggregate data (with no document IDs) in aggregate history tables in our data warehouse.'' (In subsequent releases of the MDP project, there will be a public API to retrieve information from these aggregate views to support additional analysis by users and the community.
*''At the end of the day, UTC, the server will aggregate all the documents submitted on that date and store the aggregate data (with no installation ID) in aggregate history tables in our data warehouse.''
*''There will be UI elements inside of Firefox that allows users to delete all their data (remote and locally.''


= Data Access Policies =
= Data Access Policies =
131

edits

Navigation menu