public virtual void Sampler() { long[] value = new long[1]; Instrumentation.Variable <long> var = new _Variable_238(value); InstrumentationService.Sampler sampler = new InstrumentationService.Sampler(); sampler.Init(4, var); NUnit.Framework.Assert.AreEqual(sampler.GetRate(), 0f, 0.0001); sampler.Sample(); NUnit.Framework.Assert.AreEqual(sampler.GetRate(), 0f, 0.0001); value[0] = 1; sampler.Sample(); NUnit.Framework.Assert.AreEqual(sampler.GetRate(), (0d + 1) / 2, 0.0001); value[0] = 2; sampler.Sample(); NUnit.Framework.Assert.AreEqual(sampler.GetRate(), (0d + 1 + 2) / 3, 0.0001); value[0] = 3; sampler.Sample(); NUnit.Framework.Assert.AreEqual(sampler.GetRate(), (0d + 1 + 2 + 3) / 4, 0.0001); value[0] = 4; sampler.Sample(); NUnit.Framework.Assert.AreEqual(sampler.GetRate(), (4d + 1 + 2 + 3) / 4, 0.0001); JSONObject json = (JSONObject) new JSONParser().Parse(sampler.ToJSONString()); NUnit.Framework.Assert.AreEqual(json.Count, 2); NUnit.Framework.Assert.AreEqual(json["sampler"], sampler.GetRate()); NUnit.Framework.Assert.AreEqual(json["size"], 4L); StringWriter writer = new StringWriter(); sampler.WriteJSONString(writer); writer.Close(); json = (JSONObject) new JSONParser().Parse(writer.ToString()); NUnit.Framework.Assert.AreEqual(json.Count, 2); NUnit.Framework.Assert.AreEqual(json["sampler"], sampler.GetRate()); NUnit.Framework.Assert.AreEqual(json["size"], 4L); }
public virtual void Sampling() { string dir = TestDirHelper.GetTestDir().GetAbsolutePath(); string services = StringUtils.Join(",", Arrays.AsList(typeof(InstrumentationService ).FullName, typeof(SchedulerService).FullName)); Configuration conf = new Configuration(false); conf.Set("server.services", services); Org.Apache.Hadoop.Lib.Server.Server server = new Org.Apache.Hadoop.Lib.Server.Server ("server", dir, dir, dir, dir, conf); server.Init(); Org.Apache.Hadoop.Lib.Service.Instrumentation instrumentation = server.Get <Org.Apache.Hadoop.Lib.Service.Instrumentation >(); AtomicInteger count = new AtomicInteger(); Instrumentation.Variable <long> varToSample = new _Variable_389(count); instrumentation.AddSampler("g", "s", 10, varToSample); Sleep(2000); int i = count.Get(); NUnit.Framework.Assert.IsTrue(i > 0); IDictionary <string, IDictionary <string, object> > snapshot = instrumentation.GetSnapshot (); IDictionary <string, IDictionary <string, object> > samplers = (IDictionary <string, IDictionary <string, object> >)snapshot["samplers"]; InstrumentationService.Sampler sampler = (InstrumentationService.Sampler)samplers ["g"]["s"]; NUnit.Framework.Assert.IsTrue(sampler.GetRate() > 0); server.Destroy(); }
public override void AddSampler(string group, string name, int samplingSize, Instrumentation.Variable <long> variable) { InstrumentationService.Sampler sampler = GetToAdd <InstrumentationService.Sampler> (group, name, samplerLock, samplers); samplerLock.Lock(); try { sampler.Init(samplingSize, variable); samplersList.AddItem(sampler); } finally { samplerLock.Unlock(); } }