Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a per-sync UUID for telemetry #2381

Closed
linabutler opened this issue Dec 16, 2019 · 4 comments
Closed

Add a per-sync UUID for telemetry #2381

linabutler opened this issue Dec 16, 2019 · 4 comments

Comments

@linabutler
Copy link
Contributor

linabutler commented Dec 16, 2019

This work will almost certainly happen in a-c, not here, but filing the bug here so it shows up in our tracking tools! 🚀

One of the things that came up in the Glean // Sync meeting is, how do we report sync-level errors, and other sync-level (or ping-level) data like device info? Currently, we push those down into the per-engine pings, and have a workaround in a-c to avoid sending multiple pings with the same top-level error. We also don't have a way to correlate different engines from the same sync.

We can make this easier by tagging each Glean ping with a "sync UUID"—though let's come up with a better name because "sync ID" means many different things! 😆 This would give us a column on which to join the history_sync, bookmarks_sync, etc. tables.

In the short term, the sync UUID will lets us correlate engines that were synced as part of the same sync. In the long term, this can be a stepping stone to having a sync_errors (or maybe even syncs) ping, to report top-level errors and other stats. The long-term part can happen in a separate bug. 😁

┆Issue is synchronized with this Jira Story

@rfk
Copy link
Contributor

rfk commented Dec 18, 2019

Random thought, I wonder if it would be useful to use an orderable identifier here (something like snowflake or a "ULID" or similar) rather than an ordinary UUID. Probably not that helpful for telemetry, but I'm imagining us including this identifier in other log output in future, where it might be useful to be able to tell what order different sync attempts occurred in.

Not sure if there would be any privacy implications though.

@Dexterp37
Copy link
Contributor

I'm imagining us including this identifier in other log output in future, where it might be useful to be able to tell what order different sync attempts occurred in.

If you need to do that in the analyses, please note that all glean pings, including custom pings, do have a start_time.

@linabutler
Copy link
Contributor Author

@grigoryk did this in mozilla-mobile/android-components#5386, so no need for us to track it here!

That's a good suggestion, @rfk! We end up relying on timestamps in logs to try and reconstruct what happened, which makes things harder.

If there was a way to make these consistent across devices (sort of like a vector clock? or we could send the ULID up to the sync server, and correlate those with client logs), we could see which device synced in which order, and when—which, on the one hand, would be super valuable for tracking down consistency issues, but, on the other hand, might have even bigger privacy implications.

@jdragojevic
Copy link
Contributor

sounds like done.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants