[][src]Module sync15_traits::telemetry

Manage recording sync telemetry. Assumes some external telemetry library/code which manages submitting.

Structs

Engine

One engine's sync.

EngineIncoming

Incoming record for an engine's sync

EngineOutgoing

Outgoing record for an engine's sync

Event

A generic "Event" - suitable for all kinds of pings (although this module only cares about the sync ping)

Problem
SyncTelemetry

A single sync. May have many engines, may have its own failure.

SyncTelemetryPing

The Sync ping payload, as documented at https://firefox-source-docs.mozilla.org/toolkit/components/telemetry/telemetry/data/sync-ping.html. May have many syncs, may have many events. However, due to the architecture of apps which use these components, this payload is almost certainly not suitable for submitting directly. For example, we will always return a payload with exactly 1 sync, and it will not know certain other fields in the payload, such as the hashed FxA device ID (see https://searchfox.org/mozilla-central/rev/c3ebaf6de2d481c262c04bb9657eaf76bf47e2ac/services/sync/modules/browserid_identity.js#185 for an example of how the device ID is constructed). The intention is that consumers of this will use this to create a "real" payload - eg, accumulating until some threshold number of syncs is reached, and contributing additional data which only the consumer knows.

Validation
WhenTook

What we record for 'when' and 'took' in a telemetry record.

Enums

Stopwatch

What we track while recording 'when' and 'took. It serializes as a WhenTook, except when .finished() hasn't been called, in which case it panics.

SyncFailure

A Sync failure.