public HostStarter getHost(HostInfo info) { String hostName = info.getName(); HostStarter starter = hostList.get(hostName); if(starter == null) { starter = new HostStarter(info); hostList.put(hostName, starter); starter.setTimeout(getTimeout()); starter.setStep(getStep()); starter.setParent(this); } return starter; }
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 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 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));
static public Probe<String, Number> getProbe() throws InvocationTargetException { Probe<String, Number> p = new MokeProbe<String, Number>(); p.setPd(getPd()); p.setHost(new HostStarter(getHost())); Map<String, String> empty = Collections.emptyMap(); p.setMainStore(new RrdDbStoreFactory(), empty); return p; }
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; }
HostInfo host = new HostInfo("Empty"); host.setHostDir(pm.rrddir); HostStarter hs = new HostStarter(host); for(ProbeDesc<?> pd: probeDescMap.values()) { logger.trace("Will create probedesc " + pd.getName());
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); }
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 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); }
@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 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)); }
@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()); } }
hi = new HostInfo("localhost"); hi.setHostDir(folder.newFolder()); hs = new HostStarter(hi);
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; }
HostStarter host = new HostStarter(new HostInfo("moke")); p.setHost(host); p.setPd(pd);