当前位置: 首页>>代码示例>>Java>>正文


Java Instrumentation类代码示例

本文整理汇总了Java中org.apache.hadoop.lib.service.Instrumentation的典型用法代码示例。如果您正苦于以下问题:Java Instrumentation类的具体用法?Java Instrumentation怎么用?Java Instrumentation使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


Instrumentation类属于org.apache.hadoop.lib.service包,在下文中一共展示了Instrumentation类的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: postInit

import org.apache.hadoop.lib.service.Instrumentation; //导入依赖的package包/类
@Override
public void postInit() throws ServiceException {
  super.postInit();
  Instrumentation instrumentation = getServer().get(Instrumentation.class);
  instrumentation.addVariable(INSTRUMENTATION_GROUP, "unmanaged.fs", new Instrumentation.Variable<Integer>() {
    @Override
    public Integer getValue() {
      return unmanagedFileSystems.get();
    }
  });
  instrumentation.addSampler(INSTRUMENTATION_GROUP, "unmanaged.fs", 60, new Instrumentation.Variable<Long>() {
    @Override
    public Long getValue() {
      return (long) unmanagedFileSystems.get();
    }
  });
  Scheduler scheduler = getServer().get(Scheduler.class);
  int purgeInterval = getServiceConfig().getInt(FS_CACHE_PURGE_FREQUENCY, 60);
  purgeTimeout = getServiceConfig().getLong(FS_CACHE_PURGE_TIMEOUT, 60);
  purgeTimeout = (purgeTimeout > 0) ? purgeTimeout : 0;
  if (purgeTimeout > 0) {
    scheduler.schedule(new FileSystemCachePurger(),
                       purgeInterval, purgeInterval, TimeUnit.SECONDS);
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:26,代码来源:FileSystemAccessService.java

示例2: schedule

import org.apache.hadoop.lib.service.Instrumentation; //导入依赖的package包/类
@Override
public void schedule(final Callable<?> callable, long delay, long interval, TimeUnit unit) {
  Check.notNull(callable, "callable");
  if (!scheduler.isShutdown()) {
    LOG.debug("Scheduling callable [{}], interval [{}] seconds, delay [{}] in [{}]",
              new Object[]{callable, delay, interval, unit});
    Runnable r = new Runnable() {
      @Override
      public void run() {
        String instrName = callable.getClass().getSimpleName();
        Instrumentation instr = getServer().get(Instrumentation.class);
        if (getServer().getStatus() == Server.Status.HALTED) {
          LOG.debug("Skipping [{}], server status [{}]", callable, getServer().getStatus());
          instr.incr(INST_GROUP, instrName + ".skips", 1);
        } else {
          LOG.debug("Executing [{}]", callable);
          instr.incr(INST_GROUP, instrName + ".execs", 1);
          Instrumentation.Cron cron = instr.createCron().start();
          try {
            callable.call();
          } catch (Exception ex) {
            instr.incr(INST_GROUP, instrName + ".fails", 1);
            LOG.error("Error executing [{}], {}", new Object[]{callable, ex.getMessage(), ex});
          } finally {
            instr.addCron(INST_GROUP, instrName, cron.stop());
          }
        }
      }
    };
    scheduler.scheduleWithFixedDelay(r, delay, interval, unit);
  } else {
    throw new IllegalStateException(
      MessageFormat.format("Scheduler shutting down, ignoring scheduling of [{}]", callable));
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:36,代码来源:SchedulerService.java

示例3: sampling

import org.apache.hadoop.lib.service.Instrumentation; //导入依赖的package包/类
@Test
@TestDir
@SuppressWarnings("unchecked")
public void sampling() throws Exception {
  String dir = TestDirHelper.getTestDir().getAbsolutePath();
  String services = StringUtils.join(",", Arrays.asList(InstrumentationService.class.getName(),
                                                        SchedulerService.class.getName()));
  Configuration conf = new Configuration(false);
  conf.set("server.services", services);
  Server server = new Server("server", dir, dir, dir, dir, conf);
  server.init();
  Instrumentation instrumentation = server.get(Instrumentation.class);

  final AtomicInteger count = new AtomicInteger();

  Instrumentation.Variable<Long> varToSample = new Instrumentation.Variable<Long>() {
    @Override
    public Long getValue() {
      return (long) count.incrementAndGet();
    }
  };
  instrumentation.addSampler("g", "s", 10, varToSample);

  sleep(2000);
  int i = count.get();
  assertTrue(i > 0);

  Map<String, Map<String, ?>> snapshot = instrumentation.getSnapshot();
  Map<String, Map<String, Object>> samplers = (Map<String, Map<String, Object>>) snapshot.get("samplers");
  InstrumentationService.Sampler sampler = (InstrumentationService.Sampler) samplers.get("g").get("s");
  assertTrue(sampler.getRate() > 0);

  server.destroy();
}
 
开发者ID:naver,项目名称:hadoop,代码行数:35,代码来源:TestInstrumentationService.java

示例4: postInit

import org.apache.hadoop.lib.service.Instrumentation; //导入依赖的package包/类
@Override
public void postInit() throws ServiceException {
  super.postInit();
  Instrumentation instrumentation = getServer().get(Instrumentation.class);
  instrumentation.addVariable(INSTRUMENTATION_GROUP, "unmanaged.fs",
      new Instrumentation.Variable<Integer>() {
        @Override
        public Integer getValue() {
          return unmanagedFileSystems.get();
        }
      });
  instrumentation.addSampler(INSTRUMENTATION_GROUP, "unmanaged.fs", 60,
      new Instrumentation.Variable<Long>() {
        @Override
        public Long getValue() {
          return (long) unmanagedFileSystems.get();
        }
      });
  Scheduler scheduler = getServer().get(Scheduler.class);
  int purgeInterval = getServiceConfig().getInt(FS_CACHE_PURGE_FREQUENCY, 60);
  purgeTimeout = getServiceConfig().getLong(FS_CACHE_PURGE_TIMEOUT, 60);
  purgeTimeout = (purgeTimeout > 0) ? purgeTimeout : 0;
  if (purgeTimeout > 0) {
    scheduler
        .schedule(new FileSystemCachePurger(), purgeInterval, purgeInterval,
            TimeUnit.SECONDS);
  }
}
 
开发者ID:hopshadoop,项目名称:hops,代码行数:29,代码来源:FileSystemAccessService.java

示例5: schedule

import org.apache.hadoop.lib.service.Instrumentation; //导入依赖的package包/类
@Override
public void schedule(final Callable<?> callable, long delay, long interval,
    TimeUnit unit) {
  Check.notNull(callable, "callable");
  if (!scheduler.isShutdown()) {
    LOG.debug(
        "Scheduling callable [{}], interval [{}] seconds, delay [{}] in [{}]",
        new Object[]{callable, delay, interval, unit});
    Runnable r = new Runnable() {
      @Override
      public void run() {
        String instrName = callable.getClass().getSimpleName();
        Instrumentation instr = getServer().get(Instrumentation.class);
        if (getServer().getStatus() == Server.Status.HALTED) {
          LOG.debug("Skipping [{}], server status [{}]", callable,
              getServer().getStatus());
          instr.incr(INST_GROUP, instrName + ".skips", 1);
        } else {
          LOG.debug("Executing [{}]", callable);
          instr.incr(INST_GROUP, instrName + ".execs", 1);
          Instrumentation.Cron cron = instr.createCron().start();
          try {
            callable.call();
          } catch (Exception ex) {
            instr.incr(INST_GROUP, instrName + ".fails", 1);
            LOG.error("Error executing [{}], {}",
                new Object[]{callable, ex.getMessage(), ex});
          } finally {
            instr.addCron(INST_GROUP, instrName, cron.stop());
          }
        }
      }
    };
    scheduler.scheduleWithFixedDelay(r, delay, interval, unit);
  } else {
    throw new IllegalStateException(MessageFormat
        .format("Scheduler shutting down, ignoring scheduling of [{}]",
            callable));
  }
}
 
开发者ID:hopshadoop,项目名称:hops,代码行数:41,代码来源:SchedulerService.java

示例6: sampling

import org.apache.hadoop.lib.service.Instrumentation; //导入依赖的package包/类
@Test
@TestDir
@SuppressWarnings("unchecked")
public void sampling() throws Exception {
  String dir = TestDirHelper.getTestDir().getAbsolutePath();
  String services = StringUtils.join(",", Arrays
      .asList(InstrumentationService.class.getName(),
          SchedulerService.class.getName()));
  Configuration conf = new Configuration(false);
  conf.set("server.services", services);
  Server server = new Server("server", dir, dir, dir, dir, conf);
  server.init();
  Instrumentation instrumentation = server.get(Instrumentation.class);

  final AtomicInteger count = new AtomicInteger();

  Instrumentation.Variable<Long> varToSample =
      new Instrumentation.Variable<Long>() {
        @Override
        public Long getValue() {
          return (long) count.incrementAndGet();
        }
      };
  instrumentation.addSampler("g", "s", 10, varToSample);

  sleep(2000);
  int i = count.get();
  assertTrue(i > 0);

  Map<String, Map<String, ?>> snapshot = instrumentation.getSnapshot();
  Map<String, Map<String, Object>> samplers =
      (Map<String, Map<String, Object>>) snapshot.get("samplers");
  InstrumentationService.Sampler sampler =
      (InstrumentationService.Sampler) samplers.get("g").get("s");
  assertTrue(sampler.getRate() > 0);

  server.destroy();
}
 
开发者ID:hopshadoop,项目名称:hops,代码行数:39,代码来源:TestInstrumentationService.java

示例7: getServiceDependencies

import org.apache.hadoop.lib.service.Instrumentation; //导入依赖的package包/类
@Override
public Class[] getServiceDependencies() {
  return new Class[]{Instrumentation.class, Scheduler.class};
}
 
开发者ID:naver,项目名称:hadoop,代码行数:5,代码来源:FileSystemAccessService.java

示例8: getServiceDependencies

import org.apache.hadoop.lib.service.Instrumentation; //导入依赖的package包/类
@Override
public Class[] getServiceDependencies() {
  return new Class[]{Instrumentation.class};
}
 
开发者ID:naver,项目名称:hadoop,代码行数:5,代码来源:SchedulerService.java

示例9: init

import org.apache.hadoop.lib.service.Instrumentation; //导入依赖的package包/类
@Override
@SuppressWarnings("unchecked")
public void init() throws ServiceException {
  timersSize = getServiceConfig().getInt(CONF_TIMERS_SIZE, 10);
  counterLock = new ReentrantLock();
  timerLock = new ReentrantLock();
  variableLock = new ReentrantLock();
  samplerLock = new ReentrantLock();
  Map<String, VariableHolder> jvmVariables = new ConcurrentHashMap<String, VariableHolder>();
  counters = new ConcurrentHashMap<String, Map<String, AtomicLong>>();
  timers = new ConcurrentHashMap<String, Map<String, Timer>>();
  variables = new ConcurrentHashMap<String, Map<String, VariableHolder>>();
  samplers = new ConcurrentHashMap<String, Map<String, Sampler>>();
  samplersList = new ArrayList<Sampler>();
  all = new LinkedHashMap<String, Map<String, ?>>();
  all.put("os-env", System.getenv());
  all.put("sys-props", (Map<String, ?>) (Map) System.getProperties());
  all.put("jvm", jvmVariables);
  all.put("counters", (Map) counters);
  all.put("timers", (Map) timers);
  all.put("variables", (Map) variables);
  all.put("samplers", (Map) samplers);

  jvmVariables.put("free.memory", new VariableHolder<Long>(new Instrumentation.Variable<Long>() {
    @Override
    public Long getValue() {
      return Runtime.getRuntime().freeMemory();
    }
  }));
  jvmVariables.put("max.memory", new VariableHolder<Long>(new Instrumentation.Variable<Long>() {
    @Override
    public Long getValue() {
      return Runtime.getRuntime().maxMemory();
    }
  }));
  jvmVariables.put("total.memory", new VariableHolder<Long>(new Instrumentation.Variable<Long>() {
    @Override
    public Long getValue() {
      return Runtime.getRuntime().totalMemory();
    }
  }));
}
 
开发者ID:naver,项目名称:hadoop,代码行数:43,代码来源:InstrumentationService.java

示例10: getInterface

import org.apache.hadoop.lib.service.Instrumentation; //导入依赖的package包/类
@Override
public Class getInterface() {
  return Instrumentation.class;
}
 
开发者ID:naver,项目名称:hadoop,代码行数:5,代码来源:InstrumentationService.java

示例11: addCron

import org.apache.hadoop.lib.service.Instrumentation; //导入依赖的package包/类
@Override
public void addCron(String group, String name, Instrumentation.Cron cron) {
  Timer timer = getToAdd(group, name, Timer.class, timerLock, timers);
  timer.addCron((Cron) cron);
}
 
开发者ID:naver,项目名称:hadoop,代码行数:6,代码来源:InstrumentationService.java

示例12: service

import org.apache.hadoop.lib.service.Instrumentation; //导入依赖的package包/类
@Test
@TestDir
@SuppressWarnings("unchecked")
public void service() throws Exception {
  String dir = TestDirHelper.getTestDir().getAbsolutePath();
  String services = StringUtils.join(",", Arrays.asList(InstrumentationService.class.getName()));
  Configuration conf = new Configuration(false);
  conf.set("server.services", services);
  Server server = new Server("server", dir, dir, dir, dir, conf);
  server.init();

  Instrumentation instrumentation = server.get(Instrumentation.class);
  assertNotNull(instrumentation);
  instrumentation.incr("g", "c", 1);
  instrumentation.incr("g", "c", 2);
  instrumentation.incr("g", "c1", 2);

  Instrumentation.Cron cron = instrumentation.createCron();
  cron.start();
  sleep(100);
  cron.stop();
  instrumentation.addCron("g", "t", cron);
  cron = instrumentation.createCron();
  cron.start();
  sleep(200);
  cron.stop();
  instrumentation.addCron("g", "t", cron);

  Instrumentation.Variable<String> var = new Instrumentation.Variable<String>() {
    @Override
    public String getValue() {
      return "foo";
    }
  };
  instrumentation.addVariable("g", "v", var);

  Instrumentation.Variable<Long> varToSample = new Instrumentation.Variable<Long>() {
    @Override
    public Long getValue() {
      return 1L;
    }
  };
  instrumentation.addSampler("g", "s", 10, varToSample);

  Map<String, ?> snapshot = instrumentation.getSnapshot();
  assertNotNull(snapshot.get("os-env"));
  assertNotNull(snapshot.get("sys-props"));
  assertNotNull(snapshot.get("jvm"));
  assertNotNull(snapshot.get("counters"));
  assertNotNull(snapshot.get("timers"));
  assertNotNull(snapshot.get("variables"));
  assertNotNull(snapshot.get("samplers"));
  assertNotNull(((Map<String, String>) snapshot.get("os-env")).get("PATH"));
  assertNotNull(((Map<String, String>) snapshot.get("sys-props")).get("java.version"));
  assertNotNull(((Map<String, ?>) snapshot.get("jvm")).get("free.memory"));
  assertNotNull(((Map<String, ?>) snapshot.get("jvm")).get("max.memory"));
  assertNotNull(((Map<String, ?>) snapshot.get("jvm")).get("total.memory"));
  assertNotNull(((Map<String, Map<String, Object>>) snapshot.get("counters")).get("g"));
  assertNotNull(((Map<String, Map<String, Object>>) snapshot.get("timers")).get("g"));
  assertNotNull(((Map<String, Map<String, Object>>) snapshot.get("variables")).get("g"));
  assertNotNull(((Map<String, Map<String, Object>>) snapshot.get("samplers")).get("g"));
  assertNotNull(((Map<String, Map<String, Object>>) snapshot.get("counters")).get("g").get("c"));
  assertNotNull(((Map<String, Map<String, Object>>) snapshot.get("counters")).get("g").get("c1"));
  assertNotNull(((Map<String, Map<String, Object>>) snapshot.get("timers")).get("g").get("t"));
  assertNotNull(((Map<String, Map<String, Object>>) snapshot.get("variables")).get("g").get("v"));
  assertNotNull(((Map<String, Map<String, Object>>) snapshot.get("samplers")).get("g").get("s"));

  StringWriter writer = new StringWriter();
  JSONObject.writeJSONString(snapshot, writer);
  writer.close();
  server.destroy();
}
 
开发者ID:naver,项目名称:hadoop,代码行数:73,代码来源:TestInstrumentationService.java


注:本文中的org.apache.hadoop.lib.service.Instrumentation类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。