Skip to content

Commit

Permalink
Bug 1156712 - Part 4: Update the ping submission documentation. r=vladan
Browse files Browse the repository at this point in the history
  • Loading branch information
georgf committed Jul 7, 2015
1 parent 01ac8b6 commit 05250e0
Showing 1 changed file with 14 additions and 2 deletions.
16 changes: 14 additions & 2 deletions toolkit/components/telemetry/docs/pings.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,23 @@ It contains some basic information shared between different ping types, the :doc
Submission
==========

Pings are submitted via a common API on ``TelemetryController``. It allows callers to choose a custom retention period that determines how long pings are kept on disk if submission wasn't successful.
If a ping failed to submit (e.g. because of missing internet connection), Telemetry will retry to submit it until its retention period is up.
Pings are submitted via a common API on ``TelemetryController``.
If a ping fails to successfully submit to the server immediately (e.g. because
of missing internet connection), Telemetry will store it on disk and retry to
send it until the maximum ping age is exceeded (14 days).

*Note:* the :doc:`main pings <main-ping>` are kept locally even after successful submission to enable the HealthReport and SelfSupport features. They will be deleted after their retention period of 180 days.

Sending of pending pings starts as soon as the delayed startup is finished. They are sent in batches, newest-first, with up
to 10 persisted pings per batch plus all unpersisted pings.
The send logic then waits for each batch to complete.

If it succeeds we trigger the next send of a ping batch. This is delayed as needed to only trigger one batch send per minute.

If ping sending encounters an error that means retrying later, a backoff timeout behavior is
triggered, exponentially increasing the timeout for the next try from 1 minute up to a limit of 120 minutes.
Any new ping submissions and "idle-daily" events reset this behavior as a safety mechanism and trigger immediate ping sending.

The telemetry server team is working towards `the common services status codes <https://wiki.mozilla.org/CloudServices/DataPipeline/HTTPEdgeServerSpecification#Server_Responses>`_, but for now the following logic is sufficient for Telemetry:

* `2XX` - success, don't resubmit
Expand Down

0 comments on commit 05250e0

Please sign in to comment.