public virtual void TestLoadFirst() { string filename = GetTestFilename("hadoop-metrics2-p1"); new ConfigBuilder().Add("p1.foo", "p1foo").Save(filename); MetricsConfig mc = MetricsConfig.Create("p1"); MetricsConfig mc2 = MetricsConfig.Create("p1", "na1", "na2", filename); Org.Apache.Commons.Configuration.Configuration expected = new ConfigBuilder().Add ("foo", "p1foo").config; ConfigUtil.AssertEq(expected, mc); ConfigUtil.AssertEq(expected, mc2); }
public virtual void RecordBuilderShouldNoOpIfFiltered() { SubsetConfiguration fc = new ConfigBuilder().Add("p.exclude", "foo").Subset("p"); MetricsCollectorImpl mb = new MetricsCollectorImpl(); mb.SetRecordFilter(TestPatternFilter.NewGlobFilter(fc)); MetricsRecordBuilderImpl rb = mb.AddRecord("foo"); ((MetricsRecordBuilderImpl)rb.Tag(Interns.Info("foo", string.Empty), "value")).AddGauge (Interns.Info("g0", string.Empty), 1); Assert.Equal("no tags", 0, rb.Tags().Count); Assert.Equal("no metrics", 0, rb.Metrics().Count); NUnit.Framework.Assert.IsNull("null record", rb.GetRecord()); Assert.Equal("no records", 0, mb.GetRecords().Count); }
public virtual void TestPerMetricFiltering() { SubsetConfiguration fc = new ConfigBuilder().Add("p.exclude", "foo").Subset("p"); MetricsCollectorImpl mb = new MetricsCollectorImpl(); mb.SetMetricFilter(TestPatternFilter.NewGlobFilter(fc)); MetricsRecordBuilderImpl rb = mb.AddRecord("foo"); ((MetricsRecordBuilderImpl)((MetricsRecordBuilderImpl)rb.Tag(Interns.Info("foo", string.Empty), string.Empty)).AddCounter(Interns.Info("c0", string.Empty), 0)).AddGauge (Interns.Info("foo", string.Empty), 1); Assert.Equal("1 tag", 1, rb.Tags().Count); Assert.Equal("1 metric", 1, rb.Metrics().Count); Assert.Equal("expect foo tag", "foo", rb.Tags()[0].Name()); Assert.Equal("expect c0", "c0", rb.Metrics()[0].Name()); }
public virtual void TestCommon() { string filename = GetTestFilename("test-metrics2"); new ConfigBuilder().Add("*.foo", "default foo").Add("p1.*.bar", "p1 default bar") .Add("p1.t1.*.bar", "p1.t1 default bar").Add("p1.t1.i1.name", "p1.t1.i1.name").Add ("p1.t1.42.bar", "p1.t1.42.bar").Add("p1.t2.i1.foo", "p1.t2.i1.foo").Add("p2.*.foo" , "p2 default foo").Save(filename); MetricsConfig mc = MetricsConfig.Create("p1", filename); Log.Debug("mc:" + mc); Org.Apache.Commons.Configuration.Configuration expected = new ConfigBuilder().Add ("*.bar", "p1 default bar").Add("t1.*.bar", "p1.t1 default bar").Add("t1.i1.name" , "p1.t1.i1.name").Add("t1.42.bar", "p1.t1.42.bar").Add("t2.i1.foo", "p1.t2.i1.foo" ).config; ConfigUtil.AssertEq(expected, mc); TestInstances(mc); }
public virtual void TestGangliaMetrics2() { ConfigBuilder cb = new ConfigBuilder().Add("default.period", 10).Add("test.sink.gsink30.context" , "test").Add("test.sink.gsink31.context", "test").Save(TestMetricsConfig.GetTestFilename ("hadoop-metrics2-test")); // filter out only "test" // filter out only "test" MetricsSystemImpl ms = new MetricsSystemImpl("Test"); ms.Start(); TestGangliaMetrics.TestSource s1 = ms.Register("s1", "s1 desc", new TestGangliaMetrics.TestSource ("s1rec")); s1.c1.Incr(); s1.xxx.Incr(); s1.g1.Set(2); s1.yyy.Incr(2); s1.s1.Add(0); int expectedCountFromGanglia30 = expectedMetrics.Length; int expectedCountFromGanglia31 = 2 * expectedMetrics.Length; // Setup test for GangliaSink30 AbstractGangliaSink gsink30 = new GangliaSink30(); gsink30.Init(cb.Subset("test")); TestGangliaMetrics.MockDatagramSocket mockds30 = new TestGangliaMetrics.MockDatagramSocket (this); GangliaMetricsTestHelper.SetDatagramSocket(gsink30, mockds30); // Setup test for GangliaSink31 AbstractGangliaSink gsink31 = new GangliaSink31(); gsink31.Init(cb.Subset("test")); TestGangliaMetrics.MockDatagramSocket mockds31 = new TestGangliaMetrics.MockDatagramSocket (this); GangliaMetricsTestHelper.SetDatagramSocket(gsink31, mockds31); // register the sinks ms.Register("gsink30", "gsink30 desc", gsink30); ms.Register("gsink31", "gsink31 desc", gsink31); ms.PublishMetricsNow(); // publish the metrics ms.Stop(); // check GanfliaSink30 data CheckMetrics(mockds30.GetCapturedSend(), expectedCountFromGanglia30); // check GanfliaSink31 data CheckMetrics(mockds31.GetCapturedSend(), expectedCountFromGanglia31); }
/// <exception cref="System.Exception"/> private void TestInstances(MetricsConfig c) { IDictionary <string, MetricsConfig> map = c.GetInstanceConfigs("t1"); IDictionary <string, MetricsConfig> map2 = c.GetInstanceConfigs("t2"); Assert.Equal("number of t1 instances", 2, map.Count); Assert.Equal("number of t2 instances", 1, map2.Count); Assert.True("contains t1 instance i1", map.Contains("i1")); Assert.True("contains t1 instance 42", map.Contains("42")); Assert.True("contains t2 instance i1", map2.Contains("i1")); MetricsConfig t1i1 = map["i1"]; MetricsConfig t1i42 = map["42"]; MetricsConfig t2i1 = map2["i1"]; Log.Debug("--- t1 instance i1:" + t1i1); Log.Debug("--- t1 instance 42:" + t1i42); Log.Debug("--- t2 instance i1:" + t2i1); Org.Apache.Commons.Configuration.Configuration t1expected1 = new ConfigBuilder(). Add("name", "p1.t1.i1.name").config; Org.Apache.Commons.Configuration.Configuration t1expected42 = new ConfigBuilder() .Add("bar", "p1.t1.42.bar").config; Org.Apache.Commons.Configuration.Configuration t2expected1 = new ConfigBuilder(). Add("foo", "p1.t2.i1.foo").config; ConfigUtil.AssertEq(t1expected1, t1i1); ConfigUtil.AssertEq(t1expected42, t1i42); ConfigUtil.AssertEq(t2expected1, t2i1); Log.Debug("asserting foo == default foo"); // Check default lookups Assert.Equal("value of foo in t1 instance i1", "default foo", t1i1.GetString("foo")); Assert.Equal("value of bar in t1 instance i1", "p1.t1 default bar" , t1i1.GetString("bar")); Assert.Equal("value of foo in t1 instance 42", "default foo", t1i42.GetString("foo")); Assert.Equal("value of foo in t2 instance i1", "p1.t2.i1.foo", t2i1.GetString("foo")); Assert.Equal("value of bar in t2 instance i1", "p1 default bar" , t2i1.GetString("bar")); }
public virtual void TestTagsForPrefix() { ConfigBuilder cb = new ConfigBuilder().Add("test.sink.ganglia.tagsForPrefix.all", "*").Add("test.sink.ganglia.tagsForPrefix.some", "NumActiveSinks, " + "NumActiveSources" ).Add("test.sink.ganglia.tagsForPrefix.none", string.Empty); GangliaSink30 sink = new GangliaSink30(); sink.Init(cb.Subset("test.sink.ganglia")); IList <MetricsTag> tags = new AList <MetricsTag>(); tags.AddItem(new MetricsTag(MsInfo.Context, "all")); tags.AddItem(new MetricsTag(MsInfo.NumActiveSources, "foo")); tags.AddItem(new MetricsTag(MsInfo.NumActiveSinks, "bar")); tags.AddItem(new MetricsTag(MsInfo.NumAllSinks, "haa")); tags.AddItem(new MetricsTag(MsInfo.Hostname, "host")); ICollection <AbstractMetric> metrics = new HashSet <AbstractMetric>(); MetricsRecord record = new MetricsRecordImpl(MsInfo.Context, (long)1, tags, metrics ); StringBuilder sb = new StringBuilder(); sink.AppendPrefix(record, sb); Assert.Equal(".NumActiveSources=foo.NumActiveSinks=bar.NumAllSinks=haa" , sb.ToString()); tags.Set(0, new MetricsTag(MsInfo.Context, "some")); sb = new StringBuilder(); sink.AppendPrefix(record, sb); Assert.Equal(".NumActiveSources=foo.NumActiveSinks=bar", sb.ToString ()); tags.Set(0, new MetricsTag(MsInfo.Context, "none")); sb = new StringBuilder(); sink.AppendPrefix(record, sb); Assert.Equal(string.Empty, sb.ToString()); tags.Set(0, new MetricsTag(MsInfo.Context, "nada")); sb = new StringBuilder(); sink.AppendPrefix(record, sb); Assert.Equal(string.Empty, sb.ToString()); }