Skip to content

Commit be02be8

Browse files
guanchao-yangluyiisme
authored andcommitted
merge (#21)
* actuatator counter and gauge name prefix
1 parent bb2a207 commit be02be8

File tree

4 files changed

+36
-8
lines changed

4 files changed

+36
-8
lines changed

client/lookout-sofa-boot-starter/src/main/java/com/alipay/lookout/starter/autoConfiguration/LookoutAutoConfiguration.java

+3
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,9 @@ public MetricsRegistryFactory prometheusMetricsRegistryFactory() {
112112
"com.codahale.metrics.MetricRegistry" })
113113
public DropWizardMetricsRegistryFactory dropWizardMetricsRegistryFactory() {
114114
try {
115+
/*
116+
* In order to avoid [com.codahale.metrics.MetricRegistry] class not found.
117+
*/
115118
com.codahale.metrics.MetricRegistry metricRegistry = beanFactory
116119
.getBean(com.codahale.metrics.MetricRegistry.class);
117120
if (metricRegistry == null) {

client/lookout-sofa-boot-starter/src/main/java/com/alipay/lookout/starter/support/actuator/LookoutSpringBootMetricsImpl.java

+19-1
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,13 @@
3535
*/
3636
public class LookoutSpringBootMetricsImpl implements CounterService, GaugeService {
3737

38+
public static final String LOOKOUT_COUNTER_PREFIX = "counter.";
39+
40+
public static final String LOOKOUT_GAUGE_PREFIX = "gauge.";
41+
3842
private final Registry registry;
3943

40-
private final ConcurrentMap<String, SimpleLookoutGauge> gauges = new ConcurrentHashMap<String, SimpleLookoutGauge>();
44+
private final ConcurrentMap<String, SimpleLookoutGauge> gauges = new ConcurrentHashMap<String, SimpleLookoutGauge>();
4145

4246
public LookoutSpringBootMetricsImpl(Registry registry) {
4347
this.registry = registry;
@@ -48,6 +52,7 @@ public void increment(String metricName) {
4852
if (StringUtils.isBlank(metricName)) {
4953
return;
5054
}
55+
metricName = wrapName(LOOKOUT_COUNTER_PREFIX, metricName);
5156
Id id = this.registry.createId(metricName);
5257
Counter counter = this.registry.counter(id);
5358
counter.inc();
@@ -58,6 +63,7 @@ public void decrement(String metricName) {
5863
if (StringUtils.isBlank(metricName)) {
5964
return;
6065
}
66+
metricName = wrapName(LOOKOUT_COUNTER_PREFIX, metricName);
6167
Id id = this.registry.createId(metricName);
6268
Counter counter = this.registry.counter(id);
6369
counter.dec();
@@ -68,6 +74,7 @@ public void reset(String metricName) {
6874
if (StringUtils.isBlank(metricName)) {
6975
return;
7076
}
77+
metricName = wrapName(LOOKOUT_COUNTER_PREFIX, metricName);
7178
Id id = this.registry.createId(metricName);
7279
this.registry.removeMetric(id);
7380
}
@@ -77,6 +84,7 @@ public void submit(String metricName, double value) {
7784
if (StringUtils.isBlank(metricName)) {
7885
return;
7986
}
87+
metricName = wrapName(LOOKOUT_GAUGE_PREFIX, metricName);
8088
SimpleLookoutGauge gauge = this.gauges.get(metricName);
8189
if (gauge == null) {
8290
SimpleLookoutGauge newGauge = new SimpleLookoutGauge(value);
@@ -90,6 +98,16 @@ public void submit(String metricName, double value) {
9098
gauge.setValue(value);
9199
}
92100

101+
private String wrapName(String prefix, String metricName) {
102+
if (StringUtils.isBlank(metricName)) {
103+
throw new RuntimeException("Metric name can't be blank!");
104+
}
105+
if (metricName.startsWith(prefix)) {
106+
return metricName;
107+
}
108+
return prefix + metricName;
109+
}
110+
93111
private final static class SimpleLookoutGauge implements Gauge<Double> {
94112

95113
private volatile double value;

client/lookout-sofa-boot-starter/src/test/java/com/alipay/lookout/starter/support/actuator/LookoutSpringBootMetricsImplTest.java

+11-6
Original file line numberDiff line numberDiff line change
@@ -68,13 +68,15 @@ public void testInstance() throws Exception {
6868
*/
6969
@Test
7070
public void testIncrement() throws Exception {
71-
String metricName = "metricName";
72-
this.counterService.increment(metricName);
71+
String originName = "metricName";
72+
String metricName = originName;
73+
this.counterService.increment(originName);
74+
metricName = LookoutSpringBootMetricsImpl.LOOKOUT_COUNTER_PREFIX + metricName;
7375
Metric metric = this.lookoutRegistryMetricReader.findOne(metricName);
7476
assertTrue(metric != null);
7577
assertEquals(1L, metric.getValue());
7678
//decrement
77-
this.counterService.decrement(metricName);
79+
this.counterService.decrement(originName);
7880
metric = this.lookoutRegistryMetricReader.findOne(metricName);
7981
assertTrue(metric != null);
8082
assertEquals(0L, metric.getValue());
@@ -85,11 +87,13 @@ public void testIncrement() throws Exception {
8587
*/
8688
@Test
8789
public void testReset() throws Exception {
88-
String metricName = "metricName1";
89-
this.counterService.increment(metricName);
90+
String originName = "metricName1";
91+
String metricName = originName;
92+
this.counterService.increment(originName);
93+
metricName = LookoutSpringBootMetricsImpl.LOOKOUT_COUNTER_PREFIX + metricName;
9094
Metric metric = this.lookoutRegistryMetricReader.findOne(metricName);
9195
assertTrue(metric != null);
92-
this.counterService.reset(metricName);
96+
this.counterService.reset(originName);
9397
assertTrue(this.lookoutRegistryMetricReader.findOne(metricName) == null);
9498
}
9599

@@ -102,6 +106,7 @@ public void testSubmit() throws Exception {
102106
double value = 10;
103107
this.gaugeService.submit(gaugeName, value);
104108
//get
109+
gaugeName = LookoutSpringBootMetricsImpl.LOOKOUT_GAUGE_PREFIX + gaugeName;
105110
Metric metric = this.lookoutRegistryMetricReader.findOne(gaugeName);
106111
assertEquals(value, metric.getValue());
107112
}

client/lookout-sofa-boot-starter/src/test/java/com/alipay/lookout/starter/support/reader/LookoutRegistryMetricReaderTest.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package com.alipay.lookout.starter.support.reader;
1818

1919
import com.alipay.lookout.starter.base.AbstractTestBase;
20+
import com.alipay.lookout.starter.support.actuator.LookoutSpringBootMetricsImpl;
2021
import org.apache.commons.lang.StringUtils;
2122
import org.junit.Test;
2223
import org.springframework.beans.factory.annotation.Autowired;
@@ -60,7 +61,8 @@ public void testFindOne() throws Exception {
6061
ResponseEntity<String> response = testRestTemplate.getForEntity(restUrl, String.class);
6162
assertTrue(StringUtils.isNotBlank(response.getBody()));
6263
//
63-
Metric metric = this.lookoutRegistryMetricReader.findOne("response." + endpointId);
64+
Metric metric = this.lookoutRegistryMetricReader
65+
.findOne(LookoutSpringBootMetricsImpl.LOOKOUT_GAUGE_PREFIX + "response." + endpointId);
6466
assertTrue(metric != null);
6567
}
6668

0 commit comments

Comments
 (0)