下面列出了怎么用com.codahale.metrics.annotation.Gauge的API类实例代码及写法,或者点击链接到github查看源代码。
private String metricName(Annotation annotation) {
if (CachedGauge.class.isInstance(annotation))
return ((CachedGauge) annotation).name();
else if (Counted.class.isInstance(annotation))
return ((Counted) annotation).name();
else if (ExceptionMetered.class.isInstance(annotation))
return ((ExceptionMetered) annotation).name();
else if (Gauge.class.isInstance(annotation))
return ((Gauge) annotation).name();
else if (Metered.class.isInstance(annotation))
return ((Metered) annotation).name();
else if (Timed.class.isInstance(annotation))
return ((Timed) annotation).name();
else
throw new IllegalArgumentException("Unsupported Metrics forMethod [" + annotation.getClass().getName() + "]");
}
private boolean isMetricAbsolute(Annotation annotation) {
if (extension.<Boolean>getParameter(UseAbsoluteName).orElse(false))
return true;
if (CachedGauge.class.isInstance(annotation))
return ((CachedGauge) annotation).absolute();
else if (Counted.class.isInstance(annotation))
return ((Counted) annotation).absolute();
else if (ExceptionMetered.class.isInstance(annotation))
return ((ExceptionMetered) annotation).absolute();
else if (Gauge.class.isInstance(annotation))
return ((Gauge) annotation).absolute();
else if (Metered.class.isInstance(annotation))
return ((Metered) annotation).absolute();
else if (Timed.class.isInstance(annotation))
return ((Timed) annotation).absolute();
else
throw new IllegalArgumentException("Unsupported Metrics forMethod [" + annotation.getClass().getName() + "]");
}
@ExceptionMetered(name = "exception")
@Gauge(name = "gauge")
@Metered(name = "meter")
@Timed(name = "timer")
public static String metricsMethod() {
return "value";
}
@ExceptionMetered(name = "exception")
@Gauge(name = "gauge")
@Metered(name = "meter")
@Timed(name = "timer")
public String metricsMethod() {
return "value";
}
@ExceptionMetered(name = "exception")
@Gauge(name = "gauge")
@Metered(name = "meter")
@Timed(name = "timer")
public String metricsMethod() {
return "value";
}
@Counted(name = "counter", monotonic = true)
@ExceptionMetered(name = "exception")
@Gauge(name = "gauge")
@Metered(name = "meter")
@Timed(name = "timer")
public String metricsMethod() {
return "value";
}
@Gauge(name = ACTIVE_CONNECTIONS, absolute = true)
@Override
public long getActiveCount() {
return instances.values().stream().filter(this::isActive).count();
}
@Override
@Gauge(name = GAUGE_PING, absolute = true)
public double getAveragePing() {
return getShardManager() != null ? getShardManager().getAverageGatewayPing() : 0;
}
/** @return number of access tickets. */
@Gauge(name = "auth.sso.access_ticket_number")
public int size() {
return accessTickets.size();
}
@Gauge(name = "singleGaugeStaticMethod")
public static long getSingleGauge() {
return singleStaticGauge;
}
@Gauge(name = "singleGaugeMethod")
public long getSingleGauge() {
return singleGauge;
}
@Gauge(name = "publicGaugeMethod")
public long getPublicGaugeMethod() {
return publicGauge;
}
@Gauge(name = "packagePrivateGaugeMethod")
long getPackagePrivateGauge() {
return packagePrivateGauge;
}
@Gauge(name = "protectedGaugeMethod")
protected long getProtectedGauge() {
return protectedGauge;
}
@Gauge(name = "privateGaugeMethod")
private long getPrivateGauge() {
return privateGauge;
}
@Gauge(name = "childGaugeMethod")
public long getChildGauge() {
return childGauge;
}
@Gauge(name = "gaugeMethod")
public long getGauge() {
return gauge;
}
private CachingGauge(com.codahale.metrics.Gauge<?> gauge, long timeout, TimeUnit timeoutUnit) {
super(timeout, timeoutUnit);
this.gauge = gauge;
}
Of<Gauge> gauge(Class<?> topClass, Method method) {
return resolverOf(topClass, method, Gauge.class);
}
private <X> void metricsAnnotations(@Observes @WithAnnotations({CachedGauge.class, Counted.class, ExceptionMetered.class, Gauge.class, Metered.class, Timed.class}) ProcessAnnotatedType<X> pat) {
pat.setAnnotatedType(new AnnotatedTypeDecorator<>(pat.getAnnotatedType(), METRICS_BINDING));
}