|
2 | 2 |
|
3 | 3 | import com.netflix.concurrency.limits.MetricRegistry; |
4 | 4 | import com.netflix.spectator.api.DistributionSummary; |
| 5 | +import com.netflix.spectator.api.Id; |
5 | 6 | import com.netflix.spectator.api.Registry; |
6 | 7 | import com.netflix.spectator.api.patterns.PolledMeter; |
7 | 8 |
|
8 | 9 | import java.util.function.Supplier; |
9 | 10 |
|
10 | 11 | public final class SpectatorMetricRegistry implements MetricRegistry { |
11 | 12 | private final Registry registry; |
12 | | - private final String baseId; |
| 13 | + private final Id baseId; |
13 | 14 |
|
14 | | - public SpectatorMetricRegistry(String baseId, Registry registry) { |
| 15 | + public SpectatorMetricRegistry(Registry registry, Id baseId) { |
15 | 16 | this.registry = registry; |
16 | 17 | this.baseId = baseId; |
17 | 18 | } |
18 | 19 |
|
19 | 20 | public void registerGuage(String id, Supplier<Number> supplier) { |
20 | 21 | PolledMeter.using(registry) |
21 | | - .withName(this.baseId + "." + id) |
| 22 | + .withId(suffixBaseId(id)) |
22 | 23 | .monitorValue(this, o -> supplier.get().doubleValue()); |
23 | 24 | } |
24 | 25 |
|
25 | 26 | @Override |
26 | 27 | public SampleListener registerDistribution(String id, String... tagNameValuePairs) { |
27 | | - DistributionSummary summary = registry.distributionSummary(this.baseId + "." + id, tagNameValuePairs); |
| 28 | + DistributionSummary summary = registry.distributionSummary(suffixBaseId(id).withTags(tagNameValuePairs)); |
28 | 29 | return value -> summary.record(value.longValue()); |
29 | 30 | } |
30 | 31 |
|
31 | 32 | @Override |
32 | 33 | public void registerGuage(String id, Supplier<Number> supplier, String... tagNameValuePairs) { |
33 | 34 | PolledMeter.using(registry) |
34 | | - .withName(this.baseId + "." + id) |
35 | | - .withTags(tagNameValuePairs) |
| 35 | + .withId(suffixBaseId(id).withTags(tagNameValuePairs)) |
36 | 36 | .monitorValue(this, o -> supplier.get().doubleValue()); |
37 | 37 | } |
| 38 | + |
| 39 | + private Id suffixBaseId(String suffix) { |
| 40 | + return registry.createId(this.baseId.name() + "." + suffix).withTags(this.baseId.tags()); |
| 41 | + } |
| 42 | + |
38 | 43 | } |
0 commit comments