public void SiloStatisticsChangeNotification(SiloAddress updatedSilo, SiloRuntimeStatistics newSiloStats) { // just create a new empty CachedLocalStat and throw the old one. var updatedCacheEntry = new CachedLocalStat(updatedSilo, newSiloStats); localCache.AddOrUpdate(updatedSilo, k => updatedCacheEntry, (k, v) => updatedCacheEntry); }
internal void AddSiloMetricWithOrleans(/*SiloAddress*/ string siloAddr, SiloRuntimeStatistics siloMetric, SiloComputedStats siloComputedStat, DateTime time, int machines) { var siloStat = new SiloRuntimeStats() { ExpID = this.ExperimentID, Time = time, Machines = machines, Address = siloAddr.ToString(), CPU = siloMetric.CpuUsage, MemoryUsage = siloMetric.MemoryUsage, //Activations = siloMetric.ActivationCount, Activations = siloComputedStat.TotalActivations, RecentlyUsedActivations = siloMetric.RecentlyUsedActivationCount, ReceivedMessages = siloComputedStat.TotalRecvLocalSilo + siloComputedStat.TotalRecvNetworkSilo, SentMessages = siloComputedStat.TotalSentLocalSilo + siloComputedStat.TotalSentNetworkSilo, PartitionKey = this.ExperimentID, RowKey = siloAddr.ToString() + ":" + time.ToFileTime().ToString(), TotalRecvNetworkSilo = siloComputedStat.TotalRecvNetworkSilo, TotalSentLocalSilo = siloComputedStat.TotalSentLocalSilo, TotalSentNetworkSilo = siloComputedStat.TotalSentNetworkSilo, TotalRecvLocalSilo = siloComputedStat.TotalRecvLocalSilo, TotalClientMsg = siloComputedStat.TotalClientMessages }; if (this.siloMetrics == null) { this.siloMetrics = CreateTable("SiloMetrics"); } var insertOperation = TableOperation.Insert(siloStat); // Execute the insert operation. this.siloMetrics.Execute(insertOperation); }
internal CachedLocalStat(SiloRuntimeStatistics siloStats) => SiloStats = siloStats;
private static bool IsSiloOverloaded(SiloRuntimeStatistics stats) { return(stats.IsOverloaded || stats.CpuUsage >= 100); }
internal CachedLocalStat(SiloAddress address, SiloRuntimeStatistics siloStats) { Address = address; SiloStats = siloStats; }
private static bool IsSiloOverloaded(SiloRuntimeStatistics stats) { return stats.IsOverloaded || stats.CpuUsage >= 100; }