private static string BuildCommandString(RequestResultArgs request) { var url = request.Url; var commandTextBuilder = new StringBuilder(); // Basic request information // HTTP GET - 200 (Cached) commandTextBuilder.AppendFormat("HTTP {0} - {1} ({2})\n", request.Method, request.HttpResult, request.Status); // Request URL commandTextBuilder.AppendFormat("{0}\n\n", FormatUrl(url)); // Append query var query = FormatQuery(url); if (!String.IsNullOrWhiteSpace(query)) { commandTextBuilder.AppendFormat("{0}\n\n", query); } // Append POSTed data, if any (multi-get, PATCH, etc.) if (!String.IsNullOrWhiteSpace(request.PostedData)) { commandTextBuilder.Append(request.PostedData); } // Set the command string to a formatted string return(commandTextBuilder.ToString()); }
private static void IncludeTiming(RequestResultArgs request) { if (MiniProfiler.Current == null) { return; } var elapsedTicks = (long)ElapsedTicks.Invoke(MiniProfiler.Current, null); var elapsedSeconds = elapsedTicks / (double)Stopwatch.Frequency; var profilingStartedAt = DateTime.UtcNow.AddSeconds(-elapsedSeconds); #pragma warning disable 612,618 var secs = (request.At - profilingStartedAt).TotalSeconds; var timing = new SqlTiming // The default constructor is obsolete. We know about that; this is a hack anyway. { Id = Guid.NewGuid(), CommandString = FormatQuery(request.Url), StartMilliseconds = (decimal)secs * 1000, DurationMilliseconds = (decimal)request.DurationMilliseconds, FirstFetchDurationMilliseconds = (decimal)request.DurationMilliseconds, ExecuteType = ToExecuteType(request.Status), }; #pragma warning restore 612,618 MiniProfiler.Current.Head.AddSqlTiming(timing); MiniProfiler.Current.HasSqlTimings = true; }
void LogRequest(object sender, RequestResultArgs e) { if (LogWriter == null) { return; } LogWriter.WriteLine(@" {0} - {1} Url: {2} Duration: {3} milliseconds Method: {4} Posted Data: {5} Http Result: {6} Result Data: {7} ", e.At, // 0 e.Status, // 1 e.Url, // 2 e.DurationMilliseconds, // 3 e.Method, // 4 e.PostedData, // 5 e.HttpResult, // 6 e.Result); // 7 }
void LogRequest(object sender, RequestResultArgs e) { if (LogWriter == null) { return; } var entry = new StringBuilder().AppendFormat(@" {0} - {1} Url: {2} Duration: {3} milliseconds Method: {4} Posted Data: {5} Http Result: {6} Result Data: {7} Total Size: {8:n0}", e.At, e.Status, e.Url, e.DurationMilliseconds, e.Method, e.PostedData, e.HttpResult, e.Result, e.TotalSize); foreach (var item in e.AdditionalInformation) { entry.AppendFormat("{0}: {1}", item.Key, item.Value); } entry.AppendLine(); LogWriter.WriteLine(entry.ToString()); }
/// <summary> /// Invoke the LogRequest event /// </summary> internal void InvokeLogRequest(IHoldProfilingInformation sender, RequestResultArgs e) { var handler = LogRequest; if (handler != null) { handler(sender, e); } }
/// <summary> /// Invoke the LogRequest event /// </summary> internal void OnLogRequest(IHoldProfilingInformation sender, RequestResultArgs args) { var handler = LogRequest; if (handler != null) { handler(sender, args); } }
private static void EndRequest(object sender, RequestResultArgs e) { string queryName = e.Url.Split('?')[0]; if (queryName.StartsWith("/databases", StringComparison.InvariantCultureIgnoreCase)) { // Trim out the database prefix to the query queryName = "/" + String.Join("/", queryName.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries).Skip(2)); } NewRelic.Api.Agent.NewRelic.RecordResponseTimeMetric("RavenDB/Query" + queryName, (long)e.DurationMilliseconds); }
private static void EndRequest(object sender, RequestResultArgs e) { IDisposable request; if (_Requests.TryRemove(e.Url, out request)) { if (request != null) { request.Dispose(); } } }
private static void EndRequest(object sender, RequestResultArgs e) { if (!Enabled) { return; } Timeline("Query - " + e.Url, new TimerResult { StartTime = e.At.Subtract(TimeSpan.FromMilliseconds(e.DurationMilliseconds)), Offset = e.At.Subtract(TimeSpan.FromMilliseconds(e.DurationMilliseconds)).Subtract(ExecutionTimerFactory().RequestStart.ToUniversalTime()), Duration = TimeSpan.FromMilliseconds(e.DurationMilliseconds), }); }
public static RequestResultArgs FormatRequest(RequestResultArgs input) { return(new RequestResultArgs { DurationMilliseconds = input.DurationMilliseconds, At = input.At, HttpResult = input.HttpResult, Method = input.Method, Status = input.Status, Url = input.Url, PostedData = FilterData(input.PostedData), Result = FilterData(input.Result) }); }
private static void IncludeTiming(RequestResultArgs request) { if (MiniProfiler.Current == null || MiniProfiler.Current.Head == null) { return; } MiniProfiler.Current.Head.AddCustomTiming("raven", new RavenTiming(request, MiniProfiler.Current) { Id = Guid.NewGuid(), DurationMilliseconds = (decimal)request.DurationMilliseconds, FirstFetchDurationMilliseconds = (decimal)request.DurationMilliseconds, ExecuteType = request.Status.ToString() }); }
public ActionResult Edit(FinancialTransactionDto transaction) { RequestResultArgs requestResult = null; _callback.Completed += (args) => requestResult = args; var cmd = new UpdateFinancialTransactionCommand(transaction); _commandProcessor.Execute(cmd); if (!requestResult.Succeeded) { this.SetErrorMessageContents(requestResult.MessageContents); return(View(transaction)); } return(RedirectToAction("Index", new { accountId = transaction.AccountId })); }
private static void IncludeTiming(RequestResultArgs request, MiniProfiler profiler) { if (profiler == null || profiler.Head == null) { return; } var formattedRequest = JsonFormatter.FormatRequest(request); profiler.Head.AddCustomTiming("raven", new CustomTiming(profiler, BuildCommandString(formattedRequest)) { Id = Guid.NewGuid(), DurationMilliseconds = (decimal)formattedRequest.DurationMilliseconds, FirstFetchDurationMilliseconds = (decimal)formattedRequest.DurationMilliseconds, ExecuteType = formattedRequest.Status.ToString() }); }
public ActionResult Create(FinancialAccountDto account) { RequestResultArgs requestResult = null; _callback.Completed += (args) => requestResult = args; account.Id = Guid.NewGuid(); var cmd = new AddFinancialAccountCommand(account); _commandProcessor.Execute(cmd); if (!requestResult.Succeeded) { this.SetErrorMessageContents(requestResult.MessageContents); return(View(account)); } return(RedirectToAction("Index")); }
private static string BuildCommandString(RequestResultArgs request) { var uri = new Uri(request.Url); var sb = new StringBuilder(); // Basic request information // HTTP GET - 200 (Cached) sb.AppendFormat("HTTP {0} - {1} ({2})\n", request.Method, request.HttpResult, request.Status); // Request URL sb.AppendFormat("{0}://{1}{2}\n\n", uri.Scheme, uri.Authority, uri.AbsolutePath); // Append query if (uri.Query.HasValue()) { var match = IndexQueryPattern.Match(uri.AbsolutePath); if (match.Success) { string index = match.Groups[1].Value; if (index.HasValue()) { sb.Append("index=").AppendLine(index); } } if (uri.Query.Length > 1) { var qsValues = Uri.UnescapeDataString(uri.Query.Substring(1).Replace("&", "\n").Trim()); sb.AppendLine(qsValues); } } // Append POSTed data, if any (multi-get, PATCH, etc.) if (request.PostedData.HasValue()) { sb.Append(request.PostedData); } // Set the command string to a formatted string return(sb.ToString()); }
public ActionResult DeleteConfirmed(FinancialAccountDto account) { if (account == null || account.Id == Guid.Empty) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } RequestResultArgs requestResult = null; _callback.Completed += (args) => requestResult = args; var cmd = new RemoveFinancialAccountCommand(account.Id); _commandProcessor.Execute(cmd); if (!requestResult.Succeeded) { this.SetErrorMessageContents(requestResult.MessageContents); return(View(account)); } return(RedirectToAction("Index")); }
public ActionResult DeleteConfirmed(FinancialTransactionDto transaction) { if (transaction == null || transaction.Id == null || transaction.AccountId == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } RequestResultArgs requestResult = null; _callback.Completed += (args) => requestResult = args; var cmd = new RemoveFinancialTransactionCommand(transaction.Id, transaction.AccountId); _commandProcessor.Execute(cmd); if (!requestResult.Succeeded) { this.SetErrorMessageContents(requestResult.MessageContents); return(View(transaction)); } return(RedirectToAction("Index", new { accountId = transaction.AccountId })); }
public RavenTiming(RequestResultArgs request, MiniProfiler profiler) : base(profiler, null, null) { if (profiler == null) { throw new ArgumentNullException("profiler"); } _requestUrl = request.Url; var commandTextBuilder = new StringBuilder(); // Basic request information // HTTP GET - 200 (Cached) commandTextBuilder.AppendFormat("HTTP {0} - {1} ({2})\n", request.Method, request.HttpResult, request.Status); // Request URL commandTextBuilder.AppendFormat("{0}\n\n", FormatUrl()); // Append query var query = FormatQuery(); if (!String.IsNullOrWhiteSpace(query)) { commandTextBuilder.AppendFormat("{0}\n\n", query); } // Append POSTed data, if any (multi-get, PATCH, etc.) if (!String.IsNullOrWhiteSpace(request.PostedData)) { commandTextBuilder.Append(request.PostedData); } // Set the command string to a formatted string CommandString = commandTextBuilder.ToString(); }
private static void EndRequest(object sender, RequestResultArgs e) { DurationOnTimeline("Query - " + e.Url, e.At.Subtract(TimeSpan.FromMilliseconds(e.DurationMilliseconds)), TimeSpan.FromMilliseconds(e.DurationMilliseconds)); }
private static void EndRequest(object sender, RequestResultArgs e) { GlimpseTimer.Stop("Query - " + e.Url); }