public void ResponseHandler(Models.RequestInstance requestInstance, Task <HttpResponseMessage> task) { if (task.Result != null) { Services.RequestPerformance.RecordEnd(requestInstance, task.Result); } }
public static void RecordEnd(Models.RequestInstance requestInstance, HttpResponseMessage response) { if (Enabled && requestInstance != null) { Performance.AddStat(requestInstance); } //var headers = task.Result.ToString(); //var body = task.Result.Content.ReadAsStringAsync().Result; //var fullResponse = headers + "\n" + body; }
public void AddStat(Models.RequestInstance requestInstance) { var endpointStat = _endpointStats.GetOrAdd(requestInstance.Endpoint, s => new Models.EndpointStat() { Name = requestInstance.Endpoint }); var end = DateTime.UtcNow.Ticks; var duration = (end - requestInstance.Start) / TimeSpan.TicksPerMillisecond; var stat = new Models.Stat() { Name = requestInstance.Endpoint, Duration = duration }; endpointStat.Record(stat); SlowestStats.Add(stat); SlowestStats = SlowestStats.OrderByDescending(s => s.Duration).Take(_config.SlowRequestCount).ToList(); }