Package com.dianping.cat.consumer.performance

Source Code of com.dianping.cat.consumer.performance.ProblemPerformanceTest

package com.dianping.cat.consumer.performance;

import org.junit.Test;
import org.unidal.lookup.ComponentTestCase;

import com.dianping.cat.analysis.MessageAnalyzer;
import com.dianping.cat.consumer.problem.ProblemAnalyzer;
import com.dianping.cat.message.Event;
import com.dianping.cat.message.Message;
import com.dianping.cat.message.internal.DefaultEvent;
import com.dianping.cat.message.internal.MockMessageBuilder;
import com.dianping.cat.message.spi.MessageTree;
import com.dianping.cat.message.spi.internal.DefaultMessageTree;

public class ProblemPerformanceTest extends ComponentTestCase {

  @Test
  public void test() throws Exception {
    ProblemAnalyzer analyzer = (ProblemAnalyzer) lookup(
        MessageAnalyzer.class, ProblemAnalyzer.ID);
    MessageTree tree = buildMessage();

    long current = System.currentTimeMillis();

    long size = 1000000000l;
    for (int i = 0; i < size; i++) {
      analyzer.process(tree);
    }
    System.out.println(analyzer.getReport("cat"));
    System.out.println("Cost " + (System.currentTimeMillis() - current)
        / 1000);
    // cost 64
  }

  @Test
  public void test2() throws Exception {
    ProblemAnalyzer analyzer = (ProblemAnalyzer) lookup(
        MessageAnalyzer.class, ProblemAnalyzer.ID);
    MessageTree tree = buildMessage();

    long current = System.currentTimeMillis();

    long size = 10000000000l;
    for (int i = 0; i < size; i++) {
      Event event = new DefaultEvent("Exception", "name" + i % 100);
      tree.setMessage(event);
      analyzer.process(tree);

      Event event2 = new DefaultEvent("Error", "name" + i % 100);
      tree.setMessage(event2);
      analyzer.process(tree);

      Event event3 = new DefaultEvent("Call", "name" + i % 100);
      tree.setMessage(event3);
      analyzer.process(tree);
    }
    System.out.println(analyzer.getReport("cat"));
    System.out.println("Cost " + (System.currentTimeMillis() - current)
        / 1000);
    // cost 64
  }

  public MessageTree buildMessage() {
    Message message = new MockMessageBuilder() {
      @Override
      public MessageHolder define() {
        TransactionHolder t = t("WEB CLUSTER", "GET", 112819)
            //
            .at(1348374838231L)
            //
            .after(1300)
            .child(t("QUICKIE SERVICE", "gimme_stuff", 1571))
            //
            .after(100).child(e("SERVICE", "event1"))
            .child(e("Excetion", "NullPointException1"))
            .after(100)
            .child(h("SERVICE", "heartbeat1"))
            //
            .after(100)
            .child(t("WEB SERVER", "GET", 109358)
                //
                .after(1000)
                .child(t("SOME SERVICE", "get", 4345) //
                    .after(4000).child(
                        t("MEMCACHED", "Get", 279)))
                //
                .mark()
                .after(200)
                .child(t("MEMCACHED", "Inc", 319))
                //
                .reset()
                .after(500)
                .child(t("BIG ASS SERVICE", "getThemDatar",
                    97155)
                    //
                    .after(1000)
                    .mark()
                    .child(t("SERVICE", "getStuff", 3760))
                    //
                    .reset()
                    .child(t("DATAR", "findThings", 94537))
                    //
                    .after(200)
                    .child(t("THINGIE", "getMoar", 1435)) //
                )
                //
                .after(100)
                .mark()
                .child(t("OTHER DATA SERVICE", "get", 4394)
                    //
                    .after(1000).mark()
                    .child(t("MEMCACHED", "Get", 378))
                    //
                    .reset()
                    .child(t("MEMCACHED", "Get", 3496)) //
                )
                //
                .reset()
                .child(t("FINAL DATA SERVICE", "get", 4394)
                    //
                    .after(1000)
                    .mark()
                    .child(t("MEMCACHED", "Get", 386))
                    //
                    .reset()
                    .child(t("MEMCACHED", "Get", 322))
                    //
                    .reset()
                    .child(t("MEMCACHED", "Get", 322))
                    .child(e("Excetion",
                        "NullPointException"))) //
            ) //
        ;

        return t;
      }
    }.build();

    MessageTree tree = new DefaultMessageTree();
    tree.setDomain("cat");
    tree.setHostName("test");
    tree.setIpAddress("test");
    tree.setThreadGroupName("test");
    tree.setThreadId("test");
    tree.setThreadName("test");
    tree.setMessage(message);
    return tree;
  }

}
TOP

Related Classes of com.dianping.cat.consumer.performance.ProblemPerformanceTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.