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());
        }
Example #2
0
        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);
        }
Example #3
0
 /// <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);
     }
 }
Example #4
0
        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;
            }
        }
Example #5
0
        /// <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);
                }
            }
        }
Example #6
0
        public void OccurredOn()
        {
            var data = DateTime.UtcNow;
            var set  = new ServerStatisticSet();

            set.OccurredOn = data;
            Assert.AreEqual <DateTime>(data, set.OccurredOn);
        }
Example #7
0
        public void DeploymentId()
        {
            var data = StringHelper.ValidString();
            var set  = new ServerStatisticSet();

            set.DeploymentId = data;
            Assert.AreEqual <string>(data, set.DeploymentId);
        }
Example #8
0
        public void MachineName()
        {
            var data = StringHelper.ValidString();
            var set  = new ServerStatisticSet();

            set.MachineName = data;
            Assert.AreEqual <string>(data, set.MachineName);
        }
Example #9
0
        public void PhysicalDiskUsagePercentage()
        {
            var random = new Random();
            var data   = random.Next();
            var set    = new ServerStatisticSet();

            set.PhysicalDiskUsagePercentage = data;
            Assert.AreEqual <float>(data, set.PhysicalDiskUsagePercentage);
        }
Example #10
0
        public void LogServerStatisticSetTokenApplicationIdEmpty()
        {
            var item = new ServerStatisticSet()
            {
                Token = new Token()
            };
            var core = new LogCore();

            core.Log(item);
        }
Example #11
0
        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));
        }
Example #12
0
        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));
        }
Example #13
0
        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);
            }
        }
Example #14
0
        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);
        }
Example #15
0
        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));
        }
Example #16
0
        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());
        }
Example #17
0
        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));
        }