public void BenchStats() { // TODO use NodeStats instead. var benchLogs = new StringBuilder(); if (this.cache != null) { benchLogs.AppendLine("Cache entries".PadRight(LoggingConfiguration.ColumnLength) + this.cache.CacheEntryCount); } ConsensusPerformanceSnapshot snapshot = this.consensusRules.PerformanceCounter.Snapshot(); benchLogs.AppendLine((snapshot - this.lastSnapshot).ToString()); this.lastSnapshot = snapshot; if (this.dbreeze != null) { BackendPerformanceSnapshot snapshot2 = this.dbreeze.PerformanceCounter.Snapshot(); benchLogs.AppendLine((snapshot2 - this.lastSnapshot2).ToString()); this.lastSnapshot2 = snapshot2; } if (this.cache != null) { CachePerformanceSnapshot snapshot3 = this.cache.PerformanceCounter.Snapshot(); benchLogs.AppendLine((snapshot3 - this.lastSnapshot3).ToString()); this.lastSnapshot3 = snapshot3; } this.logger.LogInformation(benchLogs.ToString()); }
public ConsensusStats( CoinViewStack stack, CoinView coinView, ConsensusLoop consensusLoop, ChainState chainState, ConcurrentChain chain, IConnectionManager connectionManager, ILoggerFactory loggerFactory) { stack = new CoinViewStack(coinView); this.cache = stack.Find <CachedCoinView>(); this.dbreeze = stack.Find <DBreezeCoinView>(); this.bottom = stack.Bottom; this.consensusLoop = consensusLoop; this.lookaheadPuller = this.consensusLoop.Puller as LookaheadBlockPuller; this.lastSnapshot = consensusLoop.Validator.PerformanceCounter.Snapshot(); this.lastSnapshot2 = this.dbreeze?.PerformanceCounter.Snapshot(); this.lastSnapshot3 = this.cache?.PerformanceCounter.Snapshot(); this.chainState = chainState; this.chain = chain; this.connectionManager = connectionManager; this.logger = loggerFactory.CreateLogger(this.GetType().FullName); }
public ConsensusStats( ICoinView coinView, IConsensusManager consensusManager, IConsensusRuleEngine consensusRules, IInitialBlockDownloadState initialBlockDownloadState, ConcurrentChain chain, IConnectionManager connectionManager, IDateTimeProvider dateTimeProvider, IBlockPuller blockPuller, ILoggerFactory loggerFactory, INodeLifetime nodeLifetime) { var stack = new CoinViewStack(coinView); this.cache = stack.Find <CachedCoinView>(); this.dbreeze = stack.Find <DBreezeCoinView>(); this.bottom = stack.Bottom; this.consensusManager = consensusManager; this.consensusRules = consensusRules; this.lastSnapshot = consensusRules.PerformanceCounter.Snapshot(); this.lastSnapshot2 = this.dbreeze?.PerformanceCounter.Snapshot(); this.lastSnapshot3 = this.cache?.PerformanceCounter.Snapshot(); this.initialBlockDownloadState = initialBlockDownloadState; this.chain = chain; this.connectionManager = connectionManager; this.dateTimeProvider = dateTimeProvider; this.blockPuller = blockPuller; this.logger = loggerFactory.CreateLogger(this.GetType().FullName); this.nodeLifetime = nodeLifetime; }
public ConsensusStats( CoinView coinView, IConsensusLoop consensusLoop, IInitialBlockDownloadState initialBlockDownloadState, ConcurrentChain chain, IConnectionManager connectionManager, IDateTimeProvider dateTimeProvider, ILoggerFactory loggerFactory) { CoinViewStack stack = new CoinViewStack(coinView); this.cache = stack.Find <CachedCoinView>(); this.dbreeze = stack.Find <DBreezeCoinView>(); this.bottom = stack.Bottom; this.consensusLoop = consensusLoop; this.lookaheadPuller = this.consensusLoop.Puller as LookaheadBlockPuller; this.lastSnapshot = consensusLoop.ConsensusRules.PerformanceCounter.Snapshot(); this.lastSnapshot2 = this.dbreeze?.PerformanceCounter.Snapshot(); this.lastSnapshot3 = this.cache?.PerformanceCounter.Snapshot(); this.initialBlockDownloadState = initialBlockDownloadState; this.chain = chain; this.connectionManager = connectionManager; this.dateTimeProvider = dateTimeProvider; this.logger = loggerFactory.CreateLogger(this.GetType().FullName); }
public ConsensusStats(FullNode fullNode, CoinViewStack stack) { this.fullNode = fullNode; stack = new CoinViewStack(fullNode.CoinView); cache = stack.Find <CachedCoinView>(); dbreeze = stack.Find <DBreezeCoinView>(); bottom = stack.Bottom; lookaheadPuller = fullNode.ConsensusLoop.Puller as LookaheadBlockPuller; lastSnapshot = fullNode.ConsensusLoop.Validator.PerformanceCounter.Snapshot(); lastSnapshot2 = dbreeze?.PerformanceCounter.Snapshot(); lastSnapshot3 = cache?.PerformanceCounter.Snapshot(); }
public void Snapshot_CreatesSnapshotWithCurrentPerformanceCount() { this.performanceCounter.AddHitCount(15); this.performanceCounter.AddMissCount(7); CachePerformanceSnapshot snapshot1 = this.performanceCounter.Snapshot(); this.performanceCounter.AddHitCount(50); this.performanceCounter.AddMissCount(9); CachePerformanceSnapshot snapshot2 = this.performanceCounter.Snapshot(); Assert.Equal(15, snapshot1.TotalHitCount); Assert.Equal(7, snapshot1.TotalMissCount); Assert.Equal(65, snapshot2.TotalHitCount); Assert.Equal(16, snapshot2.TotalMissCount); }
public void Log() { StringBuilder benchLogs = new StringBuilder(); if (this.lookaheadPuller != null) { benchLogs.AppendLine("======Block Puller======"); benchLogs.AppendLine("Lookahead:".PadRight(LoggingConfiguration.ColumnLength) + this.lookaheadPuller.ActualLookahead + " blocks"); benchLogs.AppendLine("Downloaded:".PadRight(LoggingConfiguration.ColumnLength) + this.lookaheadPuller.MedianDownloadCount + " blocks"); benchLogs.AppendLine("=========================="); } benchLogs.AppendLine("Persistent Tip:".PadRight(LoggingConfiguration.ColumnLength) + this.chain.GetBlock(this.bottom.GetBlockHashAsync().Result)?.Height); if (this.cache != null) { benchLogs.AppendLine("Cache Tip".PadRight(LoggingConfiguration.ColumnLength) + this.chain.GetBlock(this.cache.GetBlockHashAsync().Result)?.Height); benchLogs.AppendLine("Cache entries".PadRight(LoggingConfiguration.ColumnLength) + this.cache.CacheEntryCount); } var snapshot = this.consensusLoop.Validator.PerformanceCounter.Snapshot(); benchLogs.AppendLine((snapshot - this.lastSnapshot).ToString()); this.lastSnapshot = snapshot; if (this.dbreeze != null) { var snapshot2 = this.dbreeze.PerformanceCounter.Snapshot(); benchLogs.AppendLine((snapshot2 - this.lastSnapshot2).ToString()); this.lastSnapshot2 = snapshot2; } if (this.cache != null) { var snapshot3 = this.cache.PerformanceCounter.Snapshot(); benchLogs.AppendLine((snapshot3 - this.lastSnapshot3).ToString()); this.lastSnapshot3 = snapshot3; } benchLogs.AppendLine(this.connectionManager.GetStats()); this.logger.LogInformation(benchLogs.ToString()); }