コード例 #1
0
        private static long GetTotalSize(DocumentDatabase db)
        {
            if (db == null)
            {
                return(0);
            }

            return
                (db.GetAllStoragesEnvironment().Sum(env => env.Environment.Stats().AllocatedDataFileSizeInBytes));
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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;
                }
            }));
        }
コード例 #5
0
 public DatabaseLiveIoStatsCollector(DocumentDatabase database) : base(database.IoChanges, database.GetAllStoragesEnvironment().ToList(), database.GetAllPerformanceMetrics(), database.DocumentsStorage.ContextPool, database.DatabaseShutdown)
 {
 }
コード例 #6
0
        protected override Gauge32 GetData(DocumentDatabase database)
        {
            var size = database.GetAllStoragesEnvironment().Sum(x => x.Environment.Stats().AllocatedDataFileSizeInBytes);

            return(new Gauge32(size / 1024L / 1024L));
        }