1*14675a02SAndroid Build Coastguard Worker// Copyright 2021 Google LLC 2*14675a02SAndroid Build Coastguard Worker// 3*14675a02SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 4*14675a02SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 5*14675a02SAndroid Build Coastguard Worker// You may obtain a copy of the License at 6*14675a02SAndroid Build Coastguard Worker// 7*14675a02SAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 8*14675a02SAndroid Build Coastguard Worker// 9*14675a02SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 10*14675a02SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 11*14675a02SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*14675a02SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 13*14675a02SAndroid Build Coastguard Worker// limitations under the License. 14*14675a02SAndroid Build Coastguard Worker 15*14675a02SAndroid Build Coastguard Workersyntax = "proto3"; 16*14675a02SAndroid Build Coastguard Worker 17*14675a02SAndroid Build Coastguard Workerpackage fcp.client.opstats; 18*14675a02SAndroid Build Coastguard Worker 19*14675a02SAndroid Build Coastguard Workerimport "google/protobuf/duration.proto"; 20*14675a02SAndroid Build Coastguard Workerimport "google/protobuf/timestamp.proto"; 21*14675a02SAndroid Build Coastguard Workerimport "fcp/protos/federated_api.proto"; 22*14675a02SAndroid Build Coastguard Worker 23*14675a02SAndroid Build Coastguard Worker// Operational stats per run. 24*14675a02SAndroid Build Coastguard Workermessage OperationalStats { 25*14675a02SAndroid Build Coastguard Worker // Population name. 26*14675a02SAndroid Build Coastguard Worker string population_name = 1; 27*14675a02SAndroid Build Coastguard Worker 28*14675a02SAndroid Build Coastguard Worker // Session name, if applicable. 29*14675a02SAndroid Build Coastguard Worker string session_name = 2; 30*14675a02SAndroid Build Coastguard Worker 31*14675a02SAndroid Build Coastguard Worker // Name of the task that was executed. 32*14675a02SAndroid Build Coastguard Worker string task_name = 3; 33*14675a02SAndroid Build Coastguard Worker 34*14675a02SAndroid Build Coastguard Worker // Timestamped training stages and error types. 35*14675a02SAndroid Build Coastguard Worker message Event { 36*14675a02SAndroid Build Coastguard Worker // Key training stages and error types. 37*14675a02SAndroid Build Coastguard Worker enum EventKind { 38*14675a02SAndroid Build Coastguard Worker EVENT_KIND_UNRECOGNIZED = 0; 39*14675a02SAndroid Build Coastguard Worker 40*14675a02SAndroid Build Coastguard Worker // An eligibility task checkin attempt started. This does not 41*14675a02SAndroid Build Coastguard Worker // indicate whether the eligibility checkin request was actually sent. 42*14675a02SAndroid Build Coastguard Worker EVENT_KIND_ELIGIBILITY_CHECKIN_STARTED = 1; 43*14675a02SAndroid Build Coastguard Worker 44*14675a02SAndroid Build Coastguard Worker // An eligibility task checkin response indicated that the client was 45*14675a02SAndroid Build Coastguard Worker // rejected because the client was incompatible with the population's 46*14675a02SAndroid Build Coastguard Worker // eligibility task plan. 47*14675a02SAndroid Build Coastguard Worker EVENT_KIND_ELIGIBILITY_REJECTED = 2; 48*14675a02SAndroid Build Coastguard Worker 49*14675a02SAndroid Build Coastguard Worker // An eligibility task checkin response indicated that eligibility task 50*14675a02SAndroid Build Coastguard Worker // plans are not configured. 51*14675a02SAndroid Build Coastguard Worker EVENT_KIND_ELIGIBILITY_DISABLED = 3; 52*14675a02SAndroid Build Coastguard Worker 53*14675a02SAndroid Build Coastguard Worker // An eligibility task checkin response return an eligibility task plan 54*14675a02SAndroid Build Coastguard Worker // URI, but the client hasn't downloaded the plan and checkpoint yet. Also 55*14675a02SAndroid Build Coastguard Worker // logged when the plan/checkpoint resources were actually supplied inline 56*14675a02SAndroid Build Coastguard Worker // in the protocol response message and no actual HTTP fetch needs to 57*14675a02SAndroid Build Coastguard Worker // happen anymore. This ensures that this event can always be compared 58*14675a02SAndroid Build Coastguard Worker // against EVENT_KIND_ELIGIBILITY_ENABLED. 59*14675a02SAndroid Build Coastguard Worker EVENT_KIND_ELIGIBILITY_PLAN_URI_RECEIVED = 48; 60*14675a02SAndroid Build Coastguard Worker 61*14675a02SAndroid Build Coastguard Worker // An eligibility task checkin response returned an eligibility task plan, 62*14675a02SAndroid Build Coastguard Worker // and the received plan was parseable. 63*14675a02SAndroid Build Coastguard Worker EVENT_KIND_ELIGIBILITY_ENABLED = 4; 64*14675a02SAndroid Build Coastguard Worker 65*14675a02SAndroid Build Coastguard Worker // A plan execution started for an eligibility task. 66*14675a02SAndroid Build Coastguard Worker EVENT_KIND_ELIGIBILITY_COMPUTATION_STARTED = 5; 67*14675a02SAndroid Build Coastguard Worker 68*14675a02SAndroid Build Coastguard Worker // A plan execution completed successfully for an eligibility task. 69*14675a02SAndroid Build Coastguard Worker EVENT_KIND_ELIGIBILITY_COMPUTATION_FINISHED = 6; 70*14675a02SAndroid Build Coastguard Worker 71*14675a02SAndroid Build Coastguard Worker // A checkin attempt started. This does not indicate whether the checkin 72*14675a02SAndroid Build Coastguard Worker // request was actually sent. 73*14675a02SAndroid Build Coastguard Worker EVENT_KIND_CHECKIN_STARTED = 7; 74*14675a02SAndroid Build Coastguard Worker 75*14675a02SAndroid Build Coastguard Worker // A checkin response indicated that the client was rejected. 76*14675a02SAndroid Build Coastguard Worker EVENT_KIND_CHECKIN_REJECTED = 8; 77*14675a02SAndroid Build Coastguard Worker 78*14675a02SAndroid Build Coastguard Worker // A checkin response indicated that the client was accepted for a task, 79*14675a02SAndroid Build Coastguard Worker // but the client hasn't downloaded the plan and checkpoint yet. Also 80*14675a02SAndroid Build Coastguard Worker // logged when the plan/checkpoint resources were actually supplied inline 81*14675a02SAndroid Build Coastguard Worker // in the protocol response message and no actual HTTP fetch needs to 82*14675a02SAndroid Build Coastguard Worker // happen anymore. This ensures that this event can always be compared 83*14675a02SAndroid Build Coastguard Worker // against EVENT_KIND_CHECKIN_ACCEPTED. 84*14675a02SAndroid Build Coastguard Worker EVENT_KIND_CHECKIN_PLAN_URI_RECEIVED = 49; 85*14675a02SAndroid Build Coastguard Worker 86*14675a02SAndroid Build Coastguard Worker // A checkin response indicated that the client was accepted for a task, 87*14675a02SAndroid Build Coastguard Worker // and the received plan was parseable. 88*14675a02SAndroid Build Coastguard Worker EVENT_KIND_CHECKIN_ACCEPTED = 9; 89*14675a02SAndroid Build Coastguard Worker 90*14675a02SAndroid Build Coastguard Worker // A plan execution started for a normal task. 91*14675a02SAndroid Build Coastguard Worker EVENT_KIND_COMPUTATION_STARTED = 10; 92*14675a02SAndroid Build Coastguard Worker 93*14675a02SAndroid Build Coastguard Worker // A plan execution completed successfully for a normal task. 94*14675a02SAndroid Build Coastguard Worker EVENT_KIND_COMPUTATION_FINISHED = 11; 95*14675a02SAndroid Build Coastguard Worker 96*14675a02SAndroid Build Coastguard Worker // An upload attempt started. This does not indicate whether the upload 97*14675a02SAndroid Build Coastguard Worker // was actually sent. 98*14675a02SAndroid Build Coastguard Worker // Deprecated: split into EVENT_KIND_RESULT_UPLOAD_STARTED and 99*14675a02SAndroid Build Coastguard Worker // EVENT_KIND_FAILURE_UPLOAD_STARTED. 100*14675a02SAndroid Build Coastguard Worker EVENT_KIND_UPLOAD_STARTED = 12 [deprecated = true]; 101*14675a02SAndroid Build Coastguard Worker 102*14675a02SAndroid Build Coastguard Worker // An upload response indicated that the server successfully received the 103*14675a02SAndroid Build Coastguard Worker // client's upload. This does not guarantee that the client's results are 104*14675a02SAndroid Build Coastguard Worker // included in a round update. 105*14675a02SAndroid Build Coastguard Worker // Deprecated: split into EVENT_KIND_RESULT_UPLOAD_FINISHED and 106*14675a02SAndroid Build Coastguard Worker // EVENT_KIND_FAILURE_UPLOAD_FINISHED. 107*14675a02SAndroid Build Coastguard Worker EVENT_KIND_UPLOAD_FINISHED = 13 [deprecated = true]; 108*14675a02SAndroid Build Coastguard Worker 109*14675a02SAndroid Build Coastguard Worker // The client interrupted training due to unmet training conditions. This 110*14675a02SAndroid Build Coastguard Worker // may occur during checkin, training, or upload. 111*14675a02SAndroid Build Coastguard Worker // Deprecated: split into EVENT_KIND_{phase}_INTERRUPTED, where phase is 112*14675a02SAndroid Build Coastguard Worker // one of ELIGIBILITY_CHECKIN, ELIGIBILITY_COMPUTATION, CHECKIN, 113*14675a02SAndroid Build Coastguard Worker // COMPUTATION, RESULT_UPLOAD, FAILURE_UPLOAD. 114*14675a02SAndroid Build Coastguard Worker EVENT_KIND_CLIENT_INTERRUPTED = 14 [deprecated = true]; 115*14675a02SAndroid Build Coastguard Worker 116*14675a02SAndroid Build Coastguard Worker // The server aborted the client's connection. This may occur during 117*14675a02SAndroid Build Coastguard Worker // checkin or upload. 118*14675a02SAndroid Build Coastguard Worker // Deprecated: split into EVENT_KIND_{phase}_SERVER_ABORTED, where phase 119*14675a02SAndroid Build Coastguard Worker // is one of ELIGIBILITY_CHECKIN, CHECKIN, RESULT_UPLOAD, FAILURE_UPLOAD. 120*14675a02SAndroid Build Coastguard Worker EVENT_KIND_SERVER_ABORTED = 15 [deprecated = true]; 121*14675a02SAndroid Build Coastguard Worker 122*14675a02SAndroid Build Coastguard Worker // An error occurred that was related to local storage access, 123*14675a02SAndroid Build Coastguard Worker // communication with the server, or an invalid plan. 124*14675a02SAndroid Build Coastguard Worker // Deprecated: split into EVENT_KIND_{phase}_ERROR_IO, 125*14675a02SAndroid Build Coastguard Worker // EVENT_KIND_{phase}_ERROR_INVALID_ARGUMENT and 126*14675a02SAndroid Build Coastguard Worker // EVENT_KIND_{phase}_ERROR_INVALID_PAYLOAD, where phase is one of 127*14675a02SAndroid Build Coastguard Worker // ELIGIBILITY_CHECKIN, CHECKIN, RESULT_UPLOAD, FAILURE_UPLOAD, 128*14675a02SAndroid Build Coastguard Worker // ELIGIBILITY_COMPUTATION, or COMPUTATION. 129*14675a02SAndroid Build Coastguard Worker EVENT_KIND_ERROR_IO = 16 [deprecated = true]; 130*14675a02SAndroid Build Coastguard Worker 131*14675a02SAndroid Build Coastguard Worker // The TensorFlow library reported an error. 132*14675a02SAndroid Build Coastguard Worker // Deprecated: split into EVENT_KIND_{phase}_ERROR_TENSORFLOW, where phase 133*14675a02SAndroid Build Coastguard Worker // is one of ELIGIBILITY_COMPUTATION, COMPUTATION. 134*14675a02SAndroid Build Coastguard Worker EVENT_KIND_ERROR_TENSORFLOW = 17 [deprecated = true]; 135*14675a02SAndroid Build Coastguard Worker 136*14675a02SAndroid Build Coastguard Worker // An error occurred when processing the example selector. 137*14675a02SAndroid Build Coastguard Worker // Deprecated: split into EVENT_KIND_{phase}_ERROR_EXAMPLE_ITERATOR, where 138*14675a02SAndroid Build Coastguard Worker // phase is one of ELIGIBILITY_EVAL_COMPUTATION, COMPUTATION. 139*14675a02SAndroid Build Coastguard Worker EVENT_KIND_ERROR_EXAMPLE_SELECTOR = 18 [deprecated = true]; 140*14675a02SAndroid Build Coastguard Worker 141*14675a02SAndroid Build Coastguard Worker // Indicates that training was scheduled but did not start due to runtime 142*14675a02SAndroid Build Coastguard Worker // checks (e.g. insufficient battery levels). 143*14675a02SAndroid Build Coastguard Worker EVENT_KIND_TRAIN_NOT_STARTED = 19; 144*14675a02SAndroid Build Coastguard Worker 145*14675a02SAndroid Build Coastguard Worker // Client issued an eligibility eval checkin request, but an IO error was 146*14675a02SAndroid Build Coastguard Worker // encountered. 147*14675a02SAndroid Build Coastguard Worker // Always preceded by EVENT_KIND_ELIGIBILITY_CHECKIN_STARTED. 148*14675a02SAndroid Build Coastguard Worker EVENT_KIND_ELIGIBILITY_CHECKIN_ERROR_IO = 20; 149*14675a02SAndroid Build Coastguard Worker 150*14675a02SAndroid Build Coastguard Worker // Client issued an eligibility eval checkin request, but an invalid 151*14675a02SAndroid Build Coastguard Worker // payload was received. 152*14675a02SAndroid Build Coastguard Worker // Always preceded by EVENT_KIND_ELIGIBILITY_CHECKIN_STARTED. 153*14675a02SAndroid Build Coastguard Worker EVENT_KIND_ELIGIBILITY_CHECKIN_ERROR_INVALID_PAYLOAD = 21; 154*14675a02SAndroid Build Coastguard Worker 155*14675a02SAndroid Build Coastguard Worker // Client issued an eligibility eval checkin request, but got interrupted 156*14675a02SAndroid Build Coastguard Worker // on the client. Always preceded by 157*14675a02SAndroid Build Coastguard Worker // EVENT_KIND_ELIGIBILITY_CHECKIN_STARTED. 158*14675a02SAndroid Build Coastguard Worker EVENT_KIND_ELIGIBILITY_CHECKIN_CLIENT_INTERRUPTED = 22; 159*14675a02SAndroid Build Coastguard Worker 160*14675a02SAndroid Build Coastguard Worker // Client issued an eligibility eval checkin request, but server aborted. 161*14675a02SAndroid Build Coastguard Worker // Always preceded by EVENT_KIND_ELIGIBILITY_CHECKIN_STARTED. 162*14675a02SAndroid Build Coastguard Worker EVENT_KIND_ELIGIBILITY_CHECKIN_SERVER_ABORTED = 23; 163*14675a02SAndroid Build Coastguard Worker 164*14675a02SAndroid Build Coastguard Worker // Client issued a regular checkin request, but got an IO error. 165*14675a02SAndroid Build Coastguard Worker // Always preceded by EVENT_KIND_CHECKIN_STARTED. 166*14675a02SAndroid Build Coastguard Worker EVENT_KIND_CHECKIN_ERROR_IO = 24; 167*14675a02SAndroid Build Coastguard Worker 168*14675a02SAndroid Build Coastguard Worker // Client issued a regular checkin request, but the server returned an 169*14675a02SAndroid Build Coastguard Worker // invalid payload. 170*14675a02SAndroid Build Coastguard Worker // Always preceded by EVENT_KIND_CHECKIN_STARTED. 171*14675a02SAndroid Build Coastguard Worker EVENT_KIND_CHECKIN_ERROR_INVALID_PAYLOAD = 25; 172*14675a02SAndroid Build Coastguard Worker 173*14675a02SAndroid Build Coastguard Worker // Client issued a regular checin request, but got interrupted on the 174*14675a02SAndroid Build Coastguard Worker // client. Always preceded by EVENT_KIND_CHECKIN_STARTED. 175*14675a02SAndroid Build Coastguard Worker EVENT_KIND_CHECKIN_CLIENT_INTERRUPTED = 26; 176*14675a02SAndroid Build Coastguard Worker 177*14675a02SAndroid Build Coastguard Worker // Client issued a regular checin request, but got aborted by the server. 178*14675a02SAndroid Build Coastguard Worker // Always preceded by EVENT_KIND_CHECKIN_STARTED. 179*14675a02SAndroid Build Coastguard Worker EVENT_KIND_CHECKIN_SERVER_ABORTED = 27; 180*14675a02SAndroid Build Coastguard Worker 181*14675a02SAndroid Build Coastguard Worker // Client encountered a TensorFlow error during eligibility eval task 182*14675a02SAndroid Build Coastguard Worker // computation. 183*14675a02SAndroid Build Coastguard Worker // Always preceded by EVENT_KIND_ELIGIBILITY_COMPUTATION_STARTED. 184*14675a02SAndroid Build Coastguard Worker EVENT_KIND_ELIGIBILITY_COMPUTATION_ERROR_TENSORFLOW = 28; 185*14675a02SAndroid Build Coastguard Worker 186*14675a02SAndroid Build Coastguard Worker // Reading from disk failed during eligibility eval task computation. 187*14675a02SAndroid Build Coastguard Worker // Always preceded by EVENT_KIND_ELIGIBILITY_COMPUTATION_STARTED. 188*14675a02SAndroid Build Coastguard Worker EVENT_KIND_ELIGIBILITY_COMPUTATION_ERROR_IO = 29; 189*14675a02SAndroid Build Coastguard Worker 190*14675a02SAndroid Build Coastguard Worker // Input parameters are invalid for eligibility eval task computation. 191*14675a02SAndroid Build Coastguard Worker // Always preceded by EVENT_KIND_ELIGIBILITY_COMPUTATION_STARTED. 192*14675a02SAndroid Build Coastguard Worker EVENT_KIND_ELIGIBILITY_COMPUTATION_ERROR_INVALID_ARGUMENT = 30; 193*14675a02SAndroid Build Coastguard Worker 194*14675a02SAndroid Build Coastguard Worker // Client encountered an example selector error during eligibility eval 195*14675a02SAndroid Build Coastguard Worker // task computation. Always preceded by 196*14675a02SAndroid Build Coastguard Worker // EVENT_KIND_ELIGIBILITY_COMPUTATION_STARTED. 197*14675a02SAndroid Build Coastguard Worker EVENT_KIND_ELIGIBILITY_COMPUTATION_ERROR_EXAMPLE_ITERATOR = 31; 198*14675a02SAndroid Build Coastguard Worker 199*14675a02SAndroid Build Coastguard Worker // Eligibility eval computation was interrupted by the client. 200*14675a02SAndroid Build Coastguard Worker // Always preceded by EVENT_KIND_ELIGIBILITY_COMPUTATION_STARTED. 201*14675a02SAndroid Build Coastguard Worker EVENT_KIND_ELIGIBILITY_COMPUTATION_CLIENT_INTERRUPTED = 32; 202*14675a02SAndroid Build Coastguard Worker 203*14675a02SAndroid Build Coastguard Worker // A TensorFlow error was encountered during computation, or the output 204*14675a02SAndroid Build Coastguard Worker // from the computation was missing or of an unexpected type. Always 205*14675a02SAndroid Build Coastguard Worker // preceded by EVENT_KIND_COMPUTATION_STARTED. 206*14675a02SAndroid Build Coastguard Worker EVENT_KIND_COMPUTATION_ERROR_TENSORFLOW = 33; 207*14675a02SAndroid Build Coastguard Worker 208*14675a02SAndroid Build Coastguard Worker // Reading from disk failed during computation. 209*14675a02SAndroid Build Coastguard Worker // Always preceded by EVENT_KIND_COMPUTATION_STARTED. 210*14675a02SAndroid Build Coastguard Worker EVENT_KIND_COMPUTATION_ERROR_IO = 34; 211*14675a02SAndroid Build Coastguard Worker 212*14675a02SAndroid Build Coastguard Worker // Input parameters are invalid for the given computation. 213*14675a02SAndroid Build Coastguard Worker // Always preceded by EVENT_KIND_COMPUTATION_STARTED. 214*14675a02SAndroid Build Coastguard Worker EVENT_KIND_COMPUTATION_ERROR_INVALID_ARGUMENT = 35; 215*14675a02SAndroid Build Coastguard Worker 216*14675a02SAndroid Build Coastguard Worker // An error occurred when processing the example selector. 217*14675a02SAndroid Build Coastguard Worker // Always preceded by EVENT_KIND_COMPUTATION_STARTED. 218*14675a02SAndroid Build Coastguard Worker EVENT_KIND_COMPUTATION_ERROR_EXAMPLE_ITERATOR = 36; 219*14675a02SAndroid Build Coastguard Worker 220*14675a02SAndroid Build Coastguard Worker // Client got interrupted during computation. 221*14675a02SAndroid Build Coastguard Worker // Always preceded by EVENT_KIND_COMPUTATION_STARTED. 222*14675a02SAndroid Build Coastguard Worker EVENT_KIND_COMPUTATION_CLIENT_INTERRUPTED = 37; 223*14675a02SAndroid Build Coastguard Worker 224*14675a02SAndroid Build Coastguard Worker // Client starts to upload successfully computed results. 225*14675a02SAndroid Build Coastguard Worker EVENT_KIND_RESULT_UPLOAD_STARTED = 38; 226*14675a02SAndroid Build Coastguard Worker 227*14675a02SAndroid Build Coastguard Worker // An error occurred during upload. 228*14675a02SAndroid Build Coastguard Worker // Always preceded by EVENT_KIND_RESULT_UPLOAD_STARTED. 229*14675a02SAndroid Build Coastguard Worker EVENT_KIND_RESULT_UPLOAD_ERROR_IO = 39; 230*14675a02SAndroid Build Coastguard Worker 231*14675a02SAndroid Build Coastguard Worker // Upload was interrupted by the client. 232*14675a02SAndroid Build Coastguard Worker // Always preceded by EVENT_KIND_RESULT_UPLOAD_STARTED. 233*14675a02SAndroid Build Coastguard Worker EVENT_KIND_RESULT_UPLOAD_CLIENT_INTERRUPTED = 40; 234*14675a02SAndroid Build Coastguard Worker 235*14675a02SAndroid Build Coastguard Worker // Upload was aborted by the server. 236*14675a02SAndroid Build Coastguard Worker // Always preceded by EVENT_KIND_RESULT_UPLOAD_STARTED. 237*14675a02SAndroid Build Coastguard Worker EVENT_KIND_RESULT_UPLOAD_SERVER_ABORTED = 41; 238*14675a02SAndroid Build Coastguard Worker 239*14675a02SAndroid Build Coastguard Worker // Client uploaded training results to the server 240*14675a02SAndroid Build Coastguard Worker // Always preceded by EVENT_KIND_RESULT_UPLOAD_STARTED. 241*14675a02SAndroid Build Coastguard Worker EVENT_KIND_RESULT_UPLOAD_FINISHED = 42; 242*14675a02SAndroid Build Coastguard Worker 243*14675a02SAndroid Build Coastguard Worker // Client starts to upload failure report. 244*14675a02SAndroid Build Coastguard Worker EVENT_KIND_FAILURE_UPLOAD_STARTED = 43; 245*14675a02SAndroid Build Coastguard Worker 246*14675a02SAndroid Build Coastguard Worker // An error occurred during upload. 247*14675a02SAndroid Build Coastguard Worker // Always preceded by EVENT_KIND_FAILURE_UPLOAD_STARTED. 248*14675a02SAndroid Build Coastguard Worker EVENT_KIND_FAILURE_UPLOAD_ERROR_IO = 44; 249*14675a02SAndroid Build Coastguard Worker 250*14675a02SAndroid Build Coastguard Worker // Upload was interrupted. 251*14675a02SAndroid Build Coastguard Worker // Always preceded by EVENT_KIND_FAILURE_UPLOAD_STARTED. 252*14675a02SAndroid Build Coastguard Worker EVENT_KIND_FAILURE_UPLOAD_CLIENT_INTERRUPTED = 45; 253*14675a02SAndroid Build Coastguard Worker 254*14675a02SAndroid Build Coastguard Worker // Upload was interrupted. 255*14675a02SAndroid Build Coastguard Worker // Always preceded by EVENT_KIND_FAILURE_UPLOAD_STARTED. 256*14675a02SAndroid Build Coastguard Worker EVENT_KIND_FAILURE_UPLOAD_SERVER_ABORTED = 46; 257*14675a02SAndroid Build Coastguard Worker 258*14675a02SAndroid Build Coastguard Worker // Client uploaded failure report to the server 259*14675a02SAndroid Build Coastguard Worker // Always preceded by EVENT_KIND_FAILURE_UPLOAD_STARTED. 260*14675a02SAndroid Build Coastguard Worker EVENT_KIND_FAILURE_UPLOAD_FINISHED = 47; 261*14675a02SAndroid Build Coastguard Worker 262*14675a02SAndroid Build Coastguard Worker // Client failed to initialize a component, but execution was not halted. 263*14675a02SAndroid Build Coastguard Worker EVENT_KIND_INITIALIZATION_ERROR_NONFATAL = 50; 264*14675a02SAndroid Build Coastguard Worker 265*14675a02SAndroid Build Coastguard Worker // Client failed to initialize a component, and execution was halted. 266*14675a02SAndroid Build Coastguard Worker EVENT_KIND_INITIALIZATION_ERROR_FATAL = 51; 267*14675a02SAndroid Build Coastguard Worker } 268*14675a02SAndroid Build Coastguard Worker 269*14675a02SAndroid Build Coastguard Worker EventKind event_type = 1; 270*14675a02SAndroid Build Coastguard Worker 271*14675a02SAndroid Build Coastguard Worker // Event time. 272*14675a02SAndroid Build Coastguard Worker google.protobuf.Timestamp timestamp = 2; 273*14675a02SAndroid Build Coastguard Worker } 274*14675a02SAndroid Build Coastguard Worker 275*14675a02SAndroid Build Coastguard Worker // History of key training stages and errors encountered during a run. The 276*14675a02SAndroid Build Coastguard Worker // events are stored in sequential order, with the earliest event first. 277*14675a02SAndroid Build Coastguard Worker repeated Event events = 4; 278*14675a02SAndroid Build Coastguard Worker 279*14675a02SAndroid Build Coastguard Worker // Stats about the examples read from a given collection, potentially 280*14675a02SAndroid Build Coastguard Worker // aggregated over multiple iterators. 281*14675a02SAndroid Build Coastguard Worker message DatasetStats { 282*14675a02SAndroid Build Coastguard Worker // Total number of examples read. 283*14675a02SAndroid Build Coastguard Worker int64 num_examples_read = 1; 284*14675a02SAndroid Build Coastguard Worker 285*14675a02SAndroid Build Coastguard Worker // Total number of bytes read. 286*14675a02SAndroid Build Coastguard Worker int64 num_bytes_read = 2; 287*14675a02SAndroid Build Coastguard Worker } 288*14675a02SAndroid Build Coastguard Worker 289*14675a02SAndroid Build Coastguard Worker // Map of dataset stats keyed on the collection URI. 290*14675a02SAndroid Build Coastguard Worker map<string, DatasetStats> dataset_stats = 5; 291*14675a02SAndroid Build Coastguard Worker 292*14675a02SAndroid Build Coastguard Worker // If this execution failed with an error, the message of that error. 293*14675a02SAndroid Build Coastguard Worker string error_message = 6; 294*14675a02SAndroid Build Coastguard Worker 295*14675a02SAndroid Build Coastguard Worker // The retry window returned by the fl runner. 296*14675a02SAndroid Build Coastguard Worker google.internal.federatedml.v2.RetryWindow retry_window = 7; 297*14675a02SAndroid Build Coastguard Worker 298*14675a02SAndroid Build Coastguard Worker // The number of bytes downloaded (payload size via the chunking layer, which 299*14675a02SAndroid Build Coastguard Worker // may be compressed) from the server while executing the task thus far. 300*14675a02SAndroid Build Coastguard Worker int64 chunking_layer_bytes_downloaded = 10; 301*14675a02SAndroid Build Coastguard Worker 302*14675a02SAndroid Build Coastguard Worker // The number of bytes uploaded (payload size via the chunking layer, which 303*14675a02SAndroid Build Coastguard Worker // may be compressed) from the server while executing the task thus far. 304*14675a02SAndroid Build Coastguard Worker int64 chunking_layer_bytes_uploaded = 11; 305*14675a02SAndroid Build Coastguard Worker 306*14675a02SAndroid Build Coastguard Worker // The duration of time spent waiting on the network (but excluding idle time 307*14675a02SAndroid Build Coastguard Worker // like the time between polling the server). 308*14675a02SAndroid Build Coastguard Worker google.protobuf.Duration network_duration = 12; 309*14675a02SAndroid Build Coastguard Worker 310*14675a02SAndroid Build Coastguard Worker reserved 8, 9; 311*14675a02SAndroid Build Coastguard Worker} 312*14675a02SAndroid Build Coastguard Worker 313*14675a02SAndroid Build Coastguard Worker// Top level op stats message. 314*14675a02SAndroid Build Coastguard Workermessage OpStatsSequence { 315*14675a02SAndroid Build Coastguard Worker // The OperationalStats messages are stored in sequential order, with the 316*14675a02SAndroid Build Coastguard Worker // earliest message first. 317*14675a02SAndroid Build Coastguard Worker repeated OperationalStats opstats = 1; 318*14675a02SAndroid Build Coastguard Worker // A timestamp that marks when we can start to trust the data in the 319*14675a02SAndroid Build Coastguard Worker // OpStatsDb. Any event happens before this time is missing or removed. 320*14675a02SAndroid Build Coastguard Worker google.protobuf.Timestamp earliest_trustworthy_time = 2; 321*14675a02SAndroid Build Coastguard Worker} 322*14675a02SAndroid Build Coastguard Worker 323*14675a02SAndroid Build Coastguard Worker// Selection criteria for op stats data. 324*14675a02SAndroid Build Coastguard Worker// If this selection criteria not set, all data will be used. 325*14675a02SAndroid Build Coastguard Worker// If start_time is not set but end_time is set, all examples up to end_time 326*14675a02SAndroid Build Coastguard Worker// will be used. 327*14675a02SAndroid Build Coastguard Worker// If end_time is not set, all examples after start_time will be used. 328*14675a02SAndroid Build Coastguard Worker// If neither start_time nor end_time are set, all examples will be used. 329*14675a02SAndroid Build Coastguard Worker// If both start_time and end_time are set, the examples within the time range 330*14675a02SAndroid Build Coastguard Worker// will be used. 331*14675a02SAndroid Build Coastguard Worker// If last_successful_contribution is set, start_time and end_time are ignored, 332*14675a02SAndroid Build Coastguard Worker// and opstats returns a single example containing the entry of the last 333*14675a02SAndroid Build Coastguard Worker// successful contribution (if it exists) of the runtime to the current task. If 334*14675a02SAndroid Build Coastguard Worker// there are no previous successful contributions, returns an empty iterator. 335*14675a02SAndroid Build Coastguard Workermessage OpStatsSelectionCriteria { 336*14675a02SAndroid Build Coastguard Worker // The lower bound (inclusive) of the last updated time for a OperationalStats 337*14675a02SAndroid Build Coastguard Worker // message. 338*14675a02SAndroid Build Coastguard Worker google.protobuf.Timestamp start_time = 1; 339*14675a02SAndroid Build Coastguard Worker // The upper bound (inclusive) of the last updated time for a OperationalStats 340*14675a02SAndroid Build Coastguard Worker // message. 341*14675a02SAndroid Build Coastguard Worker google.protobuf.Timestamp end_time = 2; 342*14675a02SAndroid Build Coastguard Worker // If set, returns the entry of the last successful contribution to the 343*14675a02SAndroid Build Coastguard Worker // current task, or no entries if there was no successful contribution. 344*14675a02SAndroid Build Coastguard Worker // `start_time` and `end_time are ignored. 345*14675a02SAndroid Build Coastguard Worker bool last_successful_contribution = 3; 346*14675a02SAndroid Build Coastguard Worker} 347