public ThresholdLevelsMetric(Object owner, String prefix, long[] levels) { this.levels = levels; this.gauges = new LongGauge[levels.length]; for (int i = 0; i < levels.length; i++) { String name = prefix + String.format("%05d", levels[i]); MonitorConfig config = new MonitorConfig.Builder(name) .withTag("class", owner.getClass().getName()) .build(); gauges[i] = new LongGauge(config); try { DefaultMonitorRegistry.getInstance().register(gauges[i]); } catch (Throwable e) { logger.warn("Cannot register metric {}", name, e); } } }
private Counter getOrCreateCounter(String exceptionName) { Counter counter = exceptionCounters.get(exceptionName); if (counter == null) { counter = new BasicCounter(MonitorConfig.builder(name).withTag("id", exceptionName).build()); if (exceptionCounters.putIfAbsent(exceptionName, counter) == null) { DefaultMonitorRegistry.getInstance().register(counter); } else { counter = exceptionCounters.get(exceptionName); } } return counter; }
public MonitorConfig getMonitorConfig(final String metricName, final Tag tag, final TagList tagList) { MonitorConfig mc = monitorConfigMap.get(metricName); if (mc != null) return mc; final MonitorConfig.Builder monitorConfig = MonitorConfig.builder(metricName); if (tagList != null) monitorConfig.withTags(tagList); if (tag != null) monitorConfig.withTag(tag); mc = monitorConfig.build(); monitorConfigMap.put(metricName, mc); return mc; }
protected static Counter newErrCounter(String name, String err) { return new BasicCounter(MonitorConfig.builder(name).withTag("error", err).build()); }
public static MonitorConfig getMonitorConfig(String name, String appName, String cacheName, String serverGroup, String metric) { Builder builder = MonitorConfig.builder(name).withTag("APP", appName).withTag("METRIC", metric).withTag(OWNER); if (cacheName != null && cacheName.length() > 0) { builder = builder.withTag("CACHE", cacheName); } if (serverGroup != null && serverGroup.length() > 0) { builder = builder.withTag("ServerGroup", serverGroup); } return builder.build(); }
public static MonitorConfig getMonitorConfig(String name, String appName, String cacheName, String metric) { Builder builder = MonitorConfig.builder(name).withTag("APP", appName).withTag("METRIC", metric).withTag(OWNER); if (cacheName != null && cacheName.length() > 0) { builder = builder.withTag("CACHE", cacheName); } return builder.build(); }
@Test public void testBuilderMonitorConfig() throws Exception { MonitorConfig m1 = new MonitorConfig.Builder("a").build(); MonitorConfig m2 = new MonitorConfig.Builder(m1).build(); assertEquals(m1, m2); MonitorConfig m3 = new MonitorConfig.Builder(m1).withTag("k", "v").build(); assertNotEquals(m1, m3); assertEquals(m1.getName(), m3.getName()); assertNotEquals(m1.getTags(), m3.getTags()); assertEquals(m1.getPublishingPolicy(), m3.getPublishingPolicy()); } }
@Test public void testGetConfig() throws Exception { LongGauge gauge = newInstance("test"); MonitorConfig expectedConfig = MonitorConfig.builder("test") .withTag(DataSourceType.GAUGE).build(); assertEquals(gauge.getConfig(), expectedConfig); }
@Test public void testStandardMapping() { MonitorConfig config = MonitorConfig.builder("testName").withTag("foo", "bar").build(); ObjectName name = DEFAULT_MAPPER.createObjectName(TEST_DOMAIN, new BasicCounter(config)); assertEquals(name.getDomain(), TEST_DOMAIN); // note that this assumes that DataSourceType.KEY is greater than 'foo' // for String#compareTo purposes assertEquals(name.getKeyPropertyListString(), String.format("name=testName,foo=bar,%s=COUNTER", DataSourceType.KEY)); }
@Test public void testBasic() throws Exception { MonitorRegistry registry = new BasicMonitorRegistry(); registry.register(Monitors.newCounter("test")); MetricPoller poller = new MonitorRegistryMetricPoller(registry); Metric metric = poller.poll(MATCH_ALL).get(0); MonitorConfig expected = MonitorConfig.builder("test") .withTag(DataSourceType.COUNTER) .build(); assertEquals(metric.getConfig(), expected); }
/** * Returns a copy of the monitor config with an additional tag. */ public MonitorConfig withAdditionalTag(Tag tag) { return copy().withTag(tag).build(); }
@Test public void testGetConfig() throws Exception { DoubleGauge gauge = newInstance("test"); MonitorConfig expectedConfig = MonitorConfig.builder("test") .withTag(DataSourceType.GAUGE).build(); assertEquals(gauge.getConfig(), expectedConfig); } }
EurekaHttpClientRequestMetrics(String resourceName) { this.countersByStatus = createStatusCounters(resourceName); latencyTimer = new BasicTimer( MonitorConfig.builder(EurekaClientNames.METRIC_TRANSPORT_PREFIX + "latency") .withTag("id", resourceName) .withTag("class", MetricsCollectingEurekaHttpClient.class.getSimpleName()) .build(), TimeUnit.MILLISECONDS ); ServoUtil.register(latencyTimer); this.connectionErrors = new BasicCounter( MonitorConfig.builder(EurekaClientNames.METRIC_TRANSPORT_PREFIX + "connectionErrors") .withTag("id", resourceName) .withTag("class", MetricsCollectingEurekaHttpClient.class.getSimpleName()) .build() ); ServoUtil.register(connectionErrors); }
private static Map<Status, Counter> createStatusCounters(String resourceName) { Map<Status, Counter> result = new EnumMap<>(Status.class); for (Status status : Status.values()) { BasicCounter counter = new BasicCounter( MonitorConfig.builder(EurekaClientNames.METRIC_TRANSPORT_PREFIX + "request") .withTag("id", resourceName) .withTag("class", MetricsCollectingEurekaHttpClient.class.getSimpleName()) .withTag("status", status.name()) .build() ); ServoUtil.register(counter); result.put(status, counter); } return result; } }
public ServerChannelMetrics(String id) { super(); String metricNamePrefix = "server.connections."; currentConnectionsGauge = new BasicGauge<>(MonitorConfig.builder(metricNamePrefix + "current").withTag("id", id).build(), () -> currentConnections.get() ); DefaultMonitorRegistry.getInstance().register(currentConnectionsGauge); totalConnections = createCounter(metricNamePrefix + "connect", id); connectionErrors = createCounter(metricNamePrefix + "errors", id); connectionClosed = createCounter(metricNamePrefix + "close", id); connectionIdleTimeout = createCounter(metricNamePrefix + "idle.timeout", id); connectionThrottled = createCounter(metricNamePrefix + "throttled", id); }
public ServerChannelMetrics(String id) { super(); String metricNamePrefix = "server.connections."; currentConnectionsGauge = new BasicGauge<>(MonitorConfig.builder(metricNamePrefix + "current").withTag("id", id).build(), () -> currentConnections.get() ); DefaultMonitorRegistry.getInstance().register(currentConnectionsGauge); totalConnections = createCounter(metricNamePrefix + "connect", id); connectionErrors = createCounter(metricNamePrefix + "errors", id); connectionClosed = createCounter(metricNamePrefix + "close", id); connectionIdleTimeout = createCounter(metricNamePrefix + "idle.timeout", id); connectionThrottled = createCounter(metricNamePrefix + "throttled", id); }
private static BasicCounter createCounter(String name, String id) { BasicCounter counter = new BasicCounter(MonitorConfig.builder(name).withTag("id", id).build()); DefaultMonitorRegistry.getInstance().register(counter); return counter; }
private static BasicCounter createCounter(String name, String id) { BasicCounter counter = new BasicCounter(MonitorConfig.builder(name).withTag("id", id).build()); DefaultMonitorRegistry.getInstance().register(counter); return counter; }