Пример #1
0
        public override T Register <T>(string name, string desc, T source)
        {
            lock (this)
            {
                MetricsSourceBuilder sb = MetricsAnnotations.NewSourceBuilder(source);
                MetricsSource        s  = sb.Build();
                MetricsInfo          si = sb.Info();
                string name2            = name == null?si.Name() : name;

                string finalDesc = desc == null?si.Description() : desc;

                string finalName = DefaultMetricsSystem.SourceName(name2, !monitoring);
                // be friendly to non-metrics tests
                allSources[finalName] = s;
                Log.Debug(finalName + ", " + finalDesc);
                if (monitoring)
                {
                    RegisterSource(finalName, finalDesc, s);
                }
                // We want to re-register the source to pick up new config when the
                // metrics system restarts.
                Register(finalName, new _AbstractCallback_238(this, finalName, finalDesc, s));
                return(source);
            }
        }
Пример #2
0
        public virtual void TestGetMetricsAndJmx()
        {
            // create test source with a single metric counter of value 0
            TestMetricsSourceAdapter.TestSource source = new TestMetricsSourceAdapter.TestSource
                                                             ("test");
            MetricsSourceBuilder sb           = MetricsAnnotations.NewSourceBuilder(source);
            MetricsSource        s            = sb.Build();
            IList <MetricsTag>   injectedTags = new AList <MetricsTag>();
            MetricsSourceAdapter sa           = new MetricsSourceAdapter("test", "test", "test desc", s
                                                                         , injectedTags, null, null, 1, false);
            // all metrics are initially assumed to have changed
            MetricsCollectorImpl            builder        = new MetricsCollectorImpl();
            IEnumerable <MetricsRecordImpl> metricsRecords = sa.GetMetrics(builder, true);
            // Validate getMetrics and JMX initial values
            MetricsRecordImpl metricsRecord = metricsRecords.GetEnumerator().Next();

            Assert.Equal(0L, metricsRecord.Metrics().GetEnumerator().Next(
                             ).Value());
            Thread.Sleep(100);
            // skip JMX cache TTL
            Assert.Equal(0L, (Number)sa.GetAttribute("C1"));
            // change metric value
            source.IncrementCnt();
            // validate getMetrics and JMX
            builder        = new MetricsCollectorImpl();
            metricsRecords = sa.GetMetrics(builder, true);
            metricsRecord  = metricsRecords.GetEnumerator().Next();
            Assert.True(metricsRecord.Metrics().GetEnumerator().HasNext());
            Thread.Sleep(100);
            // skip JMX cache TTL
            Assert.Equal(1L, (Number)sa.GetAttribute("C1"));
        }
Пример #3
0
        public virtual void TestPurgeOldMetrics()
        {
            // create test source with a single metric counter of value 1
            TestMetricsSourceAdapter.PurgableSource source = new TestMetricsSourceAdapter.PurgableSource
                                                                 (this);
            MetricsSourceBuilder sb           = MetricsAnnotations.NewSourceBuilder(source);
            MetricsSource        s            = sb.Build();
            IList <MetricsTag>   injectedTags = new AList <MetricsTag>();
            MetricsSourceAdapter sa           = new MetricsSourceAdapter("tst", "tst", "testdesc", s, injectedTags
                                                                         , null, null, 1, false);
            MBeanInfo info  = sa.GetMBeanInfo();
            bool      sawIt = false;

            foreach (MBeanAttributeInfo mBeanAttributeInfo in info.GetAttributes())
            {
                sawIt |= mBeanAttributeInfo.GetName().Equals(source.lastKeyName);
            }
            Assert.True("The last generated metric is not exported to jmx",
                        sawIt);
            Thread.Sleep(1000);
            // skip JMX cache TTL
            info  = sa.GetMBeanInfo();
            sawIt = false;
            foreach (MBeanAttributeInfo mBeanAttributeInfo_1 in info.GetAttributes())
            {
                sawIt |= mBeanAttributeInfo_1.GetName().Equals(source.lastKeyName);
            }
            Assert.True("The last generated metric is not exported to jmx",
                        sawIt);
        }
Пример #4
0
        Create()
        {
            MetricsSystem ms = DefaultMetricsSystem.Instance();

            Org.Apache.Hadoop.Yarn.Server.Sharedcachemanager.Metrics.CleanerMetrics metricObject
                = new Org.Apache.Hadoop.Yarn.Server.Sharedcachemanager.Metrics.CleanerMetrics();
            MetricsSourceBuilder sb = MetricsAnnotations.NewSourceBuilder(metricObject);
            MetricsSource        s  = sb.Build();

            ms.Register("cleaner", "The cleaner service of truly shared cache", s);
            metricObject.metricSource = s;
            return(metricObject);
        }