private static long GetTotalSize(DocumentDatabase db) { if (db == null) { return(0); } return (db.GetAllStoragesEnvironment().Sum(env => env.Environment.Stats().AllocatedDataFileSizeInBytes)); }
private DatabaseStorageMetrics GetDatabaseStorageMetrics(DocumentDatabase database) { var result = new DatabaseStorageMetrics(); var documentsAllocatedDataFileSizeInBytes = 0L; var documentsUsedDataFileSizeInBytes = 0L; var indexesAllocatedDataFileSizeInBytes = 0L; var indexesUsedDataFileSizeInBytes = 0L; var totalAllocatedDataFileSizeInBytes = 0L; foreach (StorageEnvironmentWithType storageEnvironmentWithType in database.GetAllStoragesEnvironment()) { var stats = storageEnvironmentWithType.Environment.Stats(); totalAllocatedDataFileSizeInBytes += stats.AllocatedDataFileSizeInBytes; switch (storageEnvironmentWithType.Type) { case StorageEnvironmentWithType.StorageEnvironmentType.Documents: documentsAllocatedDataFileSizeInBytes += stats.AllocatedDataFileSizeInBytes; documentsUsedDataFileSizeInBytes += stats.UsedDataFileSizeInBytes; break; case StorageEnvironmentWithType.StorageEnvironmentType.Index: indexesAllocatedDataFileSizeInBytes += stats.AllocatedDataFileSizeInBytes; indexesUsedDataFileSizeInBytes += stats.UsedDataFileSizeInBytes; break; } } result.DocumentsAllocatedDataFileInMb = new Size(documentsAllocatedDataFileSizeInBytes, SizeUnit.Bytes).GetValue(SizeUnit.Megabytes); result.DocumentsUsedDataFileInMb = new Size(documentsUsedDataFileSizeInBytes, SizeUnit.Bytes).GetValue(SizeUnit.Megabytes); result.IndexesAllocatedDataFileInMb = new Size(indexesAllocatedDataFileSizeInBytes, SizeUnit.Bytes).GetValue(SizeUnit.Megabytes); result.IndexesUsedDataFileInMb = new Size(indexesUsedDataFileSizeInBytes, SizeUnit.Bytes).GetValue(SizeUnit.Megabytes); result.TotalAllocatedStorageFileInMb = new Size(totalAllocatedDataFileSizeInBytes, SizeUnit.Bytes).GetValue(SizeUnit.Megabytes); result.TotalFreeSpaceInMb = -1; if (database.Configuration.Core.RunInMemory == false) { var diskSpaceResult = database.MetricCacher.GetValue <DiskSpaceResult>(MetricCacher.Keys.Database.DiskSpaceInfo); if (diskSpaceResult != null) { result.TotalFreeSpaceInMb = diskSpaceResult.TotalFreeSpace.GetValue(SizeUnit.Megabytes); } } return(result); }
public static IOMetricsResponse GetIoMetricsResponse(DocumentDatabase documentDatabase) { var result = new IOMetricsResponse(); foreach (var storageEnvironment in documentDatabase.GetAllStoragesEnvironment()) { var metrics = GetIoMetrics(storageEnvironment.Environment); metrics.Type = storageEnvironment.Type; result.Environments.Add(metrics); } foreach (var metrics in documentDatabase.GetAllPerformanceMetrics()) { result.Performances.Add(metrics.Buffer); } return(result); }
private static long GetTotalSize(DocumentDatabase db) { if (db == null) { return(0); } return(db.GetAllStoragesEnvironment().Sum(env => { try { return env.Environment.Stats().AllocatedDataFileSizeInBytes; } catch (Exception) { return 0; } })); }
public DatabaseLiveIoStatsCollector(DocumentDatabase database) : base(database.IoChanges, database.GetAllStoragesEnvironment().ToList(), database.GetAllPerformanceMetrics(), database.DocumentsStorage.ContextPool, database.DatabaseShutdown) { }
protected override Gauge32 GetData(DocumentDatabase database) { var size = database.GetAllStoragesEnvironment().Sum(x => x.Environment.Stats().AllocatedDataFileSizeInBytes); return(new Gauge32(size / 1024L / 1024L)); }