public static IList <IResourcePerformanceCounter> GetResourceCounters(this List <IPerformanceCountersByResource> to) { var res = new List <IResourcePerformanceCounter>(); var performanceCountersByResources = to.Where(resource => !resource.IsDeleted && !string.IsNullOrEmpty(resource.CounterName)); foreach (var resourcePerformanceCounter in performanceCountersByResources) { if (resourcePerformanceCounter.TotalErrors) { var counter = new WarewolfNumberOfErrorsByResource(resourcePerformanceCounter.ResourceId, resourcePerformanceCounter.CounterName); res.Add(counter); } if (resourcePerformanceCounter.AverageExecutionTime) { var counter = new WarewolfAverageExecutionTimePerformanceCounterByResource(resourcePerformanceCounter.ResourceId, resourcePerformanceCounter.CounterName); res.Add(counter); } if (resourcePerformanceCounter.ConcurrentRequests) { var counter = new WarewolfCurrentExecutionsPerformanceCounterByResource(resourcePerformanceCounter.ResourceId, resourcePerformanceCounter.CounterName); res.Add(counter); } if (resourcePerformanceCounter.RequestPerSecond) { var counter = new WarewolfRequestsPerSecondPerformanceCounterByResource(resourcePerformanceCounter.ResourceId, resourcePerformanceCounter.CounterName); res.Add(counter); } } return(res); }
public IResourcePerformanceCounter CreateCounter(Guid resourceId, WarewolfPerfCounterType type, string name) { if (GetCounter(resourceId, type) == EmptyCounter) { IResourcePerformanceCounter counter; switch (type) { case WarewolfPerfCounterType.ExecutionErrors: counter = new WarewolfNumberOfErrorsByResource(resourceId, name); break; case WarewolfPerfCounterType.AverageExecutionTime: counter = new WarewolfAverageExecutionTimePerformanceCounterByResource(resourceId, name); break; case WarewolfPerfCounterType.ConcurrentRequests: counter = new WarewolfCurrentExecutionsPerformanceCounterByResource(resourceId, name); break; case WarewolfPerfCounterType.RequestsPerSecond: counter = new WarewolfRequestsPerSecondPerformanceCounterByResource(resourceId, name); break; default: return(new EmptyCounter()); } _resourceCounters.Add(counter); _perf.Save(_resourceCounters, EnvironmentVariables.ServerResourcePerfmonSettingsFile); return(counter); } return((IResourcePerformanceCounter)GetCounter(resourceId, type).FromSafe()); }
public void WarewolfAverageExecutionTimePerformanceCounterByResource_Construct() { var mockPerformanceCounterFactory = new Mock <IRealPerformanceCounterFactory>(); var performanceCounterFactory = mockPerformanceCounterFactory.Object; var originalCounter = new WarewolfAverageExecutionTimePerformanceCounterByResource(_resourceGuid, _categoryInstanceName, performanceCounterFactory); IPerformanceCounter counter = originalCounter; Assert.IsTrue(counter.IsActive); Assert.AreEqual(WarewolfPerfCounterType.AverageExecutionTime, counter.PerfCounterType); Assert.AreEqual(GlobalConstants.WarewolfServices, counter.Category); Assert.AreEqual(CounterName, counter.Name); Assert.AreEqual(_resourceGuid, originalCounter.ResourceId); }
public void WarewolfAverageExecutionTimePerformanceCounterByResource_Setup_CreatesCounter() { var mockPerformanceCounterFactory = new Mock <IRealPerformanceCounterFactory>(); var mockCounter = new Mock <IWarewolfPerformanceCounter>(); mockPerformanceCounterFactory.Setup(o => o.New(GlobalConstants.WarewolfServices, CounterName, GlobalConstants.GlobalCounterName)).Returns(mockCounter.Object); var performanceCounterFactory = mockPerformanceCounterFactory.Object; IPerformanceCounter counter = new WarewolfAverageExecutionTimePerformanceCounterByResource(_resourceGuid, _categoryInstanceName, performanceCounterFactory); counter.Setup(); mockPerformanceCounterFactory.Verify(o => o.New(GlobalConstants.WarewolfServices, CounterName, GlobalConstants.GlobalCounterName), Times.Once); }
public void WarewolfAverageExecutionTimePerformanceCounterByResource_IncrementBy_CallsUnderlyingCounter() { var mockPerformanceCounterFactory = new Mock <IRealPerformanceCounterFactory>(); var mockCounter = new Mock <IWarewolfPerformanceCounter>(); var mockCounter2 = new Mock <IWarewolfPerformanceCounter>(); mockPerformanceCounterFactory.Setup(o => o.New(GlobalConstants.WarewolfServices, CounterName, GlobalConstants.GlobalCounterName)).Returns(mockCounter.Object).Verifiable(); mockPerformanceCounterFactory.Setup(o => o.New(GlobalConstants.WarewolfServices, "average time per operation base", GlobalConstants.GlobalCounterName)).Returns(mockCounter2.Object).Verifiable(); var performanceCounterFactory = mockPerformanceCounterFactory.Object; IPerformanceCounter counter = new WarewolfAverageExecutionTimePerformanceCounterByResource(_resourceGuid, _categoryInstanceName, performanceCounterFactory); counter.Setup(); counter.IncrementBy(1234); mockPerformanceCounterFactory.Verify(); mockCounter.Verify(o => o.IncrementBy(1234), Times.Once); mockCounter2.Verify(o => o.Increment(), Times.Once); }
public void WarewolfAverageExecutionTimePerformanceCounterByResource_CreationData_Valid() { var mockPerformanceCounterFactory = new Mock <IRealPerformanceCounterFactory>(); var performanceCounterFactory = mockPerformanceCounterFactory.Object; IPerformanceCounter counter = new WarewolfAverageExecutionTimePerformanceCounterByResource(_resourceGuid, _categoryInstanceName, performanceCounterFactory); var data = counter.CreationData(); Assert.AreEqual(2, data.Count()); var dataItems = counter.CreationData().ToList(); Assert.AreEqual(CounterName, dataItems[0].CounterHelp); Assert.AreEqual(CounterName, dataItems[0].CounterName); Assert.AreEqual(PerformanceCounterType.AverageTimer32, dataItems[0].CounterType); Assert.AreEqual("Average duration per operation execution base", dataItems[1].CounterHelp); Assert.AreEqual("average time per operation base", dataItems[1].CounterName); Assert.AreEqual(PerformanceCounterType.AverageBase, dataItems[1].CounterType); }