Beispiel #1
0
 @Override
 public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
   PerformanceMonitor.begin(target.getClass().getName() + "." + method.getName());
   Object obj = method.invoke(target, args);
   PerformanceMonitor.end();
   return obj;
 }
 @SuppressWarnings("deprecation")
 public void report() {
   for (PerformanceMonitor m : monitors.values()) {
     logger.info(m.report());
   }
   logger.info("Manager reported at " + new Date().toLocaleString());
 }
 public CachingPerformanceMonitor(final PerformanceMonitor performanceMonitor) {
   cachedSystemResourcesInfo = performanceMonitor.createResourcesInfo();
   Thread thread =
       new Thread() {
         @Override
         public void run() {
           super.run();
           try {
             cachedSystemResourcesInfo = performanceMonitor.createResourcesInfo();
             Thread.sleep(500);
           } catch (InterruptedException e) {
             Thread.currentThread().interrupt();
           }
         }
       };
   thread.setDaemon(true);
   thread.start();
 }
Beispiel #4
0
  public DataBuffer getServerStatus(int version) {

    DataBuffer buffer = new DataBuffer();

    // system info
    double cpu = roundToDecimals(cpuMonitor.getCpuUsage() * 100, 2);
    long freeMem = Runtime.getRuntime().freeMemory();
    long maxMem = Runtime.getRuntime().maxMemory();
    long totalMem = Runtime.getRuntime().totalMemory();

    buffer.writeDouble(cpu);
    buffer.writeLong(freeMem);
    buffer.writeLong(maxMem);
    buffer.writeLong(totalMem);

    // threads list
    long totalThreadsCpuTime = 0;
    long[] threadIds = ManagementFactory.getThreadMXBean().getAllThreadIds();

    buffer.writeInt(threadIds.length); // 多少条线程.
    for (int i = 0; i < threadIds.length; i++) {
      long id = threadIds[i];
      String name = ManagementFactory.getThreadMXBean().getThreadInfo(id).getThreadName();
      long cpuTime = 0;
      if (ManagementFactory.getThreadMXBean().isThreadCpuTimeSupported()
          && ManagementFactory.getThreadMXBean().isThreadCpuTimeEnabled()) {
        cpuTime = ManagementFactory.getThreadMXBean().getThreadCpuTime(id);
        totalThreadsCpuTime += cpuTime;
      }
      buffer.writeLong(id);
      buffer.writeString(name);
      buffer.writeLong(cpuTime);
    }

    buffer.writeLong(totalThreadsCpuTime);

    return buffer;
  }
Beispiel #5
0
 public Dashboard() {
   // Create CPU monitoring class
   cpuMonitor = new PerformanceMonitor();
   cpuMonitor.getCpuUsage(); // Set baseline
 }
 public void register(PerformanceMonitor m) {
   monitors.put(m.getName(), m);
 }