Exemplo n.º 1
0
  /** *************************************************************************************** */
  private void createJmxCollector(String mbeanAttributeName, String dataSourceType, int sampleRate)
      throws Exception {
    dataSourceName = mbeanAttributeName.toLowerCase();
    rrdPath = dataSourceName + ".rrd";

    jmxCollector = new JmxCollector();
    jmxCollector.setMbeanName("java.lang:type=Runtime");
    jmxCollector.setMbeanAttributeName(mbeanAttributeName);
    jmxCollector.setRrdPath(rrdPath);
    jmxCollector.setRrdDataSourceName(dataSourceName);
    jmxCollector.setRrdDataSourceType(dataSourceType);
    jmxCollector.setSampleRate(sampleRate);
    jmxCollector.setMinimumUpdateTimeDelta(0);
    jmxCollector.setMetricsDir(TEST_DIR);

    // Simulates what Spring beans container would do
    jmxCollector.configureCollector();
  }
Exemplo n.º 2
0
  @Test(expected = CollectorException.class)
  public void testUnsupportedDataSourceType() throws IOException, CollectorException {
    String mbeanAttributeName = "Uptime";
    dataSourceName = mbeanAttributeName.toLowerCase();
    rrdPath = dataSourceName + ".rrd";

    jmxCollector = new JmxCollector();
    jmxCollector.setMbeanName("java.lang:type=Runtime");
    jmxCollector.setMbeanAttributeName(mbeanAttributeName);
    jmxCollector.setRrdPath(rrdPath);
    jmxCollector.setRrdDataSourceName(dataSourceName);
    jmxCollector.setRrdDataSourceType("DERIVE");
    jmxCollector.setSampleRate(1);
    jmxCollector.setMetricsDir(TEST_DIR);

    // Simulates what Spring beans container would do
    jmxCollector.configureCollector();
  }
Exemplo n.º 3
0
  @Test(expected = CollectorException.class)
  public void testNullDataSourceName() throws IOException, CollectorException {
    String mbeanAttributeName = "Uptime";
    dataSourceName = null;
    rrdPath = "uptime.rrd";

    jmxCollector = new JmxCollector();
    jmxCollector.setMbeanName("java.lang:type=Runtime");
    jmxCollector.setMbeanAttributeName(mbeanAttributeName);
    jmxCollector.setRrdPath(rrdPath);
    jmxCollector.setRrdDataSourceName(dataSourceName);
    jmxCollector.setRrdDataSourceType(JmxCollector.COUNTER_DATA_SOURCE_TYPE);
    jmxCollector.setSampleRate(1);
    jmxCollector.setMetricsDir(TEST_DIR);

    // Simulates what Spring beans container would do
    jmxCollector.configureCollector();
  }
Exemplo n.º 4
0
  @Test(expected = CollectorException.class)
  public void testInaccessibleMbeanAttribute() throws IOException, CollectorException {
    String mbeanAttributeName = "Invalid";
    dataSourceName = mbeanAttributeName.toLowerCase();
    rrdPath = dataSourceName + ".rrd";

    jmxCollector = new JmxCollector();
    jmxCollector.setMbeanName("java.lang:type=Runtime");
    jmxCollector.setMbeanAttributeName(mbeanAttributeName);
    jmxCollector.setRrdPath(rrdPath);
    jmxCollector.setRrdDataSourceName(dataSourceName);
    jmxCollector.setRrdDataSourceType(JmxCollector.COUNTER_DATA_SOURCE_TYPE);
    jmxCollector.setSampleRate(1);
    jmxCollector.setMetricsDir(TEST_DIR);
    jmxCollector.setMbeanTimeoutMillis(50);

    // Simulates what Spring beans container would do
    jmxCollector.configureCollector();
  }
Exemplo n.º 5
0
  @Test
  @Ignore
  public void testRrdFileCreationWhenRrdFileAlreadyExists() throws Exception {
    // Set sample rate to 1 sec (default is 60 seconds) so that unit test runs quickly
    int sampleRate = 1;
    createJmxCollector("Uptime", JmxCollector.COUNTER_DATA_SOURCE_TYPE, sampleRate);

    String rrdFilename1 = jmxCollector.getRrdPath();
    assertThat(rrdFilename1, is(TEST_DIR + rrdPath));

    rrdDb = new RrdDb(rrdFilename1);
    assertThat(rrdDb, not(nullValue()));
    assertThat(rrdDb.isClosed(), is(false));

    // Attempt to create again
    LOGGER.debug("Creating JmxCollector again ...");
    dataSourceName = "uptime";
    rrdPath = dataSourceName + ".rrd";

    JmxCollector jmxCollector2 = new JmxCollector();
    jmxCollector2.setMbeanName("java.lang:type=Runtime");
    jmxCollector2.setMbeanAttributeName("Uptime");
    jmxCollector2.setRrdPath(rrdPath);
    jmxCollector2.setRrdDataSourceName(dataSourceName);
    jmxCollector2.setRrdDataSourceType(JmxCollector.COUNTER_DATA_SOURCE_TYPE);
    jmxCollector2.setSampleRate(sampleRate);
    jmxCollector2.setMetricsDir(TEST_DIR);

    // Simulates what Spring beans container would do
    jmxCollector2.configureCollector();

    // Verify the 2 JMX Collectors are using the same RRD file
    String rrdFilename2 = jmxCollector2.getRrdPath();
    assertThat(rrdFilename2, is(TEST_DIR + rrdPath));
    assertThat(rrdFilename1, equalTo(rrdFilename2));

    jmxCollector2.destroy();
  }