コード例 #1
0
        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));
            }
        }
コード例 #2
0
        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
                                                                 ));
        }