예제 #1
0
        public void ShowState(bool resetStats)
        {
            AssetStats stats = m_assetServer.GetStats(resetStats);

            if (resetStats)
            {
                return;
            }

            float RHits = (stats.nGet > 0) ? ((float)stats.nGetHit / (float)stats.nGet) : 1.0f;

            m_log.InfoFormat("[ASSET_STATS]: reads={0} hits/fetched/missing={1}/{2}/{3} ({4}%), {5}",
                             stats.nGet, stats.nGetHit, stats.nGetFetches, stats.nGetNotFound, (int)(RHits * 100),
                             GetMinAvgMax(stats.allGets, "min/avg/max={0}/{1}/{2}")
                             );
            float WHits = (stats.nPut > 0) ? ((float)stats.nPutCached / (float)stats.nPut) : 1.0f;

            m_log.InfoFormat("[ASSET_STATS]: writes={0}, cached={1} ({2}%), uncached exists/size/stream/dupe={3}/{4}/{5}/{6} {7}",
                             stats.nPut, stats.nPutCached, (int)(WHits * 100),
                             stats.nPutExists, stats.nBigAsset, stats.nBigStream, stats.nDupUpdate,
                             GetMinAvgMax(stats.allPuts, "min/avg/max={0}/{1}/{2}")
                             );
            m_log.InfoFormat("[ASSET_STATS]: Total={0}, readErr init={1}, writeErr TO/NTO/ex/web/io={2}/{3}/{4}/{5}/{6}",
                             stats.nTotal, stats.nGetInit,
                             stats.nPutTO, stats.nPutNTO, stats.nPutExcept, stats.nPutExceptWeb, stats.nPutExceptIO);
        }
예제 #2
0
        public static StorageUsagePerDateDto FromStats(AssetStats stats)
        {
            var result = new StorageUsagePerDateDto
            {
                Date       = LocalDate.FromDateTime(DateTime.SpecifyKind(stats.Date, DateTimeKind.Utc)),
                TotalCount = stats.TotalCount,
                TotalSize  = stats.TotalSize
            };

            return(result);
        }
예제 #3
0
        public static StorageUsagePerDateDto FromStats(AssetStats stats)
        {
            var result = new StorageUsagePerDateDto
            {
                Date       = stats.Date,
                TotalCount = stats.TotalCount,
                TotalSize  = stats.TotalSize
            };

            return(result);
        }
예제 #4
0
 AssetStats GetOrCreateAssetsStats(BigInteger index)
 {
     if (AssetStats.ContainsKey(index))
     {
         return(AssetStats[index]);
     }
     else
     {
         var ass = new AssetStats();
         AssetStats.Add(index, ass);
         return(ass);
     }
 }
예제 #5
0
        public AssetStats GetStats(bool resetStats)
        {
            if (resetStats)
            {
                statTotal        = statGet = statGetInit = statGetHit = statGetFetches = statGetNotFound = 0;
                statPut          = statPutInit = statPutCached = statPutExists = statPutTO = statPutNTO = 0;
                statPutExceptWeb = statPutExceptIO = statPutExcept = statBigAsset = statBigStream = statDupUpdate = 0;
                statGets.Clear();
                statPuts.Clear();
            }

            AssetStats result = new AssetStats("CF");

            // Asset FetchStore counters
            result.nTotal = statTotal;
            // Reads/Fetches
            result.nGet         = statGet;
            result.nGetInit     = statGetInit;
            result.nGetHit      = statGetHit;
            result.nGetFetches  = statGetFetches;
            result.nGetNotFound = statGetNotFound;
            // Writes/Stores
            result.nPut          = statPut;
            result.nPutInit      = statPutInit;
            result.nPutCached    = statPutCached;
            result.nPutExists    = statPutExists;
            result.nPutTO        = statPutTO;  // timeout
            result.nPutNTO       = statPutNTO; // .NET conn timeout
            result.nPutExceptWeb = statPutExceptWeb;
            result.nPutExceptIO  = statPutExceptIO;
            result.nPutExcept    = statPutExcept; // other exceptions

            // Update stats (ignored by CacheAssetIfAppropriate)
            result.nBigAsset  = statBigAsset;
            result.nBigStream = statBigStream;
            result.nDupUpdate = statDupUpdate;

            result.allGets = statGets.ToArray();
            result.allPuts = statPuts.ToArray();

            return(result);
        }
예제 #6
0
 public static StorageUsageDto FromStats(AssetStats stats)
 {
     return(new StorageUsageDto {
         Date = stats.Date, Count = stats.TotalCount, Size = stats.TotalSize
     });
 }