public void LatestServerStatisticsDeep() { var source = new LogCore(); var appId = Guid.NewGuid(); var server = Guid.NewGuid().ToString(); ServerStatisticSet data = null; for (var i = 0; i < 4; i++) { data = this.ServerStat(appId); data.MachineName = server; source.Log(data); } Assert.IsNotNull(data); var query = new LogQuery() { ApplicationIdentifier = appId, Deep = true, }; var results = source.LatestServerStatistics(query); Assert.IsNotNull(results, "Result should not be null."); Assert.AreEqual <int>(1, results.Count()); var result = results.FirstOrDefault(); Assert.IsNotNull(result, "Result should not be null."); Assert.AreEqual <double>(data.CpuUsagePercentage, result.CpuUsagePercentage); Assert.AreEqual <double>(data.MemoryUsagePercentage, result.MemoryUsagePercentage); Assert.AreEqual <double>(data.PhysicalDiskUsagePercentage, result.PhysicalDiskUsagePercentage); Assert.AreEqual <string>(data.MachineName, result.MachineName); Assert.AreEqual <int>(4, result.Range.Count()); }
public void ConvertNetworkPercentage2Latest() { var random = new Random(); var network = new float[] { random.Next(), random.Next() }; var set = new ServerStatisticSet() { CpuUsagePercentage = random.Next(100), MemoryUsagePercentage = random.Next(100), PhysicalDiskUsagePercentage = random.Next(100), DeploymentId = StringHelper.ValidString(), MachineName = StringHelper.ValidString(), OccurredOn = DateTime.UtcNow, Token = new Token() { ApplicationId = Guid.NewGuid() }, NetworkPercentages = network, }; var row = ((IConvert <LatestServerStatisticsRow>)set).Convert(); Assert.AreEqual <double>(set.CpuUsagePercentage, row.CpuUsagePercentage); Assert.AreEqual <double>(set.MemoryUsagePercentage, row.MemoryUsagePercentage); Assert.AreEqual <double>(set.PhysicalDiskUsagePercentage, row.PhysicalDiskUsagePercentage); Assert.AreEqual <DateTime>(set.OccurredOn, row.OccurredOn); Assert.AreEqual <string>(set.DeploymentId, row.DeploymentId); Assert.AreEqual <string>(set.MachineName, row.RowKey); Assert.AreEqual <Guid>(set.Token.ApplicationId, row.ApplicationId); Assert.AreEqual <double?>(network[0], row.NetworkPercentage1); Assert.AreEqual <double?>(network[1], row.NetworkPercentage2); Assert.IsNull(row.NetworkPercentage3); Assert.IsNull(row.NetworkPercentage4); }
/// <summary> /// Queue Server Statistic Set /// </summary> /// <param name="serverSet">Server Statistic Set</param> internal void Queue(ServerStatisticSet serverSet) { if (null != serverSet) { this.serverStatisticSets.Enqueue(serverSet); } }
public void LogServerStatisticSet(ServerStatisticSet data) { try { using (new PerformanceMonitor()) { var validator = new Validator <ServerStatisticSet>(); if (!validator.IsValid(data)) { logCore.Log(validator.AllMessages(data)); } else if (!this.tokenValidator.IsValid(data.Token)) { logCore.Log(this.tokenValidator.AllMessages(data.Token)); } else { application.Validate(data.Token.ApplicationId, data.Token.ValidationKey); logCore.StoreByteCount(data.Token.ApplicationId, DataCostType.Ingress, data); logCore.Log(data); } } } catch (Exception ex) { logCore.Log(ex, EventTypes.Error, (int)DatumFault.LogServerStatisticSet); throw; } }
/// <summary> /// Store Samples /// </summary> /// <param name="state">State</param> public void StoreSamples(object state) { using (new PerformanceMonitor()) { try { var statistics = new ServerStatisticSet() { CpuUsagePercentage = this.processor.SampledPercentage(), MemoryUsagePercentage = this.memory.SampledPercentage(), PhysicalDiskUsagePercentage = this.disk.SampledPercentage(), NetworkPercentages = network.Select(n => n.SampledPercentage()).Where(n => n > 0).ToArray(), OccurredOn = DateTime.UtcNow, MachineName = Environment.MachineName, Token = application.GetToken(), DeploymentId = Abc.Azure.AzureEnvironment.DeploymentId, }; MessageHandler.Instance.Queue(statistics); } catch (Exception ex) { log.Log(ex, Abc.Logging.EventTypes.Error); } } }
public void OccurredOn() { var data = DateTime.UtcNow; var set = new ServerStatisticSet(); set.OccurredOn = data; Assert.AreEqual <DateTime>(data, set.OccurredOn); }
public void DeploymentId() { var data = StringHelper.ValidString(); var set = new ServerStatisticSet(); set.DeploymentId = data; Assert.AreEqual <string>(data, set.DeploymentId); }
public void MachineName() { var data = StringHelper.ValidString(); var set = new ServerStatisticSet(); set.MachineName = data; Assert.AreEqual <string>(data, set.MachineName); }
public void PhysicalDiskUsagePercentage() { var random = new Random(); var data = random.Next(); var set = new ServerStatisticSet(); set.PhysicalDiskUsagePercentage = data; Assert.AreEqual <float>(data, set.PhysicalDiskUsagePercentage); }
public void LogServerStatisticSetTokenApplicationIdEmpty() { var item = new ServerStatisticSet() { Token = new Token() }; var core = new LogCore(); core.Log(item); }
public void InvalidMemoryUsagePercentage() { var random = new Random(); var data = random.Next() + 101; var set = new ServerStatisticSet(); set.MemoryUsagePercentage = data; var validator = new Validator <ServerStatisticSet>(); Assert.IsFalse(validator.IsValid(set)); }
public void InvalidDiskPercentageHigh() { var random = new Random(); var data = random.Next(101, 1000); var set = new ServerStatisticSet(); set.PhysicalDiskUsagePercentage = data; var validator = new Validator <ServerStatisticSet>(); Assert.IsFalse(validator.IsValid(set)); }
public void Log(ServerStatisticSet data) { Contract.Requires <ArgumentNullException>(null != data); Contract.Requires <ArgumentNullException>(null != data.Token); Contract.Requires <ArgumentException>(Guid.Empty != data.Token.ApplicationId); using (new PerformanceMonitor()) { this.serverStatisticsTable.AddEntity(data.Convert()); this.latestServerStatisticsTable.AddOrUpdateEntity(((IConvert <LatestServerStatisticsRow>)data).Convert()); this.StoreByteCount(data.Token.ApplicationId, DataCostType.Stored, data); } }
public void NetworkPercentages() { var random = new Random(); var list = new List <float>(); for (int i = 0; i < random.Next(1, 100); i++) { list.Add((float)random.Next()); } var data = list.ToArray(); var set = new ServerStatisticSet(); Assert.IsNull(set.NetworkPercentages); set.NetworkPercentages = data; Assert.AreEqual <int>(data.Length, set.NetworkPercentages.Length); }
public void ValidBoundaryLow() { var random = new Random(); var set = new ServerStatisticSet() { CpuUsagePercentage = 0, MemoryUsagePercentage = 0, PhysicalDiskUsagePercentage = 0, DeploymentId = StringHelper.ValidString(), MachineName = StringHelper.ValidString(), OccurredOn = DateTime.UtcNow, NetworkPercentages = null, }; var validator = new Validator <ServerStatisticSet>(); Assert.IsTrue(validator.IsValid(set)); }
public void LatestServerStatisticsMultiple() { var source = new LogCore(); var appId = Guid.NewGuid(); ServerStatisticSet data = null; for (var i = 0; i < 4; i++) { data = this.ServerStat(appId); source.Log(data); } Assert.IsNotNull(data); var query = new LogQuery() { ApplicationIdentifier = appId, }; var results = source.LatestServerStatistics(query); Assert.IsNotNull(results, "Result should not be null."); Assert.AreEqual <int>(4, results.Count()); }
public void ValidWithNetwork() { var random = new Random(); var data = new List <float>(); for (int i = 0; i < random.Next(1, 100); i++) { data.Add(random.Next(1, 100)); } var set = new ServerStatisticSet() { CpuUsagePercentage = random.Next(100), MemoryUsagePercentage = random.Next(100), PhysicalDiskUsagePercentage = random.Next(100), DeploymentId = StringHelper.ValidString(), MachineName = StringHelper.ValidString(), OccurredOn = DateTime.UtcNow, NetworkPercentages = data.ToArray(), }; var validator = new Validator <ServerStatisticSet>(); Assert.IsTrue(validator.IsValid(set)); }