monitor method

Implementation

Future<HttpClientRequest> monitor(Future<HttpClientRequest> future) async {
  try {
    final request = await future;
    httpInfo ??= HttpInfo(request.uri, request.method);
    final kit = ApmKitManager.instance.getKit(ApmKitName.kitHttp);
    kit?.save(httpInfo);
    return DoKitHttpClientRequest(request, httpInfo);
  } catch (error) {
    if (httpInfo == null) {
      httpInfo = HttpInfo.error(error.toString());
      final kit = ApmKitManager.instance.getKit(ApmKitName.kitHttp);
      kit?.save(httpInfo);
    }
    rethrow;
  }
}