Skip to content

Commit b0a4f20

Browse files
authored
Grafana metrics post (#80)
1 parent f920b27 commit b0a4f20

File tree

2 files changed

+34
-21
lines changed

2 files changed

+34
-21
lines changed

stubbornjava-common/src/main/java/com/stubbornjava/common/Metrics.java

Lines changed: 2 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,14 @@
77

88
import com.amazonaws.util.EC2MetadataUtils;
99
import com.codahale.metrics.Meter;
10-
import com.codahale.metrics.MetricFilter;
1110
import com.codahale.metrics.MetricRegistry;
1211
import com.codahale.metrics.Timer;
13-
import com.codahale.metrics.graphite.GraphiteReporter;
1412
import com.codahale.metrics.jvm.CachedThreadStatesGaugeSet;
1513
import com.codahale.metrics.jvm.GarbageCollectorMetricSet;
1614
import com.codahale.metrics.jvm.MemoryUsageGaugeSet;
1715
import com.codahale.metrics.logback.InstrumentedAppender;
1816

1917
import ch.qos.logback.classic.LoggerContext;
20-
import okhttp3.OkHttpClient;
2118

2219
// {{start:metrics}}
2320
public class Metrics {
@@ -37,24 +34,8 @@ public class Metrics {
3734
metrics.start();
3835
root.addAppender(metrics);
3936

40-
41-
// Graphite reporter to Grafana Cloud
42-
OkHttpClient client = new OkHttpClient.Builder()
43-
//.addNetworkInterceptor(HttpClient.getLoggingInterceptor())
44-
.build();
45-
46-
String graphiteHost = Configs.properties().getString("metrics.graphite.host");
47-
String grafanaApiKey = Configs.properties().getString("metrics.grafana.api_key");
48-
final GraphiteHttpSender graphite = new GraphiteHttpSender(client, graphiteHost, grafanaApiKey);
49-
final GraphiteReporter reporter = GraphiteReporter.forRegistry(registry)
50-
.prefixedWith(metricPrefix("stubbornjava"))
51-
.convertRatesTo(TimeUnit.MINUTES)
52-
.convertDurationsTo(TimeUnit.MILLISECONDS)
53-
.filter(MetricFilter.ALL)
54-
.build(graphite);
55-
reporter.start(10, TimeUnit.SECONDS);
56-
5737
// Register reporters here.
38+
MetricsReporters.startReporters(registry);
5839
}
5940

6041
public static MetricRegistry registry() {
@@ -69,7 +50,7 @@ public static Meter meter(String first, String... keys) {
6950
return registry.meter(MetricRegistry.name(first, keys));
7051
}
7152

72-
private static String metricPrefix(String app) {
53+
static String metricPrefix(String app) {
7354
Env env = Env.get();
7455
String host = env == Env.LOCAL ? "localhost" : getHost();
7556
String prefix = MetricRegistry.name(app, env.getName(), host);
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package com.stubbornjava.common;
2+
3+
import java.util.concurrent.TimeUnit;
4+
5+
import com.codahale.metrics.MetricFilter;
6+
import com.codahale.metrics.MetricRegistry;
7+
import com.codahale.metrics.graphite.GraphiteReporter;
8+
9+
import okhttp3.OkHttpClient;
10+
11+
// {{start:reporters}}
12+
class MetricsReporters {
13+
14+
public static void startReporters(MetricRegistry registry) {
15+
// Graphite reporter to Grafana Cloud
16+
OkHttpClient client = new OkHttpClient.Builder()
17+
//.addNetworkInterceptor(HttpClient.getLoggingInterceptor())
18+
.build();
19+
20+
String graphiteHost = Configs.properties().getString("metrics.graphite.host");
21+
String grafanaApiKey = Configs.properties().getString("metrics.grafana.api_key");
22+
final GraphiteHttpSender graphite = new GraphiteHttpSender(client, graphiteHost, grafanaApiKey);
23+
final GraphiteReporter reporter = GraphiteReporter.forRegistry(registry)
24+
.prefixedWith(Metrics.metricPrefix("stubbornjava"))
25+
.convertRatesTo(TimeUnit.MINUTES)
26+
.convertDurationsTo(TimeUnit.MILLISECONDS)
27+
.filter(MetricFilter.ALL)
28+
.build(graphite);
29+
reporter.start(10, TimeUnit.SECONDS);
30+
}
31+
}
32+
// {{end:reporters}}

0 commit comments

Comments
 (0)