returns (done, num-sent, error)
(clientId string)
| 148 | |
| 149 | // returns (done, num-sent, error) |
| 150 | func sendTEventsBatch(clientId string) (bool, int, error) { |
| 151 | ctx, cancelFn := context.WithTimeout(context.Background(), WCloudDefaultTimeout) |
| 152 | defer cancelFn() |
| 153 | events, err := telemetry.GetNonUploadedTEvents(ctx, TEventsBatchSize) |
| 154 | if err != nil { |
| 155 | return true, 0, fmt.Errorf("cannot get events: %v", err) |
| 156 | } |
| 157 | if len(events) == 0 { |
| 158 | return true, 0, nil |
| 159 | } |
| 160 | input := TEventsInputType{ |
| 161 | ClientId: clientId, |
| 162 | Events: events, |
| 163 | } |
| 164 | req, err := makeAnonPostReq(ctx, TEventsUrl, input) |
| 165 | if err != nil { |
| 166 | return true, 0, err |
| 167 | } |
| 168 | startTime := time.Now() |
| 169 | _, err = doRequest(req, nil, true) |
| 170 | latency := time.Since(startTime) |
| 171 | log.Printf("[wcloud] sent %d tevents (latency: %v)\n", len(events), latency) |
| 172 | if err != nil { |
| 173 | return true, 0, err |
| 174 | } |
| 175 | err = telemetry.MarkTEventsAsUploaded(ctx, events) |
| 176 | if err != nil { |
| 177 | return true, 0, fmt.Errorf("error marking activity as uploaded: %v", err) |
| 178 | } |
| 179 | return len(events) < TEventsBatchSize, len(events), nil |
| 180 | } |
| 181 | |
| 182 | func sendTEvents(clientId string) (int, error) { |
| 183 | numIters := 0 |
no test coverage detected