Пример #1
0
        public void GetDataCollectionMetricsTest()
        {
            var metrics = new DataCollectionMetrics[] {
                new DataCollectionMetrics()
                {
                    Name = "test_data_types", RowCount = 1, TotalSpaceKB = 32
                },
                new DataCollectionMetrics()
                {
                    Name = "test_field_names", RowCount = 1, TotalSpaceKB = 32
                },
                new DataCollectionMetrics()
                {
                    Name = "test_index", RowCount = 7, TotalSpaceKB = 32
                },
                new DataCollectionMetrics()
                {
                    Name = "test_index_ref", RowCount = 2, TotalSpaceKB = 48
                }
            };

            var result = _instance.GetDataCollectionMetrics(_container);

            foreach (var metric in metrics)
            {
                var resultMetric = result.First <DataCollectionMetrics>(x => x.Name.Equals(metric.Name));
                Assert.NotNull(resultMetric);

                Assert.Equal(metric.RowCount, resultMetric.RowCount);
                Assert.Equal(metric.TotalSpaceKB, resultMetric.TotalSpaceKB);
            }
        }
Пример #2
0
        public override List <DataCollectionMetrics> GetDataCollectionMetrics(DataContainer container)
        {
            string databaseName = GetDatabaseNameFromConnectionString(container.ConnectionString);

            var           client          = new MongoClient(container.ConnectionString);
            var           database        = client.GetDatabase(databaseName);
            List <string> collectionNames = database.ListCollectionNames().ToList();

            var dataCollectionMetrics = new List <DataCollectionMetrics>();

            foreach (string collectionName in collectionNames)
            {
                var command = new BsonDocument {
                    { "collStats", collectionName }, { "scale", 1 }
                };
                var collectionStats = database.RunCommand <BsonDocument>(command);

                var metrics = new DataCollectionMetrics();
                metrics.Name         = collectionName;
                metrics.RowCount     = collectionStats["count"].AsInt32;
                metrics.TotalSpaceKB = (collectionStats["storageSize"].AsInt32 + collectionStats["totalIndexSize"].AsInt32) / 1024.0M;
                metrics.UsedSpaceKB  = metrics.TotalSpaceKB;

                dataCollectionMetrics.Add(metrics);
            }

            return(dataCollectionMetrics);
        }
Пример #3
0
        public void GetDataCollectionMetricsTest()
        {
            var metrics = new DataCollectionMetrics[] {
                new DataCollectionMetrics()
                {
                    Name = "EMAILS", RowCount = 200, TotalSpaceKB = 544
                },
                new DataCollectionMetrics()
                {
                    Name = "LEADS", RowCount = 200, TotalSpaceKB = 672
                },
                new DataCollectionMetrics()
                {
                    Name = "CONTACTS", RowCount = 200, TotalSpaceKB = 640
                },
            };

            var result = _instance.GetDataCollectionMetrics(_container);

            Assert.Equal(metrics.Length, result.Count);

            foreach (var metric in metrics)
            {
                var resultMetric = result.Find(x => x.Name.Equals(metric.Name));
                Assert.NotNull(resultMetric);

                Assert.Equal(metric.RowCount, resultMetric.RowCount);
            }
        }
        public override List <DataCollectionMetrics> GetDataCollectionMetrics(DataContainer container)
        {
            var dataCollectionMetrics = new List <DataCollectionMetrics>();

            Dictionary <string, string> connectionStringValues = GetConnectionStringValues(container.ConnectionString);

            try
            {
                ICluster _cluster = Cluster.Builder().AddContactPoint(connectionStringValues["address"]).Build();
                ISession _session = _cluster.Connect();

                string query = "select * from system_schema.tables where keyspace_name = '" + connectionStringValues["keyspace"] + "'";
                RowSet res   = _session.Execute(query);

                var rows = res.GetRows().ToList();
                if (rows.Count() > 0)
                {
                    foreach (Row row in rows)
                    {
                        var    table_name = row.GetValue <string>("table_name");
                        string queryCnt   = "select * from " + connectionStringValues["keyspace"] + "." + table_name;
                        RowSet resCnt     = _session.Execute(queryCnt);
                        var    rowCnt     = resCnt.GetRows().ToList();

                        var metrics = new DataCollectionMetrics();
                        metrics.Name     = table_name;
                        metrics.RowCount = rowCnt.Count();

                        dataCollectionMetrics.Add(metrics);
                    }
                }
            }
            catch (Exception)
            {
                return(dataCollectionMetrics);
            }

            return(dataCollectionMetrics);
        }
