public bool AddOperation(ActivityOperationType activityOperationType, string instance, float value = 0f, int count = 1) { if (ExTraceGlobals.ActivityContextTracer.IsTraceEnabled(TraceType.DebugTrace)) { ExTraceGlobals.ActivityContextTracer.TraceDebug((long)this.LocalId.GetHashCode(), "ActivityScopeImpl.AddOperation - activityOperationType = {0}, instance = {1}, value = {2}. Key = {3}", new object[] { activityOperationType, instance ?? "<null>", value, this.LocalId }); } if (!this.VerifyIsStarted()) { return(false); } OperationStatistics operationStatistics = this.GetOperationStatistics(activityOperationType, instance); if (this.Status == ActivityContextStatus.ActivityStarted) { operationStatistics.AddCall(value, count); return(true); } return(false); }
public static void OnGlobalActivityEnded(ActivityScope globalActivityScope) { if (!ActivityCoverageReport.IsReportEnabled || globalActivityScope.ActivityType != ActivityType.Global) { return; } foreach (KeyValuePair <OperationKey, OperationStatistics> keyValuePair in globalActivityScope.Statistics) { OperationStatistics operationStatistics = null; if (ActivityCoverageReport.statistics.TryGetValue(keyValuePair.Key, out operationStatistics)) { operationStatistics.Merge(keyValuePair.Value); } else { ActivityCoverageReport.statistics[keyValuePair.Key] = keyValuePair.Value; } } ActivityCoverageReport.currentActivityCycleCount++; if (ActivityCoverageReport.currentActivityCycleCount == ActivityCoverageReport.rollupActivityCycleCount) { ActivityCoverageReport.LogReport(); ActivityCoverageReport.Clear(); } }
private OperationStatistics GetOperationStatistics(ActivityOperationType activityOperationType, string instance) { OperationKey key = new OperationKey(activityOperationType, instance); Func <OperationKey, OperationStatistics> valueFactory = (OperationKey operationKey) => OperationStatistics.GetInstance(operationKey); return(this.statistics.GetOrAdd(key, valueFactory)); }