/** * {@inheritDoc} */ @Override public final List<Metric> poll(MetricFilter filter, boolean reset) { long now = System.currentTimeMillis(); MetricList metrics = new MetricList(filter); addClassLoadingMetrics(now, metrics); addCompilationMetrics(now, metrics); addGarbageCollectorMetrics(now, metrics); addMemoryPoolMetrics(now, metrics); addOperatingSystemMetrics(now, metrics); addThreadMetrics(now, metrics); return metrics.getList(); }
private void addThreadMetrics(long timestamp, MetricList metrics) { ThreadMXBean bean = ManagementFactory.getThreadMXBean(); metrics.add(new Metric(DAEMON_THREAD_COUNT, timestamp, bean.getDaemonThreadCount())); metrics.add(new Metric(TOTAL_STARTED_THREAD_COUNT, timestamp, bean.getTotalStartedThreadCount())); addDetailedThreadMetrics(timestamp, metrics); }
private void addMemoryPoolMetrics(long timestamp, MetricList metrics) { final List<MemoryPoolMXBean> beans = ManagementFactory.getMemoryPoolMXBeans(); for (MemoryPoolMXBean bean : beans) { final TagList tags = BasicTagList.of("id", bean.getName(), "memtype", bean.getType().name()); addMemoryUsageMetrics(tags, timestamp, bean.getUsage(), metrics); } }
private static void initMetricsPublishing() throws Exception { final List<MetricObserver> observers = new ArrayList<>(); if (Config.isFileObserverEnabled()) { observers.add(createFileObserver()); } if (Config.isAtlasObserverEnabled()) { observers.add(createAtlasObserver()); } if (Config.isGraphiteObserverEnabled()) { observers.add(createGraphiteObserver()); } PollScheduler.getInstance().start(); schedule(new MonitorRegistryMetricPoller(), observers); if (Config.isJvmPollerEnabled()) { schedule(new JvmMetricPoller(), observers); } }
private void addOperatingSystemMetrics(long timestamp, MetricList metrics) { OperatingSystemMXBean bean = ManagementFactory.getOperatingSystemMXBean(); metrics.add(new Metric(AVAILABLE_PROCESSORS, timestamp, bean.getAvailableProcessors())); metrics.add(new Metric(LOAD_AVERAGE, timestamp, bean.getSystemLoadAverage())); addOptionalMetric(MAX_FILE_DESCRIPTOR_COUNT, timestamp, bean, "getMaxFileDescriptorCount", metrics); addOptionalMetric(OPEN_FILE_DESCRIPTOR_COUNT, timestamp, bean, "getOpenFileDescriptorCount", metrics); addOptionalMetric(COMMITTED_VIRTUAL_MEMORY_SIZE, timestamp, bean, "getCommittedVirtualMemorySize", metrics); addOptionalMetric(TOTAL_PHYSICAL_MEMORY_SIZE, timestamp, bean, "getTotalPhysicalMemorySize", metrics); addOptionalMetric(FREE_PHYSICAL_MEMORY_SIZE, timestamp, bean, "getFreePhysicalMemorySize", metrics); addOptionalMetric(TOTAL_SWAP_SPACE_SIZE, timestamp, bean, "getTotalSwapSpaceSize", metrics); addOptionalMetric(FREE_SWAP_SPACE_SIZE, timestamp, bean, "getFreeSwapSpaceSize", metrics); addOptionalMetric(PROCESS_CPU_LOAD, timestamp, bean, "getProcessCpuLoad", metrics); addOptionalMetric(SYSTEM_CPU_LOAD, timestamp, bean, "getSystemCpuLoad", metrics); }
PollRunnable jvmTask = new PollRunnable(new JvmMetricPoller(), BasicMetricFilter.MATCH_ALL, observer); PollScheduler.getInstance().addPoller(jvmTask, 5, TimeUnit.SECONDS);
private void addOperatingSystemMetrics(long timestamp, MetricList metrics) { OperatingSystemMXBean bean = ManagementFactory.getOperatingSystemMXBean(); metrics.add(new Metric(AVAILABLE_PROCESSORS, timestamp, bean.getAvailableProcessors())); metrics.add(new Metric(LOAD_AVERAGE, timestamp, bean.getSystemLoadAverage())); addOptionalMetric(MAX_FILE_DESCRIPTOR_COUNT, timestamp, bean, "getMaxFileDescriptorCount", metrics); addOptionalMetric(OPEN_FILE_DESCRIPTOR_COUNT, timestamp, bean, "getOpenFileDescriptorCount", metrics); addOptionalMetric(COMMITTED_VIRTUAL_MEMORY_SIZE, timestamp, bean, "getCommittedVirtualMemorySize", metrics); addOptionalMetric(TOTAL_PHYSICAL_MEMORY_SIZE, timestamp, bean, "getTotalPhysicalMemorySize", metrics); addOptionalMetric(FREE_PHYSICAL_MEMORY_SIZE, timestamp, bean, "getFreePhysicalMemorySize", metrics); addOptionalMetric(TOTAL_SWAP_SPACE_SIZE, timestamp, bean, "getTotalSwapSpaceSize", metrics); addOptionalMetric(FREE_SWAP_SPACE_SIZE, timestamp, bean, "getFreeSwapSpaceSize", metrics); addOptionalMetric(PROCESS_CPU_LOAD, timestamp, bean, "getProcessCpuLoad", metrics); addOptionalMetric(SYSTEM_CPU_LOAD, timestamp, bean, "getSystemCpuLoad", metrics); }
/** * {@inheritDoc} */ @Override public final List<Metric> poll(MetricFilter filter, boolean reset) { long now = System.currentTimeMillis(); MetricList metrics = new MetricList(filter); addClassLoadingMetrics(now, metrics); addCompilationMetrics(now, metrics); addGarbageCollectorMetrics(now, metrics); addMemoryPoolMetrics(now, metrics); addOperatingSystemMetrics(now, metrics); addThreadMetrics(now, metrics); return metrics.getList(); }
PollRunnable jvmTask = new PollRunnable(new JvmMetricPoller(), BasicMetricFilter.MATCH_ALL, observers); PollScheduler.getInstance().addPoller(jvmTask, 5, TimeUnit.SECONDS);
private void addMemoryPoolMetrics(long timestamp, MetricList metrics) { final List<MemoryPoolMXBean> beans = ManagementFactory.getMemoryPoolMXBeans(); for (MemoryPoolMXBean bean : beans) { final TagList tags = BasicTagList.of("id", bean.getName(), "memtype", bean.getType().name()); addMemoryUsageMetrics(tags, timestamp, bean.getUsage(), metrics); } }
private void addThreadMetrics(long timestamp, MetricList metrics) { ThreadMXBean bean = ManagementFactory.getThreadMXBean(); metrics.add(new Metric(DAEMON_THREAD_COUNT, timestamp, bean.getDaemonThreadCount())); metrics.add(new Metric(TOTAL_STARTED_THREAD_COUNT, timestamp, bean.getTotalStartedThreadCount())); addDetailedThreadMetrics(timestamp, metrics); }