Пример #5
0
        public override List <DataCollectionMetrics> GetDataCollectionMetrics(DataContainer container)
        {
            var dataCollectionMetrics = new List <DataCollectionMetrics>();

            var       redis  = ConnectionMultiplexer.Connect(container.ConnectionString);
            IDatabase db     = redis.GetDatabase();
            IServer   server = redis.GetServer(container.ConnectionString);

            foreach (var key in server.Keys())
            {
                RedisValue value = db.StringGet(key);

                var metrics = new DataCollectionMetrics();
                metrics.Name         = key;
                metrics.RowCount     = 1;
                metrics.TotalSpaceKB = value.Length() / 1024;
                metrics.UsedSpaceKB  = metrics.TotalSpaceKB;

                dataCollectionMetrics.Add(metrics);
            }

            return(dataCollectionMetrics);
        }
Пример #6
0
        public void GetDataCollectionMetricsTest()
        {
            var metrics = new DataCollectionMetrics[] {
                new DataCollectionMetrics()
                {
                    Name = "TEST_DATA_TYPES", RowCount = 1, TotalSpaceKB = 54.47M
                },
                new DataCollectionMetrics()
                {
                    Name = "TEST_FIELD_NAMES", RowCount = 1, TotalSpaceKB = 55.08M
                },
                new DataCollectionMetrics()
                {
                    Name = "TEST_INDEX", RowCount = 7, TotalSpaceKB = 54.45M
                },
                new DataCollectionMetrics()
                {
                    Name = "TEST_INDEX_REF", RowCount = 2, TotalSpaceKB = 55.07M
                }
            };

            var result = _instance.GetDataCollectionMetrics(_container);

            result = result.Where(x => x.Name.StartsWith("TEST_")).ToList();

            Assert.Equal(metrics.Length, result.Count);

            foreach (var metric in metrics)
            {
                var resultMetric = result.Find(x => x.Name.Equals(metric.Name));
                Assert.NotNull(resultMetric);

                Assert.Equal(metric.RowCount, resultMetric.RowCount);
                Assert.Equal(metric.TotalSpaceKB, resultMetric.TotalSpaceKB, 2);
            }
        }
        public void GetDataCollectionMetricsTest()
        {
            var metrics = new DataCollectionMetrics[] {
                new DataCollectionMetrics()
                {
                    Name = "TEST_DATA_TYPES", RowCount = 1, TotalSpaceKB = 32
                },
                new DataCollectionMetrics()
                {
                    Name = "TEST_FIELD_NAMES", RowCount = 1, TotalSpaceKB = 32
                },
                new DataCollectionMetrics()
                {
                    Name = "TEST_INDEX", RowCount = 7, TotalSpaceKB = 32
                },
                new DataCollectionMetrics()
                {
                    Name = "TEST_INDEX_REF", RowCount = 2, TotalSpaceKB = 48
                },
                new DataCollectionMetrics()
                {
                    Name = "TEST_ARRAY_TYPES", RowCount = 1, TotalSpaceKB = 48
                }
            };

            var result = _instance.GetDataCollectionMetrics(_container);

            foreach (var metric in metrics)
            {
                var resultMetric = result.First <DataCollectionMetrics>(x => x.Name.Equals(metric.Name));
                Assert.NotNull(resultMetric);

                Assert.Equal(metric.RowCount, resultMetric.RowCount);
                //Assert.Equal(metric.TotalSpaceKB, resultMetric.TotalSpaceKB);
            }
        }
Пример #8
0
        public override List <DataCollectionMetrics> GetDataCollectionMetrics(DataContainer container)
        {
            var metrics = new List <DataCollectionMetrics>();

            using (var redis =
                       ConnectionMultiplexer.Connect(
                           ConfigurationOptions.Parse(ParseConnectionString(container.ConnectionString)))) {
                var server = redis.GetServer(redis.GetEndPoints()[0]);

                var keys = server.Keys();

                DataCollectionMetrics metric = null;

                foreach (var key in keys)
                {
                    var keyString = key.ToString();

                    if (_keyPrefix != null)
                    {
                        if (!keyString.StartsWith(_keyPrefix))
                        {
                            continue;
                        }
                    }

                    string collectionName = null;
                    if (_keyCollectionSeparator != null && _keyLevels > 0)
                    {
                        var keyParts = keyString.Split(_keyCollectionSeparator);

                        var collectionNameBuilder = new StringBuilder();
                        for (int i = 0; i < _keyLevels && i < keyParts.Length; i++)
                        {
                            if (i > 0)
                            {
                                collectionNameBuilder.Append(_keyCollectionSeparator);
                            }
                            collectionNameBuilder.Append(keyParts[i]);
                        }

                        collectionName = collectionNameBuilder.ToString();
                    }
                    else
                    {
                        collectionName = keyString;
                    }

                    if (metric != null && metric.Name.Equals(collectionName))
                    {
                        metric.RowCount++;
                    }
                    else
                    {
                        metric = metrics.Find(x => x.Name.Equals(collectionName));
                        if (metric == null)
                        {
                            metric = new DataCollectionMetrics()
                            {
                                Name     = collectionName,
                                RowCount = 0
                            };
                            metrics.Add(metric);
                        }

                        metric.RowCount++;
                    }
                }
            }

            return(metrics);
        }