protected virtual void OnWriteWorkloadResultVerboseInfo(WorkloadResult workloadResult) { Console.WriteLine("{0}[Operation results]", Indent); foreach (var operationResult in workloadResult.GetOperationResults()) { Console.WriteLine("{0}{0}[Duration (ms):{1}]", Indent, operationResult.TimeTaken); Console.WriteLine("{0}{0}[Succeeded:{1}]", Indent, operationResult.Succeeded); Console.WriteLine("{0}{0}[Message:{1}]", Indent, operationResult.Message.RemoveNewLines()); } }
public virtual void Write(WorkloadResult workloadResult) { WriteIsolated(ConsoleColor.Yellow, () => { OnWriteWorkloadResultShortInfo(workloadResult); OnWriteWorkloadGroupedFailedOperations(workloadResult); if (Verbose) { OnWriteWorkloadResultVerboseInfo(workloadResult); } Console.WriteLine(); }); }
protected virtual void OnWriteWorkloadGroupedFailedOperations(WorkloadResult workloadResult) { var failedOperations = workloadResult.GetGroupedFailedOperations(); if (!failedOperations.Any()) { return; } OnWrite(ConsoleColor.Magenta, () => { Console.WriteLine("{0}[Grouped failed operations: #{1}]", Indent, failedOperations.Count); foreach (var failedOperation in failedOperations) { Console.WriteLine("{0}{0}[Message:{1}]", Indent, failedOperation.Key.RemoveNewLines()); Console.WriteLine("{0}{0}[Count:{1}]", Indent, failedOperation.Value); } }); }
protected virtual void OnWriteWorkloadResultShortInfo(WorkloadResult workloadResult) { WriteIsolated(ConsoleColor.Yellow, () => { Console.WriteLine(); Console.WriteLine("[Completed workload: {0}]", workloadResult.Description); Console.WriteLine("{0}[Workload size: {1}]", Indent, workloadResult.WorkloadSize); Console.WriteLine("{0}[Total docsize: {1}]", Indent, workloadResult.GetTotalDocSize()); Console.WriteLine("{0}[Total operations: {1}]", Indent, workloadResult.CountOperations()); Console.WriteLine("{0}[Failed operations: {1}]", Indent, workloadResult.CountFailedOperations()); Console.WriteLine("{0}[Total time (ms): {1}]", Indent, workloadResult.TimeTaken.TotalMilliseconds); Console.WriteLine("{0}[Avg operations per/second: {1}]", Indent, Math.Round(workloadResult.CountOperations() / workloadResult.TimeTaken.TotalSeconds)); if (workloadResult.HasPerOperationTimings()) { Console.WriteLine("{0}[Avg operation time (ms): {1}]", Indent, workloadResult.GetAverageOperationMs()); Console.WriteLine("{0}[Min successful operation time (ms): {1}]", Indent, workloadResult.GetSuccessfulOperationMinDurationMs()); Console.WriteLine("{0}[Max successful operation time (ms): {1}]", Indent, workloadResult.GetSuccessfulOperationMaxDurationMs()); Console.WriteLine("{0}[95th percentile operation time (ms): {1}]", Indent, workloadResult.GetSuccessfullOperationPercentile(0.95)); Console.WriteLine("{0}[98th percentile operation time (ms): {1}]", Indent, workloadResult.GetSuccessfullOperationPercentile(0.98)); Console.WriteLine("{0}[99th percentile operation time (ms): {1}]", Indent, workloadResult.GetSuccessfullOperationPercentile(0.99)); } }); }
private Task CreateWorkloadTask(IBucket bucket, int workloadIndex, int index, WorkloadResult workloadResult) { Func <TimeSpan> getTiming; if (_enableTiming) { var sw = Stopwatch.StartNew(); getTiming = () => sw.Elapsed; } else { getTiming = () => TimeSpan.Zero; } try { return(OnExecuteStep(bucket, workloadIndex, index, getTiming) .ContinueWith(task => task.IsFaulted ? workloadResult.Register(new WorkloadOperationResult(task.Exception, getTiming())) : workloadResult.Register(task.Result))); } catch (Exception ex) { return(workloadResult.Register(new WorkloadOperationResult(ex, getTiming()))); } }