public virtual void GetMetrics(MetricsCollector collector, bool all) { StartupProgressView prog = startupProgress.CreateView(); MetricsRecordBuilder builder = collector.AddRecord(StartupProgressMetricsInfo); builder.AddCounter(Interns.Info("ElapsedTime", "overall elapsed time"), prog.GetElapsedTime ()); builder.AddGauge(Interns.Info("PercentComplete", "overall percent complete"), prog .GetPercentComplete()); foreach (Phase phase in prog.GetPhases()) { AddCounter(builder, phase, "Count", " count", prog.GetCount(phase)); AddCounter(builder, phase, "ElapsedTime", " elapsed time", prog.GetElapsedTime(phase )); AddCounter(builder, phase, "Total", " total", prog.GetTotal(phase)); AddGauge(builder, phase, "PercentComplete", " percent complete", prog.GetPercentComplete (phase)); } }
public virtual void TestCounter() { startupProgress.BeginPhase(Phase.LoadingFsimage); Step loadingFsImageInodes = new Step(StepType.Inodes); startupProgress.BeginStep(Phase.LoadingFsimage, loadingFsImageInodes); StartupProgressTestHelper.IncrementCounter(startupProgress, Phase.LoadingFsimage, loadingFsImageInodes, 100L); startupProgress.EndStep(Phase.LoadingFsimage, loadingFsImageInodes); Step loadingFsImageDelegationKeys = new Step(StepType.DelegationKeys); startupProgress.BeginStep(Phase.LoadingFsimage, loadingFsImageDelegationKeys); StartupProgressTestHelper.IncrementCounter(startupProgress, Phase.LoadingFsimage, loadingFsImageDelegationKeys, 200L); startupProgress.EndStep(Phase.LoadingFsimage, loadingFsImageDelegationKeys); startupProgress.EndPhase(Phase.LoadingFsimage); startupProgress.BeginPhase(Phase.LoadingEdits); Step loadingEditsFile = new Step("file", 1000L); startupProgress.BeginStep(Phase.LoadingEdits, loadingEditsFile); StartupProgressTestHelper.IncrementCounter(startupProgress, Phase.LoadingEdits, loadingEditsFile , 5000L); StartupProgressView view = startupProgress.CreateView(); NUnit.Framework.Assert.IsNotNull(view); NUnit.Framework.Assert.AreEqual(100L, view.GetCount(Phase.LoadingFsimage, loadingFsImageInodes )); NUnit.Framework.Assert.AreEqual(200L, view.GetCount(Phase.LoadingFsimage, loadingFsImageDelegationKeys )); NUnit.Framework.Assert.AreEqual(5000L, view.GetCount(Phase.LoadingEdits, loadingEditsFile )); NUnit.Framework.Assert.AreEqual(0L, view.GetCount(Phase.SavingCheckpoint, new Step (StepType.Inodes))); // Increment a counter again and check that the existing view was not // modified, but a new view shows the updated value. StartupProgressTestHelper.IncrementCounter(startupProgress, Phase.LoadingEdits, loadingEditsFile , 1000L); startupProgress.EndStep(Phase.LoadingEdits, loadingEditsFile); startupProgress.EndPhase(Phase.LoadingEdits); NUnit.Framework.Assert.AreEqual(5000L, view.GetCount(Phase.LoadingEdits, loadingEditsFile )); view = startupProgress.CreateView(); NUnit.Framework.Assert.IsNotNull(view); NUnit.Framework.Assert.AreEqual(6000L, view.GetCount(Phase.LoadingEdits, loadingEditsFile )); }