sendMetrics method

void sendMetrics()

Implementation

void sendMetrics() async {
  bucket.closeBucket();
  if (bucket.isEmpty()) {
    return;
  }

  final localBucket = bucket;
  // For now, accept that a failing request will lose the metrics.
  bucket = Bucket(clock);

  try {
    final payload = MetricsPayload(
        appName: appName, instanceId: 'flutter', bucket: localBucket);
    final jsonPayload = json.encode(payload);
    final request = createRequest(jsonPayload);
    final response = await poster(request);
    if (response.statusCode > 399) {
      emit(errorEvent, {
        "type": 'HttpError',
        "code": response.statusCode,
      });
    }
  } catch (e) {
    emit(errorEvent, e);
  }
}