/** * Replace all the data source for this probe description with the list * provided * * @param dsList a list of data source description as a map. */ public void replaceDs(List<Map<String, Object>> dsList) { defaultValues = new HashMap<String, Double>(0); dsMap = new HashMap<String, DsDesc>(dsList.size()); for(Map<String, Object> dsinfo: dsList) { add(dsinfo); } }
for(String collectarg: args[++i].split(",")) { OidInfo info = translate(collectarg); pd.add(info.name, info.type, info.oid.format());
pd.add(dsMap);
static public <KeyType> ProbeDesc<KeyType> getPd() { ProbeDesc<KeyType> pd = new ProbeDesc<KeyType>(); Map<String, Object> dsMap = new HashMap<String, Object>(); dsMap.put("dsName", "sun"); dsMap.put("dsType", DsType.GAUGE); pd.add(dsMap); dsMap.clear(); dsMap.put("dsName", "shade"); dsMap.put("dsType", DsType.GAUGE); pd.add(dsMap); pd.setName(FILE); pd.setProbeName(FILE); return pd; }
protected <KeyType> ProbeDesc<KeyType> generateProbeDesc(String type) { ProbeDesc<KeyType> pd = new ProbeDesc<>(); pd.setName(type); pd.setProbeName("dummyprobe"); 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); return pd; }
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); }
public TestHttpProbe() { ProbeDesc<String> pd = new ProbeDesc<>(); pd.setName("ApacheHttpClientTester"); pd.add("test", DsType.COUNTER); setPd(pd); }
static public ProbeDesc<String> getPd() { ProbeDesc<String> pd = new ProbeDesc<String>(); pd.setName("MokeProbeDesc"); pd.setProbeName("mokeprobedesc"); pd.add("MokeDs", DsType.COUNTER); return pd; }
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); setPd(pd);
@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 readDatasourcesNames() throws Exception { GenerateProbe.ChainedMap<Object> factoryArgs = GenerateProbe.ChainedMap.start(1).set("rrdfile", rrdfile.getCanonicalPath()); GenerateProbe.ChainedMap<Object> args = GenerateProbe.ChainedMap.start(2) .set(StoreFactory.class, new RRDToolStoreFactory()) .set(GenerateProbe.FACTORYCONFIG, factoryArgs); Probe<?,?> p = GenerateProbe.fillProbe(new GenerateProbe.EmptyProbe(), testFolder, args); p.getPd().add("speed", DsType.GAUGE); p.getPd().add("weight", DsType.GAUGE); Assert.assertTrue(p.checkStore()); Period period = new Period("1999-03-07T13:00:00", "1999-03-07T13:15:00"); DataProcessor dp = p.extract(ExtractInfo.get().make(period.getBegin(), period.getEnd())); String[] dsNames = dp.getSourceNames(); Assert.assertEquals("data source weight not found", "weight", dsNames[0]); Assert.assertEquals("data source speed not found", "speed", dsNames[1]); Assert.assertEquals("Missing last values", 2, p.getMainStore().getLastValues().size()); }
@SuppressWarnings("unchecked") @Before public void prepare() throws Exception { pm = Tools.makePm(testFolder); hl = new HostsList(pm); GenerateProbe.ChainedMap<Object> args = GenerateProbe.ChainedMap.start().set(PropertiesManager.class, pm); p = GenerateProbe.quickProbe(testFolder, args); p.getPd().add("data", DsType.GAUGE); Assert.assertTrue("Failed to create probe " + p.getMainStore().getPath(), p.checkStore()); }
@Test public void testCreate() throws Exception { @SuppressWarnings("unchecked") Probe<?, ?> p = GenerateProbe.quickProbe(testFolder, GenerateProbe.ChainedMap.start(0)); p.getPd().add("test", DsType.COUNTER); Assert.assertTrue("Probe file creation failed", p.checkStore()); Extractor e = p.getMainStore().getExtractor(); e.addSource("test", "test"); String[] dsNames = e.getNames(); Assert.assertEquals("data source test not found", "test", dsNames[0]); e.release(); }
@Test public void testFill() throws Exception { @SuppressWarnings("unchecked") Probe<?, ?> p = GenerateProbe.quickProbe(testFolder); p.setStep(30); p.getPd().add("test", DsType.GAUGE); Assert.assertTrue("Probe file creation failed", p.checkStore()); Extractor e = p.getMainStore().getExtractor(); e.addSource("test", "test"); String[] dsNames = e.getNames(); Assert.assertEquals("data source test not found", "test", dsNames[0]); long start = p.getLastUpdate().getTime(); for(int i = 1; i <= 30; i++) { JrdsSample s = p.newSample(); long sampletime = i * p.getStep() * 1000 + start; sampletime = (sampletime) - (sampletime % (p.getStep() * 1000)); s.setTime(new Date(sampletime)); s.put("test", i); p.getMainStore().commit(s); } ExtractInfo ei = ExtractInfo.get().make(new Date(start), new Date(start + 30 * p.getStep() * 1000)); DataProcessor dp = p.extract(ei); double[][] values = dp.getValues(); for(int i = 1; i <= 30; i++) { // Check raw values Assert.assertEquals("Wrong values stored", i, values[0][i], 1e-10); long sampletime = i * p.getStep() * 1000 + start; sampletime = (sampletime) - (sampletime % (p.getStep() * 1000)); } }