static public HostInfo getHost() { return new HostInfo("MokeHost"); }
public HostInfo makeHost(JrdsDocument n) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, ClassNotFoundException { JrdsElement hostNode = n.getRootElement(); String hostName = hostNode.getAttribute("name"); String dnsHostname = hostNode.getAttribute("dnsName"); if(hostName == null) { return null; } HostInfo host; if(dnsHostname != null) { host = new HostInfo(hostName, dnsHostname); } else { host = new HostInfo(hostName); } host.setHostDir(new File(pm.rrddir, host.getName())); String hidden = hostNode.getAttribute("hidden"); host.setHidden(hidden != null && Boolean.parseBoolean(hidden)); Map<String, Set<String>> collections = new HashMap<String, Set<String>>(); parseFragment(hostNode, host, collections, null); return host; }
@Test public void manageArgs() throws Exception { URL url = getClass().getResource("/ressources/xmldata.xml"); List<Object> args = new ArrayList<Object>(1); args.add("a"); args.add("/jrdsstats/stat[@key='a']/@value"); HttpXml p = new jrds.probe.HttpXml() { @Override public String getName() { return "Moke"; } }; HostStarter host = new HostStarter(new HostInfo("moke")); p.setHost(host); p.setPd(pd); p.configure(url, args); Map<String, String> keys = p.getCollectMapping(); logger.trace("Collect keys: " + p.getCollectMapping()); logger.trace("Collect strings: " + pd.getCollectMapping()); Assert.assertTrue(keys.containsKey("/jrdsstats/stat[@key='%1$s']/@value")); Assert.assertTrue(keys.containsKey("/jrdsstats/stat[@key='b']/@value")); Assert.assertTrue(keys.containsKey("c")); }
@Test public void testParseTemplate1() { Probe<?, ?> p = new MokeProbe<String, Number>(); p.setHost(new HostStarter(new HostInfo("Moke"))); p.setLabel("label"); String parsed = Util.parseTemplate("'${host}' \"${probename}\" ${label}", p); Assert.assertEquals("'Moke' \"DummyProbe\" label", parsed); }
public void configure() throws InvocationTargetException { Map<String, String> empty = Collections.emptyMap(); setMainStore(new RrdDbStoreFactory(), empty); ProbeDesc<String> pd = new ProbeDesc<>(); pd.setName("DummyProbe"); pd.setProbeName("dummyprobe"); setPd(pd); if(getHost() == null) { HostInfo host = new HostInfo("DummyHost"); host.setHostDir(new File("tmp")); setHost(new HostStarter(host)); } Map<String, Object> dsMap = new HashMap<String, Object>(); dsMap.put("dsName", "ds0"); dsMap.put("dsType", DsType.COUNTER); dsMap.put("collectKey", "/jrdsstats/stat[@key='a']/@value"); pd.add(dsMap); dsMap = new HashMap<String, Object>(); dsMap.put("dsName", "ds1"); dsMap.put("dsType", DsType.COUNTER); dsMap.put("collectKey", "/jrdsstats/stat[@key='b']/@value"); pd.add(dsMap); dsMap = new HashMap<String, Object>(); dsMap.put("dsName", "ds2"); dsMap.put("dsType", DsType.COUNTER); pd.add(dsMap); }
@Test public void testParseOldTemplate2() { Probe<?, ?> p = new MokeProbe<String, Number>(); p.setHost(new HostStarter(new HostInfo("Moke"))); p.setLabel("label"); Object[] keys = { "${host}", "${probename}", "${label}" }; String parsed = Util.parseOldTemplate("${label} {0} {1} {2} ${label}", keys, p); Assert.assertEquals("label Moke DummyProbe label label", parsed); }
@Test public void testParseOldTemplate1() { Probe<?, ?> p = new MokeProbe<String, Number>(); p.setHost(new HostStarter(new HostInfo("Moke"))); p.setLabel("label"); Object[] keys = { "${host}", "${probename}", "${label}" }; String parsed = Util.parseOldTemplate("{0} {1} {2} ${label}", keys, p); Assert.assertEquals("Moke DummyProbe label label", parsed); }
@Test public void instantiate() throws InvocationTargetException { Map<String, String> empty = Collections.emptyMap(); ConnectionInfo ci = new ConnectionInfo(JdbcConnection.class, "jrds.probe.jdbc.JdbcConnection", Collections.emptyList(), empty); HostInfo hi = new HostInfo("localhost"); hi.addConnection(ci); HostStarter hs = new HostStarter(hi); ci.register(hs); Assert.assertEquals("connection not found", "jrds.probe.jdbc.JdbcConnection@localhost", hs.find(JdbcConnection.class).toString()); }
HostInfo host = new HostInfo("DummyHost"); host.setHostDir(new File("tmp")); setHost(new HostStarter(host));
private HostStarter addConnection(Starter cnx) throws IOException { String truststore = getClass().getClassLoader().getResource("localhost.jks").getFile(); PropertiesManager pm = Tools.makePm(testFolder, "timeout=1", "collectorThreads=1", "ssl.protocol=TLS", "ssl.strict=true", "ssl.truststore=" + truststore, "ssl.trustpassword=123456"); HostStarter localhost = new HostStarter(new HostInfo("localhost")); Timer t = Tools.getDefaultTimer(); localhost.setParent(t); localhost.getHost().setHostDir(testFolder.getRoot()); t.registerStarter(new SSLStarter()); t.registerStarter(new SocketFactory()); t.configureStarters(pm); localhost.registerStarter(cnx); cnx.configure(pm); return localhost; }
@Test public void testConnectionInfo() throws Exception { PropertiesManager pm = Tools.makePm(testFolder); HostBuilder hb = new HostBuilder(); hb.setPm(pm); hb.setClassLoader(this.getClass().getClassLoader()); JrdsDocument cnxdoc = new JrdsDocument(Tools.dbuilder.newDocument()); cnxdoc.doRootElement("host").addElement("connection", "type=jrds.probe.JMXConnection").addElement("attr", "name=port").setTextContent("8999"); for(ConnectionInfo ci: hb.makeConnexion(cnxdoc.getRootElement(), new HostInfo("localhost"), new HashMap<String, String>(0))) { logger.trace(ci.getName()); StarterNode sn = new StarterNode() {}; ci.register(sn); JMXConnection cnx = sn.find(JMXConnection.class); Assert.assertEquals("Attributed not setted", new Integer(8999), cnx.getPort()); } }
MokeProbe<String, Number> p = (MokeProbe<String, Number>) GenerateProbe.quickProbe(testFolder, args); HostStarter host = new HostStarter(new HostInfo("DummyHost")); host.setParent(Tools.getDefaultTimer()); host.getHost().setHostDir(testFolder.newFolder("testDefault"));
@Test public void testHighLow() throws Exception { ProbeDesc<String> pd = new ProbeDesc<String>(); pd.setName("empty"); pd.setProbeName("empty"); Map<String, Object> dsMap = new HashMap<String, Object>(); dsMap.put("dsName", "ds0"); dsMap.put("dsType", DsType.COUNTER); dsMap.put("collecthigh", "high"); dsMap.put("collectlow", "low"); pd.add(dsMap); GenerateProbe.ChainedMap<Object> args = GenerateProbe.ChainedMap.start(); args.set(ProbeDesc.class, pd).set(Probe.class, DummyProbe.class); @SuppressWarnings("unchecked") MokeProbe<String, Number> p = (MokeProbe<String, Number>) GenerateProbe.quickProbe(testFolder, args); HostStarter host = new HostStarter(new HostInfo("DummyHost")); host.setParent(Tools.getDefaultTimer()); host.getHost().setHostDir(testFolder.newFolder("testDefault")); p.setHost(host); p.configure(); Assert.assertTrue("Failed to create storage", p.checkStore()); Map<String, Number> val = new HashMap<String, Number>(); long high = 255L; long low = 64L; val.put("high", high); val.put("low", low); p.injectValues(val); p.collect(); Assert.assertEquals("32 + 32 to 64 failed", (high << 32) + low, p.getLastValues().get("ds0").doubleValue(), 0.1); }
@Test public void testBean() throws IOException, InvocationTargetException, IllegalArgumentException, IllegalAccessException { RRDToolProbe p = new RRDToolProbe(); p.setHost(new HostStarter(new HostInfo("toto"))); ProbeDesc<String> pd = new ProbeDesc<String>(); pd.setProbeClass(p.getClass()); pd.setName("Rrdtool"); pd.setProbeName("rrdtool"); p.setPd(pd); p.setRrdfile(rrdfile); Assert.assertEquals("invalid rrdfile bean", p.getRrdfile(), pd.getBean("rrdfile").get(p)); Assert.assertEquals("invalid rrdfile bean template ", p.getRrdfile().toString(), Util.parseTemplate("${attr.rrdfile}", p)); }
static public Probe<?, ?> create(TemporaryFolder testFolder, int step) throws InvocationTargetException { HostInfo host = new HostInfo("Empty"); host.setHostDir(testFolder.getRoot()); Probe<?, ?> p = getProbe(); p.setHost(new HostStarter(host)); p.setStep(step); Assert.assertTrue("Fail creating probe", p.checkStore()); return p; }
@Test public void test1() throws IOException, InvocationTargetException { RRDToolProbe p = new RRDToolProbe(); p.setHost(new HostStarter(new HostInfo("toto"))); ProbeDesc<String> pd = new ProbeDesc<String>(); pd.setName("Rrdtool"); pd.setProbeName("rrdtool"); p.setPd(pd); Map<String, String> empty = Collections.emptyMap(); p.setMainStore(new RrdDbStoreFactory(), empty); Assert.assertTrue("rrd native file can't be read", rrdfile.canRead()); Assert.assertTrue("Configuration of the probe failed", p.configure(rrdfile)); Assert.assertTrue("Check of the probe failed", p.checkStore()); GraphDesc gd = new GraphDesc(); gd.setGraphName("rrdtool"); gd.setName("rrdtool"); gd.add("speed", "speed", null, GraphDesc.LINE, Color.BLUE, "speed", GraphDesc.DEFAULTCF, false, null, null, null); gd.add("weight", "weight", null, GraphDesc.LINE, Color.GREEN, "weight", GraphDesc.DEFAULTCF, false, null, null, null); p.addGraph(gd); for(GraphNode gn: p.getGraphList()) { Graph g = gn.getGraph(); g.setEnd(new Date(end * 1000)); g.setStart(new Date(start * 1000)); File outputFile = new File(testFolder.getRoot(), "rrdtool.png"); OutputStream out = new FileOutputStream(outputFile); g.writePng(out); Assert.assertTrue("graph not created", outputFile.canRead()); } }
@SuppressWarnings("unused") private void doTest(String proto, int port) throws Exception { mbi = new JrdsMBeanInfo(proto, "localhost", port); HostStarter host = new HostStarter(new HostInfo("localhost")) { public boolean isCollectRunning() { return true; } }; host.setTimeout(1); JMXConnection cnx = getCnx(proto, port); host.registerStarter(new SocketFactory()); host.registerStarter(new JmxSocketFactory()); host.registerStarter(cnx); host.configureStarters(new PropertiesManager()); host.startCollect(); Assert.assertTrue("JMX Connection failed to start", cnx.isStarted()); Assert.assertNotNull("Failed to read uptime", cnx.setUptime()); if(false) enumerate((NativeJmxSource)cnx.getConnection()); }
@Test public void testProbe2() throws Exception { JrdsDocument d = Tools.parseString(goodProbeXml2); PropertiesManager pm = Tools.makePm(testFolder); HostBuilder hb = new HostBuilder(); hb.setProbeFactory(new MokeProbeFactory()); hb.setPm(pm); hb.setTimers(Tools.getSimpleTimerMap()); HostInfo host = new HostInfo("testProbe2"); host.setHostDir(pm.rrddir); Probe<?, ?> p = hb.makeProbe(d.getRootElement(), host, null); Assert.assertNotNull(p); Assert.assertEquals(host.getName() + "/" + p.getName(), p.toString()); }
private Sum doSum(JrdsDocument d, HostsList hl) throws Exception { HostInfo host = new HostInfo("SumHost"); SumBuilder sm = new SumBuilder(); sm.setPm(Tools.makePm(testFolder, "security=yes")); Sum sp = sm.makeSum(d); try { sp.configure(hl); } catch (Exception e) { } sp.getProbe().setHost(new HostStarter(host)); hl.addHost(host); hl.addProbe(sp.getProbe()); jrds.GraphNode mg = new MockGraph(); mg.getGraphDesc().add("plot"); hl.addHost(mg.getProbe().getHost()); hl.addProbe(mg.getProbe()); return sp; }
@Test public void testDsreplace() throws Exception { JrdsDocument d = Tools.parseRessource("dsoverride.xml"); PropertiesManager pm = Tools.makePm(testFolder); HostBuilder hb = new HostBuilder(); ProbeFactory pf = new MokeProbeFactory(); hb.setProbeFactory(pf); hb.setPm(pm); hb.setTimers(Tools.getSimpleTimerMap()); HostInfo host = new HostInfo("testDsreplace"); host.setHostDir(pm.rrddir); Probe<?, ?> p = hb.makeProbe(d.getRootElement().getElementbyName("probe"), host, null); ProbeDesc<?> pd = p.getPd(); Assert.assertNotNull(pd); Assert.assertEquals(1, pd.getSize()); Assert.assertNotSame(pf.getProbeDesc(pd.getName()), pd.getSize()); }