public void TestAnnotations() { MetricName metricName = MetricNameFactory.Name("default", "test", typeof(TestAnnotationJMX)); CommonJMXUtil.RegisterMbean(new MyJMXExposedClass(), metricName); CommonJMXUtil.UnregisterMbean(metricName); }
private void DestroyEngineMetrics(string runtimeURI) { #if FALSE lock (this) { CommonJMXUtil.UnregisterMbean(MetricNameFactory.Name(runtimeURI, "filter")); CommonJMXUtil.UnregisterMbean(MetricNameFactory.Name(runtimeURI, "schedule")); CommonJMXUtil.UnregisterMbean(MetricNameFactory.Name(runtimeURI, "runtime")); } #endif }
private void DestroyEngineMetrics(string engineURI) { lock (this) { #if false CommonJMXUtil.UnregisterMbean(MetricNameFactory.Name(engineURI, "filter")); CommonJMXUtil.UnregisterMbean(MetricNameFactory.Name(engineURI, "schedule")); CommonJMXUtil.UnregisterMbean(MetricNameFactory.Name(engineURI, "runtime")); #endif } }
private void StartEngineMetrics(EPServicesContext services, EPRuntime runtime) { lock (this) { #if false MetricName filterName = MetricNameFactory.Name(services.EngineURI, "filter"); CommonJMXUtil.RegisterMbean(services.FilterService, filterName); MetricName scheduleName = MetricNameFactory.Name(services.EngineURI, "schedule"); CommonJMXUtil.RegisterMbean(services.SchedulingService, scheduleName); MetricName runtimeName = MetricNameFactory.Name(services.EngineURI, "runtime"); CommonJMXUtil.RegisterMbean(runtime, runtimeName); #endif } }
private void StartEngineMetrics( EPServicesContext services, EPEventService runtime) { #if FALSE lock (this) { var filterName = MetricNameFactory.Name(services.RuntimeURI, "filter"); CommonJMXUtil.RegisterMbean(services.FilterService, filterName); var scheduleName = MetricNameFactory.Name(services.RuntimeURI, "schedule"); CommonJMXUtil.RegisterMbean(services.SchedulingService, scheduleName); var runtimeName = MetricNameFactory.Name(services.RuntimeURI, "runtime"); CommonJMXUtil.RegisterMbean(runtime, runtimeName); } #endif }
public void TestMetrics() { var engineURI = "default"; IList <MetricName> metricNames = new List <MetricName>(); // Exposes a single "value" attribute var count = new AtomicLong(); var gaugeName = MetricNameFactory.Name(engineURI, "type-testgauge", this.GetType()); Metrics.NewGauge(gaugeName, new ProxyGauge <long>(() => count.Get())); metricNames.Add(gaugeName); // Exposes a counter, which is more efficient then the gauge when the size() call is expensive var counterName = MetricNameFactory.Name(engineURI, "type-testcounter", this.GetType()); var counter = Metrics.NewCounter(counterName); metricNames.Add(gaugeName); // exposes a 1-second, 10-second etc. exponential weighted average var meterName = MetricNameFactory.Name(engineURI, "type-testmeter", this.GetType()); var meter = Metrics.NewMeter(meterName, "request", TimeUnit.SECONDS); metricNames.Add(meterName); // exposes a histogramm of avg, min, max, 50th%, 95%, 99% var histName = MetricNameFactory.Name(engineURI, "type-testhist", this.GetType()); var hist = Metrics.NewHistogram(histName, true); metricNames.Add(histName); // exposes a timer with a rates avg, one minute, 5 minute, 15 minute var timerName = MetricNameFactory.Name(engineURI, "type-testtimer", this.GetType()); var timer = Metrics.NewTimer(timerName, TimeUnit.MILLISECONDS, TimeUnit.MILLISECONDS); metricNames.Add(timerName); // assert names found foreach (var name in metricNames) { AssertFound(name.MBeanName); } // Increase here for a longer run long TESTINTERVAL = 300; var random = new Random(); var start = PerformanceObserver.MilliTime; var histogrammChoices = new long[] { 100, 1000, 5000, 8000, 10000 }; while (PerformanceObserver.MilliTime - start < TESTINTERVAL) { var timerContext = timer.Time(); meter.Mark(); count.IncrementAndGet(); counter.Inc(); hist.Update(histogrammChoices[(int)(random.NextDouble() * histogrammChoices.Length)]); Thread.Sleep(100); timerContext.Stop(); } foreach (var name in metricNames) { Metrics.DefaultRegistry().RemoveMetric(name); AssertNotFound(name.MBeanName); } }