OLD | NEW |
| (Empty) |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 // | |
5 // Sync protocol for debug info clients can send to the sync server. | |
6 | |
7 syntax = "proto2"; | |
8 | |
9 option optimize_for = LITE_RUNTIME; | |
10 option retain_unknown_fields = true; | |
11 | |
12 package sync_pb; | |
13 | |
14 import "get_updates_caller_info.proto"; | |
15 import "sync_enums.proto"; | |
16 | |
17 // Per-type hint information. | |
18 message TypeHint { | |
19 // The data type this hint applied to. | |
20 optional int32 data_type_id = 1; | |
21 | |
22 // Whether or not a valid hint is provided. | |
23 optional bool has_valid_hint = 2; | |
24 } | |
25 | |
26 // Information about the source that triggered a sync. | |
27 message SourceInfo { | |
28 // An enum indicating the reason for the nudge. | |
29 optional GetUpdatesCallerInfo.GetUpdatesSource source = 1; | |
30 | |
31 // The per-type hint information associated with the nudge. | |
32 repeated TypeHint type_hint = 2; | |
33 } | |
34 | |
35 // The additional info here is from the StatusController. They get sent when | |
36 // the event SYNC_CYCLE_COMPLETED is sent. | |
37 message SyncCycleCompletedEventInfo { | |
38 // optional bool syncer_stuck = 1; // Was always false, now obsolete. | |
39 | |
40 // The client has never set these values correctly. It set | |
41 // num_blocking_conflicts to the total number of conflicts detected and set | |
42 // num_non_blocking_conflicts to the number of blocking (aka. simple) | |
43 // conflicts. | |
44 // | |
45 // These counters have been deprecated to avoid further confusion. The newer | |
46 // counters provide more detail and are less buggy. | |
47 optional int32 num_blocking_conflicts = 2 [deprecated = true]; | |
48 optional int32 num_non_blocking_conflicts = 3 [deprecated = true]; | |
49 | |
50 // These new conflict counters replace the ones above. | |
51 optional int32 num_encryption_conflicts = 4; | |
52 optional int32 num_hierarchy_conflicts = 5; | |
53 optional int32 num_simple_conflicts = 6; // No longer sent since M24. | |
54 optional int32 num_server_conflicts = 7; | |
55 | |
56 // Counts to track the effective usefulness of our GetUpdate requests. | |
57 optional int32 num_updates_downloaded = 8; | |
58 optional int32 num_reflected_updates_downloaded = 9; | |
59 optional GetUpdatesCallerInfo caller_info = 10; | |
60 | |
61 // A list of all the sources that were merged into this session. | |
62 // | |
63 // Some scenarios, notably mode switches and canary jobs, can spuriously add | |
64 // back-to-back duplicate sources to this list. | |
65 repeated SourceInfo source_info = 11; | |
66 } | |
67 | |
68 // Datatype specifics statistics gathered at association time. | |
69 message DatatypeAssociationStats { | |
70 // The datatype that was associated. | |
71 optional int32 data_type_id = 1; | |
72 | |
73 // The state of the world before association. | |
74 optional int32 num_local_items_before_association = 2; | |
75 optional int32 num_sync_items_before_association = 3; | |
76 | |
77 // The state of the world after association. | |
78 optional int32 num_local_items_after_association = 4; | |
79 optional int32 num_sync_items_after_association = 5; | |
80 | |
81 // The changes that got us from before to after. In a correctly working | |
82 // system these should be the deltas between before and after. | |
83 optional int32 num_local_items_added = 6; | |
84 optional int32 num_local_items_deleted = 7; | |
85 optional int32 num_local_items_modified = 8; | |
86 optional int32 num_sync_items_added = 9; | |
87 optional int32 num_sync_items_deleted = 10; | |
88 optional int32 num_sync_items_modified = 11; | |
89 | |
90 // Model versions before association. Ideally local and sync model should | |
91 // have same version if models were persisted properly in last session. | |
92 // Note: currently version is only set on bookmark model. | |
93 optional int64 local_version_pre_association = 20; | |
94 optional int64 sync_version_pre_association = 21; | |
95 | |
96 // The data type ran into an error during model association. | |
97 optional bool had_error = 12; | |
98 | |
99 // Waiting time before downloading starts. This measures the time between | |
100 // receiving configuration request for a set of data types to starting | |
101 // downloading data of this type. | |
102 optional int64 download_wait_time_us = 15; | |
103 | |
104 // Time spent on downloading sync data for first time sync. | |
105 // Note: This measures the time between asking backend to download data to | |
106 // being notified of download-ready by backend. So it consists of | |
107 // time on data downloading and processing at sync backend. But | |
108 // downloading time should dominate. It's also the total time spent on | |
109 // downloading data of all types in the priority group of | |
110 // |data_type_id| instead of just one data type. | |
111 optional int64 download_time_us = 13; | |
112 | |
113 // Waiting time for higher priority types to finish association. This | |
114 // measures the time between finishing downloading data to requesting | |
115 // association manager to associate this batch of types. High priority types | |
116 // have near zero waiting time. | |
117 optional int64 association_wait_time_for_high_priority_us = 16; | |
118 | |
119 // Waiting time for other types with same priority during association. | |
120 // Data type manger sends types of same priority to association manager to | |
121 // configure as a batch. Association manager configures one type at a time. | |
122 // This measures the time between when a type is sent to association manager | |
123 // (among other types) to when association manager starts configuring the | |
124 // type. Total wait time before association is | |
125 // |association_wait_time_for_high_priority_us| + | |
126 // |association_wait_time_for_same_priority_us| | |
127 optional int64 association_wait_time_for_same_priority_us = 14; | |
128 | |
129 // Time spent on model association. | |
130 optional int64 association_time_us = 17; | |
131 | |
132 // Higher priority type that's configured before this type. | |
133 repeated int32 high_priority_type_configured_before = 18; | |
134 | |
135 // Same priority type that's configured before this type. | |
136 repeated int32 same_priority_type_configured_before = 19; | |
137 } | |
138 | |
139 message DebugEventInfo { | |
140 // Each of the following fields correspond to different kinds of events. as | |
141 // a result, only one is set during any single DebugEventInfo. | |
142 // A singleton event. See enum definition. | |
143 optional SyncEnums.SingletonDebugEventType singleton_event = 1; | |
144 // A sync cycle completed. | |
145 optional SyncCycleCompletedEventInfo sync_cycle_completed_event_info = 2; | |
146 // A datatype triggered a nudge. | |
147 optional int32 nudging_datatype = 3; | |
148 // A notification triggered a nudge. | |
149 repeated int32 datatypes_notified_from_server = 4; | |
150 // A datatype finished model association. | |
151 optional DatatypeAssociationStats datatype_association_stats = 5; | |
152 } | |
153 | |
154 message DebugInfo { | |
155 repeated DebugEventInfo events = 1; | |
156 | |
157 // Whether cryptographer is ready to encrypt and decrypt data. | |
158 optional bool cryptographer_ready = 2; | |
159 | |
160 // Cryptographer has pending keys which indicates the correct passphrase | |
161 // has not been provided yet. | |
162 optional bool cryptographer_has_pending_keys = 3; | |
163 | |
164 // Indicates client has dropped some events to save bandwidth. | |
165 optional bool events_dropped = 4; | |
166 } | |
OLD | NEW |