Beispiel #1
0
        private static void AddInstanceIndexStats(StoreStats stats, InstanceStatsHolder response)
        {
            foreach (var index in stats.Indexing)
            {
                IndexStats indexStats = null;

                if (response.DatabaseStats != null &&
                    response.DatabaseStats.Indexes != null)
                {
                    indexStats = response.DatabaseStats.Indexes
                                 .Where(idx => idx.Name == index.Name)
                                 .FirstOrDefault();
                }

                var instanceIdxStatus = new InstanceIndexStats()
                {
                    Url = response.Url
                };
                if (indexStats == null)
                {
                    instanceIdxStatus.Exists  = false;
                    instanceIdxStatus.IsStale = true;
                }
                else
                {
                    instanceIdxStatus.Exists = true;
                    if (response.DatabaseStats != null &&
                        response.DatabaseStats.Indexes != null)
                    {
                        instanceIdxStatus.IsStale = response.DatabaseStats.StaleIndexes.Contains(index.Name);
                    }
                    else
                    {
                        instanceIdxStatus.IsStale = true;
                    }

                    if (response.IndexHashCodes != null)
                    {
                        int hashCode;
                        if (response.IndexHashCodes.TryGetValue(indexStats.Name, out hashCode))
                        {
                            instanceIdxStatus.HashCode = hashCode;
                        }
                    }

                    instanceIdxStatus.CopyFrom(indexStats);
                }

                index.Instances.Add(instanceIdxStatus);
            }
        }
Beispiel #2
0
        private static void AddStoreIndexStats(StoreStats stats, IEnumerable <InstanceStatsHolder> responses)
        {
            var allIndexNames = responses
                                .Where(r => r.DatabaseStats != null && r.DatabaseStats.Indexes != null)
                                .SelectMany(r => r.DatabaseStats.Indexes)
                                .Select(idx => idx.Name)
                                .Distinct()
                                .OrderBy(name => name);

            foreach (var indexName in allIndexNames)
            {
                stats.Indexing.Add(new IndexingStatistics {
                    Name = indexName
                });
            }
        }
Beispiel #3
0
        private static StoreStats CreateStats(Store store, IEnumerable <InstanceStatsHolder> responses)
        {
            var storeStats = new StoreStats {
                Name = store.Name
            };

            AddStoreIndexStats(storeStats, responses);

            foreach (var instance in store.Instances)
            {
                var response = responses.Where(r => r.Url == instance.Url).FirstOrDefault();
                AddInstanceIndexStats(storeStats, response);
                storeStats.Replication.Add(response.ReplicationStats);
            }

            return(storeStats);
        }
Beispiel #4
0
        private static void AddInstanceIndexStats(StoreStats stats, InstanceStatsHolder response)
        {
            foreach (var index in stats.Indexing)
            {
                IndexStats indexStats = null;

                if (response.DatabaseStats != null && 
                    response.DatabaseStats.Indexes != null)
                {
                    indexStats = response.DatabaseStats.Indexes
                        .Where(idx => idx.Name == index.Name)
                        .FirstOrDefault();
                }

                var instanceIdxStatus = new InstanceIndexStats() { Url = response.Url };
                if (indexStats == null)
                {
                    instanceIdxStatus.Exists = false;
                    instanceIdxStatus.IsStale = true;
                }
                else
                {
                    instanceIdxStatus.Exists = true;
                    if (response.DatabaseStats != null &&
                        response.DatabaseStats.Indexes != null)
                    {
                        instanceIdxStatus.IsStale = response.DatabaseStats.StaleIndexes.Contains(index.Name);
                    }
                    else
                    {
                        instanceIdxStatus.IsStale = true;
                    }

                    if (response.IndexHashCodes != null)
                    {
                        int hashCode;
                        if (response.IndexHashCodes.TryGetValue(indexStats.Name, out hashCode))
                        {
                            instanceIdxStatus.HashCode = hashCode;
                        }
                    }

                    instanceIdxStatus.CopyFrom(indexStats);
                }

                index.Instances.Add(instanceIdxStatus);
            }
        }
Beispiel #5
0
 private static void AddStoreIndexStats(StoreStats stats, IEnumerable<InstanceStatsHolder> responses)
 {
     var allIndexNames = responses
         .Where(r => r.DatabaseStats != null && r.DatabaseStats.Indexes != null)
         .SelectMany(r => r.DatabaseStats.Indexes)
         .Select(idx => idx.Name)
         .Distinct()
         .OrderBy(name => name);
     foreach (var indexName in allIndexNames)
     {
         stats.Indexing.Add(new IndexingStatistics { Name = indexName });
     }
 }
Beispiel #6
0
        private static StoreStats CreateStats(Store store, IEnumerable<InstanceStatsHolder> responses)
        {
            var storeStats = new StoreStats { Name = store.Name };

            AddStoreIndexStats(storeStats, responses);

            foreach (var instance in store.Instances)
            {
                var response = responses.Where(r => r.Url == instance.Url).FirstOrDefault();
                AddInstanceIndexStats(storeStats, response);
                storeStats.Replication.Add(response.ReplicationStats);
            }

            return storeStats;
        }