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); } }
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); }
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); }
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); }
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); } }
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); }