@Override public void generate2Samples(long[] values, String label1, String label2) { generate2Samples(values, label1, label2, 1d); }
@Override public void generate2Samples(long[] values, String label1, String label2, double dividingFactor) { if (oldValues.containsKey(label1) && oldValues.containsKey(label2)) { generateSample(((double) (values[0] - oldValues.get(label1))) / dividingFactor, label1); generateSample(((double) (values[1] - oldValues.get(label2))) / dividingFactor, label2); } oldValues.put(label1, values[0]); oldValues.put(label2, values[1]); }
public JMeterProperty getMetricSettings() { return getProperty(DATA_PROPERTY); }
@Override public void testStarted(String host) { if (!isWorkingHost(host)) { return; } //ensure the data will be saved if (getProperty(FILENAME) == null || getProperty(FILENAME).getStringValue().trim().length() == 0) { if (autoGenerateFiles) { setupSaving(getAutoFileName()); } else { try { File tmpFile = File.createTempFile("perfmon_", ".jtl"); tmpFile.delete(); // required to have CSV header setupSaving(tmpFile.getAbsolutePath()); } catch (IOException ex) { log.info("PerfMon metrics will not be recorded! Please run the test with -JforcePerfmonFile=true", ex); } } } log.debug("PerfMon metrics will be stored in " + getPropertyAsString(FILENAME)); if (!getSaveConfig().saveAsXml() && getSaveConfig().saveFieldNames()) { filesList.add(getPropertyAsString(FILENAME)); } else { log.warn("Perfmon file saving setting is not CSV with header line, cannot upload it to BM.Sense: " + getPropertyAsString(FILENAME)); } initiateConnectors(); workerThread = new Thread(this); workerThread.start(); super.testStarted(host); }
private void initiateConnectors() { oldValues.clear(); JMeterProperty prop = getMetricSettings(); connectors.clear(); if (!(prop instanceof CollectionProperty)) { log.warn("Got unexpected property: " + prop); return; } CollectionProperty rows = (CollectionProperty) prop; for (int i = 0; i < rows.size(); i++) { ArrayList<Object> row = (ArrayList<Object>) rows.get(i).getObjectValue(); String host = ((JMeterProperty) row.get(0)).getStringValue(); int port = ((JMeterProperty) row.get(1)).getIntValue(); String metric = ((JMeterProperty) row.get(2)).getStringValue(); String params = ((JMeterProperty) row.get(3)).getStringValue(); initiateConnector(host, port, i, metric, params); } for (Object key : connectors.keySet()) { try { connectors.get(key).connect(); } catch (IOException ex) { log.error("Error connecting to agent", ex); connectors.put(key, new UnavailableAgentConnector(ex)); } } }
protected void stop() { String redirectLink = ""; try { flush(); if (fileName == null) { throw new IOException("File for upload was not set, search for errors above in log"); } LinkedList<String> monFiles; if (hasStandardSet()) { monFiles = PerfMonCollector.getFiles(); } else { monFiles = new LinkedList<>(); } LoadosophiaUploadResults uploadResult = this.apiClient.sendFiles(new File(fileName), monFiles); redirectLink = uploadResult.getRedirectLink(); informer.notifyAbout("<p>Uploaded successfully, go to results: <a href='" + redirectLink + "'>" + redirectLink + "</a></p>"); } catch (Throwable ex) { informer.notifyAbout("Failed to upload results to BM.Sense, see log for detais: " + ex.getMessage()); log.error("Failed to upload results (file: '" + fileName + "') to BM.Sense", ex); } finally { if (isOnlineInitiated) { finishOnline(redirectLink + "#tab=tabTimelines"); } } resultCollector.clearData(); if (hasStandardSet()) { PerfMonCollector.clearFiles(); } }
@Override public TestElement createTestElement() { TestElement te = new PerfMonCollector(); modifyTestElement(te); te.setComment(JMeterPluginsUtils.getWikiLinkText(getWikiPage())); return te; }
@Override public void configure(TestElement te) { super.configure(te); PerfMonCollector pmte = (PerfMonCollector) te; JMeterProperty perfmonValues = pmte.getMetricSettings(); if (!(perfmonValues instanceof NullProperty)) { JMeterPluginsUtils.collectionPropertyToTableModelRows((CollectionProperty) perfmonValues, tableModel); } else { log.warn("Received null property instead of collection"); } }
connectors.get(addr).addMetric(metric, params, label); } else { PerfMonAgentConnector connector = getConnector(host, port); connector.addMetric(metric, params, label); connectors.put(addr, connector);
@Override public void testStarted(String host) { if (!isWorkingHost(host)) { return; } //ensure the data will be saved if (getProperty(FILENAME) == null || getProperty(FILENAME).getStringValue().trim().length() == 0) { if (autoGenerateFiles) { setupSaving(getAutoFileName()); } else { try { File tmpFile = File.createTempFile("perfmon_", ".jtl"); tmpFile.delete(); // required to have CSV header setupSaving(tmpFile.getAbsolutePath()); } catch (IOException ex) { log.info("PerfMon metrics will not be recorded! Please run the test with -JforcePerfmonFile=true", ex); } } } log.debug("PerfMon metrics will be stored in " + getPropertyAsString(FILENAME)); if (!getSaveConfig().saveAsXml() && getSaveConfig().saveFieldNames()) { filesList.add(getPropertyAsString(FILENAME)); } else { log.warn("Perfmon file saving setting is not CSV with header line: " + getPropertyAsString(FILENAME)); } initiateConnectors(); workerThread = new Thread(this); workerThread.start(); super.testStarted(host); }
private void initiateConnectors() { oldValues.clear(); JMeterProperty prop = getMetricSettings(); connectors.clear(); if (!(prop instanceof CollectionProperty)) { log.warn("Got unexpected property: " + prop); return; } CollectionProperty rows = (CollectionProperty) prop; for (int i = 0; i < rows.size(); i++) { Object val = rows.get(i).getObjectValue(); if (val instanceof ArrayList) { ArrayList<JMeterProperty> row = (ArrayList<JMeterProperty>) val; String host = row.get(0).getStringValue(); int port = row.get(1).getIntValue(); String metric = row.get(2).getStringValue(); String params = row.get(3).getStringValue(); initiateConnector(host, port, i, metric, params); } } for (Object key : connectors.keySet()) { try { connectors.get(key).connect(); } catch (IOException ex) { log.error("Error connecting to agent", ex); connectors.put(key, new UnavailableAgentConnector(ex)); } } }
LinkedList<String> monFiles; if (hasStandardSet()) { monFiles = PerfMonCollector.getFiles(); } else { monFiles = new LinkedList<>(); PerfMonCollector.clearFiles();
@Override public TestElement createTestElement() { TestElement te = new PerfMonCollector(); modifyTestElement(te); te.setComment(JMeterPluginsUtils.getWikiLinkText(getWikiPage())); return te; }
@Override public void configure(TestElement te) { super.configure(te); PerfMonCollector pmte = (PerfMonCollector) te; JMeterProperty perfmonValues = pmte.getMetricSettings(); if (!(perfmonValues instanceof NullProperty)) { JMeterPluginsUtils.collectionPropertyToTableModelRows((CollectionProperty) perfmonValues, tableModel); } else { log.warn("Received null property instead of collection"); } }
connectors.get(addr).addMetric(metric, params, label); } else { PerfMonAgentConnector connector = getConnector(host, port); connector.addMetric(metric, params, label); connectors.put(addr, connector);
@Override public void testStarted(String host) { if (!isWorkingHost(host)) { return; } //ensure the data will be saved if (getProperty(FILENAME) == null || getProperty(FILENAME).getStringValue().trim().length() == 0) { if (autoGenerateFiles) { setupSaving(getAutoFileName()); } else { try { File tmpFile = File.createTempFile("perfmon_", ".jtl"); tmpFile.delete(); // required to have CSV header setupSaving(tmpFile.getAbsolutePath()); } catch (IOException ex) { log.info("PerfMon metrics will not be recorded! Please run the test with -JforcePerfmonFile=true", ex); } } } log.debug("PerfMon metrics will be stored in " + getPropertyAsString(FILENAME)); if (!getSaveConfig().saveAsXml() && getSaveConfig().saveFieldNames()) { filesList.add(getPropertyAsString(FILENAME)); } else { log.warn("Perfmon file saving setting is not CSV with header line, cannot upload it to BM.Sense: " + getPropertyAsString(FILENAME)); } initiateConnectors(); workerThread = new Thread(this); workerThread.start(); super.testStarted(host); }
private void initiateConnectors() { oldValues.clear(); JMeterProperty prop = getMetricSettings(); connectors.clear(); if (!(prop instanceof CollectionProperty)) { log.warn("Got unexpected property: " + prop); return; } CollectionProperty rows = (CollectionProperty) prop; for (int i = 0; i < rows.size(); i++) { Object val = rows.get(i).getObjectValue(); if (val instanceof ArrayList) { ArrayList<JMeterProperty> row = (ArrayList<JMeterProperty>) val; String host = row.get(0).getStringValue(); int port = row.get(1).getIntValue(); String metric = row.get(2).getStringValue(); String params = row.get(3).getStringValue(); initiateConnector(host, port, i, metric, params); } } for (Object key : connectors.keySet()) { try { connectors.get(key).connect(); } catch (IOException ex) { log.error("Error connecting to agent", ex); connectors.put(key, new UnavailableAgentConnector(ex)); } } }
@Override public TestElement createTestElement() { TestElement te = new PerfMonCollector(); modifyTestElement(te); te.setComment(JMeterPluginsUtils.getWikiLinkText(getWikiPage())); return te; }
@Override public void configure(TestElement te) { super.configure(te); PerfMonCollector pmte = (PerfMonCollector) te; JMeterProperty perfmonValues = pmte.getMetricSettings(); if (!(perfmonValues instanceof NullProperty)) { JMeterPluginsUtils.collectionPropertyToTableModelRows((CollectionProperty) perfmonValues, tableModel); } else { log.warn("Received null property instead of collection"); } }
@Override public void generate2Samples(long[] values, String label1, String label2, double dividingFactor) { if (oldValues.containsKey(label1) && oldValues.containsKey(label2)) { generateSample(((double) (values[0] - oldValues.get(label1))) / dividingFactor, label1); generateSample(((double) (values[1] - oldValues.get(label2))) / dividingFactor, label2); } oldValues.put(label1, values[0]); oldValues.put(label2, values[1]); }