예제 #1
0
  public static void main(String[] args) throws Exception {

    Server.Builder serverBuilder =
        Server.builder().setHost("w2").setPort("1105").setAlias("w2_activemq_1105");

    GraphiteWriter gw =
        GraphiteWriter.builder()
            .addTypeName("destinationName")
            .addTypeName("Destination")
            .setDebugEnabled(true)
            .setHost(GW_HOST)
            .setPort(2003)
            .build();

    Query q =
        Query.builder()
            .setObj(
                "org.apache.activemq:BrokerName=localhost,Type=Subscription,clientId=*,consumerId=*,destinationName=*,destinationType=Queue,persistentMode=Non-Durable")
            .addAttr("PendingQueueSize")
            .addAttr("DispatchedQueueSize")
            .addAttr("EnqueueCounter")
            .addAttr("DequeueCounter")
            .addAttr("MessageCountAwaitingAcknowledge")
            .addAttr("DispachedCounter")
            .addOutputWriterFactory(gw)
            .build();
    serverBuilder.addQuery(q);

    Query q2 =
        Query.builder()
            .setObj(
                "org.apache.activemq:BrokerName=localhost,Destination=ActiveMQ.Advisory.Consumer.Queue.*,Type=Topic")
            .addAttr("QueueSize")
            .addAttr("MaxEnqueueTime")
            .addAttr("MinEnqueueTime")
            .addAttr("AverageEnqueueTime")
            .addAttr("InFlightCount")
            .addAttr("ConsumerCount")
            .addAttr("ProducerCount")
            .addAttr("DispatchCount")
            .addAttr("DequeueCount")
            .addAttr("EnqueueCount")
            .addAttr("Subscriptions")
            .addOutputWriterFactory(gw)
            .build();
    serverBuilder.addQuery(q2);

    Query q3 =
        Query.builder()
            .setObj("org.apache.activemq:BrokerName=localhost,Destination=*,Type=Queue")
            .addAttr("QueueSize")
            .addAttr("MaxEnqueueTime")
            .addAttr("MinEnqueueTime")
            .addAttr("AverageEnqueueTime")
            .addAttr("InFlightCount")
            .addAttr("ConsumerCount")
            .addAttr("ProducerCount")
            .addAttr("DispatchCount")
            .addAttr("DequeueCount")
            .addAttr("EnqueueCount")
            .addAttr("Subscriptions")
            .addOutputWriterFactory(gw)
            .build();
    serverBuilder.addQuery(q3);

    Query q4 =
        Query.builder()
            .setObj("org.apache.activemq:BrokerName=localhost,Destination=*,Type=Topic")
            .addAttr("QueueSize")
            .addAttr("MaxEnqueueTime")
            .addAttr("MinEnqueueTime")
            .addAttr("AverageEnqueueTime")
            .addAttr("InFlightCount")
            .addAttr("ConsumerCount")
            .addAttr("ProducerCount")
            .addAttr("DispatchCount")
            .addAttr("DequeueCount")
            .addAttr("EnqueueCount")
            .addAttr("Subscriptions")
            .addOutputWriterFactory(gw)
            .build();
    serverBuilder.addQuery(q4);

    Query q5 =
        Query.builder()
            .setObj("org.apache.activemq:BrokerName=localhost,Type=Broker")
            .addOutputWriterFactory(gw)
            .build();
    serverBuilder.addQuery(q5);

    Query q6 =
        Query.builder()
            .setObj("java.lang:type=Memory")
            .addAttr("HeapMemoryUsage")
            .addAttr("NonHeapMemoryUsage")
            .addOutputWriterFactory(gw)
            .build();
    serverBuilder.addQuery(q6);

    Query q7 =
        Query.builder()
            .setObj("java.lang:type=Threading")
            .addAttr("DaemonThreadCount")
            .addAttr("PeakThreadCount")
            .addAttr("ThreadCount")
            .addAttr("CurrentThreadCpuTime")
            .addAttr("CurrentThreadUserTime")
            .addAttr("TotalStartedThreadCount")
            .addOutputWriterFactory(gw)
            .build();
    serverBuilder.addQuery(q7);

    Query q8 =
        Query.builder()
            .setObj("java.lang:name=*,type=GarbageCollector")
            .addKey("committed")
            .addKey("init")
            .addKey("max")
            .addKey("used")
            .addKey("duration")
            .addKey("CollectionCount")
            .addKey("CollectionTime")
            .addOutputWriterFactory(gw)
            .build();
    serverBuilder.addQuery(q8);

    Query q9 =
        Query.builder()
            .setObj("java.lang:type=MemoryPool,name=*")
            .addOutputWriterFactory(
                GraphiteWriter.builder()
                    .addTypeName("name")
                    .setDebugEnabled(true)
                    .setHost(GW_HOST)
                    .setPort(2003)
                    .build())
            .build();
    serverBuilder.addQuery(q9);

    JmxProcess process = new JmxProcess(serverBuilder.build());
    new JsonPrinter(System.out).prettyPrint(process);

    Injector injector = JmxTransModule.createInjector(new JmxTransConfiguration());
    JmxTransformer transformer = injector.getInstance(JmxTransformer.class);
    transformer.executeStandalone(process);
  }
예제 #2
0
  @SuppressFBWarnings(
      value = "DMI_HARDCODED_ABSOLUTE_FILENAME",
      justification = "Path to RRD binary is hardcoded as this is example code")
  public static void main(String[] args) throws Exception {
    File outputFile = new File("target/w2-TEST.rrd");
    if (!outputFile.exists() && !outputFile.createNewFile()) {
      throw new IOException("Could not create output file");
    }
    RRDToolWriter gw =
        RRDToolWriter.builder()
            .setTemplateFile(new File("memorypool-rrd-template.xml"))
            .setOutputFile(outputFile)
            .setBinaryPath(new File("/opt/local/bin"))
            .setDebugEnabled(true)
            .setGenerate(true)
            .addTypeName("Destination")
            .build();

    JmxProcess process =
        new JmxProcess(
            Server.builder()
                .setHost("w2")
                .setPort("1105")
                .setAlias("w2_activemq_1105")
                .addQuery(
                    Query.builder()
                        .setObj("org.apache.activemq:BrokerName=localhost,Type=Queue,Destination=*")
                        .addAttr("QueueSize")
                        .addAttr("MaxEnqueueTime")
                        .addAttr("MinEnqueueTime")
                        .addAttr("AverageEnqueueTime")
                        .addAttr("InFlightCount")
                        .addAttr("ConsumerCount")
                        .addAttr("ProducerCount")
                        .addAttr("DispatchCount")
                        .addAttr("DequeueCount")
                        .addAttr("EnqueueCount")
                        .addOutputWriter(gw)
                        .build())
                .addQuery(
                    Query.builder()
                        .setObj("org.apache.activemq:BrokerName=localhost,Type=Topic,Destination=*")
                        .addAttr("QueueSize")
                        .addAttr("MaxEnqueueTime")
                        .addAttr("MinEnqueueTime")
                        .addAttr("AverageEnqueueTime")
                        .addAttr("InFlightCount")
                        .addAttr("ConsumerCount")
                        .addAttr("ProducerCount")
                        .addAttr("DispatchCount")
                        .addAttr("DequeueCount")
                        .addAttr("EnqueueCount")
                        .addOutputWriter(gw)
                        .build())
                .build());
    jsonPrinter.prettyPrint(process);

    Injector injector = JmxTransModule.createInjector(new JmxTransConfiguration());
    JmxTransformer transformer = injector.getInstance(JmxTransformer.class);
    transformer.executeStandalone(process);
  }