diff --git a/concurrency-limits-core/build.gradle b/concurrency-limits-core/build.gradle index c3863819..11bf0bbf 100644 --- a/concurrency-limits-core/build.gradle +++ b/concurrency-limits-core/build.gradle @@ -5,5 +5,7 @@ plugins { sourceCompatibility = JavaVersion.VERSION_1_8 dependencies { + compile "org.slf4j:slf4j-api:1.7.+" + testCompile 'junit:junit-dep:4.10' } diff --git a/concurrency-limits-core/src/main/java/com/netflix/concurrency/limits/MetricRegistry.java b/concurrency-limits-core/src/main/java/com/netflix/concurrency/limits/MetricRegistry.java index 35b82259..e6b232e1 100644 --- a/concurrency-limits-core/src/main/java/com/netflix/concurrency/limits/MetricRegistry.java +++ b/concurrency-limits-core/src/main/java/com/netflix/concurrency/limits/MetricRegistry.java @@ -26,12 +26,20 @@ interface SampleListener { SampleListener registerDistribution(String id, String... tagNameValuePairs); /** - * Register a guage using the provided supplier. The supplier will be polled whenever the guage + * Register a gauge using the provided supplier. The supplier will be polled whenever the guage * value is flushed by the registry. * * @param id * @param tagNameValuePairs Pairs of tag name and tag value. Number of parameters must be a multiple of 2. * @param supplier */ - void registerGuage(String id, Supplier supplier, String... tagNameValuePairs); + void registerGauge(String id, Supplier supplier, String... tagNameValuePairs); + + /** + * @deprecated Call MetricRegistry#registerGauge + */ + @Deprecated + default void registerGuage(String id, Supplier supplier, String... tagNameValuePairs) { + registerGauge(id, supplier, tagNameValuePairs); + } } diff --git a/concurrency-limits-core/src/main/java/com/netflix/concurrency/limits/internal/EmptyMetricRegistry.java b/concurrency-limits-core/src/main/java/com/netflix/concurrency/limits/internal/EmptyMetricRegistry.java index a2821bbf..84be8d59 100644 --- a/concurrency-limits-core/src/main/java/com/netflix/concurrency/limits/internal/EmptyMetricRegistry.java +++ b/concurrency-limits-core/src/main/java/com/netflix/concurrency/limits/internal/EmptyMetricRegistry.java @@ -15,6 +15,6 @@ public SampleListener registerDistribution(String id, String... tagNameValuePair } @Override - public void registerGuage(String id, Supplier supplier, String... tagNameValuePairs) { + public void registerGauge(String id, Supplier supplier, String... tagNameValuePairs) { } } diff --git a/concurrency-limits-core/src/main/java/com/netflix/concurrency/limits/limit/VegasLimit.java b/concurrency-limits-core/src/main/java/com/netflix/concurrency/limits/limit/VegasLimit.java index 2a7fd9d6..39e21dba 100644 --- a/concurrency-limits-core/src/main/java/com/netflix/concurrency/limits/limit/VegasLimit.java +++ b/concurrency-limits-core/src/main/java/com/netflix/concurrency/limits/limit/VegasLimit.java @@ -74,7 +74,7 @@ public static VegasLimit newDefault() { */ private volatile int estimatedLimit; - private long rtt_noload; + private volatile long rtt_noload; private boolean didDrop = false; diff --git a/concurrency-limits-core/src/main/java/com/netflix/concurrency/limits/strategy/LookupPartitionStrategy.java b/concurrency-limits-core/src/main/java/com/netflix/concurrency/limits/strategy/LookupPartitionStrategy.java index a85a7033..880e88b7 100644 --- a/concurrency-limits-core/src/main/java/com/netflix/concurrency/limits/strategy/LookupPartitionStrategy.java +++ b/concurrency-limits-core/src/main/java/com/netflix/concurrency/limits/strategy/LookupPartitionStrategy.java @@ -72,7 +72,7 @@ private LookupPartitionStrategy(Builder builder) { this.lookup = builder.lookup; - builder.registry.registerGuage(MetricIds.LIMIT_GUAGE_NAME, this::getLimit); + builder.registry.registerGauge(MetricIds.LIMIT_GUAGE_NAME, this::getLimit); } @Override @@ -118,7 +118,7 @@ public Partition(String name, double pct) { public void createMetrics(MetricRegistry registry) { this.busyDistribution = registry.registerDistribution(MetricIds.INFLIGHT_GUAGE_NAME, PARTITION_TAG_NAME, name); - registry.registerGuage(MetricIds.PARTITION_LIMIT_GUAGE_NAME, this::getLimit, PARTITION_TAG_NAME, name); + registry.registerGauge(MetricIds.PARTITION_LIMIT_GUAGE_NAME, this::getLimit, PARTITION_TAG_NAME, name); } public void updateLimit(int totalLimit) { diff --git a/concurrency-limits-core/src/main/java/com/netflix/concurrency/limits/strategy/PredicatePartitionStrategy.java b/concurrency-limits-core/src/main/java/com/netflix/concurrency/limits/strategy/PredicatePartitionStrategy.java index 82fb2128..19641b1c 100644 --- a/concurrency-limits-core/src/main/java/com/netflix/concurrency/limits/strategy/PredicatePartitionStrategy.java +++ b/concurrency-limits-core/src/main/java/com/netflix/concurrency/limits/strategy/PredicatePartitionStrategy.java @@ -65,7 +65,7 @@ private PredicatePartitionStrategy(Builder builder) { this.partitions = new ArrayList<>(builder.partitions); this.partitions.forEach(partition -> partition.createMetrics(builder.registry)); - builder.registry.registerGuage(MetricIds.LIMIT_GUAGE_NAME, this::getLimit); + builder.registry.registerGauge(MetricIds.LIMIT_GUAGE_NAME, this::getLimit); } @Override @@ -116,7 +116,7 @@ public Partition(String name, double pct, Predicate predicate) { public void createMetrics(MetricRegistry registry) { this.inflightDistribution = registry.registerDistribution(MetricIds.INFLIGHT_GUAGE_NAME, PARTITION_TAG_NAME, name); - registry.registerGuage(MetricIds.PARTITION_LIMIT_GUAGE_NAME, this::getLimit, PARTITION_TAG_NAME, name); + registry.registerGauge(MetricIds.PARTITION_LIMIT_GUAGE_NAME, this::getLimit, PARTITION_TAG_NAME, name); } public void updateLimit(int totalLimit) { diff --git a/concurrency-limits-core/src/main/java/com/netflix/concurrency/limits/strategy/SimpleStrategy.java b/concurrency-limits-core/src/main/java/com/netflix/concurrency/limits/strategy/SimpleStrategy.java index 90972ff7..3096ac52 100644 --- a/concurrency-limits-core/src/main/java/com/netflix/concurrency/limits/strategy/SimpleStrategy.java +++ b/concurrency-limits-core/src/main/java/com/netflix/concurrency/limits/strategy/SimpleStrategy.java @@ -25,7 +25,7 @@ public SimpleStrategy() { public SimpleStrategy(MetricRegistry registry) { this.inflightMetric = registry.registerDistribution(MetricIds.INFLIGHT_GUAGE_NAME); - registry.registerGuage(MetricIds.LIMIT_GUAGE_NAME, this::getLimit); + registry.registerGauge(MetricIds.LIMIT_GUAGE_NAME, this::getLimit); } @Override diff --git a/concurrency-limits-grpc/build.gradle b/concurrency-limits-grpc/build.gradle index d9913309..89152bb6 100644 --- a/concurrency-limits-grpc/build.gradle +++ b/concurrency-limits-grpc/build.gradle @@ -7,11 +7,11 @@ sourceCompatibility = JavaVersion.VERSION_1_8 dependencies { compile project(":concurrency-limits-core") - compile "io.grpc:grpc-core:1.3.1" + compile "io.grpc:grpc-core:1.9.0" testCompile project(":concurrency-limits-spectator") - testCompile "io.grpc:grpc-netty:1.3.1" - testCompile "io.grpc:grpc-stub:1.3.1" + testCompile "io.grpc:grpc-netty:1.9.0" + testCompile "io.grpc:grpc-stub:1.9.0" testCompile "junit:junit-dep:4.10" } diff --git a/concurrency-limits-spectator/src/main/java/com/netflix/concurrency/limits/spectator/SpectatorMetricRegistry.java b/concurrency-limits-spectator/src/main/java/com/netflix/concurrency/limits/spectator/SpectatorMetricRegistry.java index cc0516dc..56ad4b25 100644 --- a/concurrency-limits-spectator/src/main/java/com/netflix/concurrency/limits/spectator/SpectatorMetricRegistry.java +++ b/concurrency-limits-spectator/src/main/java/com/netflix/concurrency/limits/spectator/SpectatorMetricRegistry.java @@ -8,6 +8,9 @@ import java.util.function.Supplier; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + public final class SpectatorMetricRegistry implements MetricRegistry { private final Registry registry; private final Id baseId; @@ -24,10 +27,10 @@ public SampleListener registerDistribution(String id, String... tagNameValuePair } @Override - public void registerGuage(String id, Supplier supplier, String... tagNameValuePairs) { + public void registerGauge(String id, Supplier supplier, String... tagNameValuePairs) { PolledMeter.using(registry) .withId(suffixBaseId(id).withTags(tagNameValuePairs)) - .monitorValue(this, o -> supplier.get().doubleValue()); + .monitorValue(supplier, ignore -> supplier.get().doubleValue()); } private Id suffixBaseId(String suffix) { diff --git a/concurrency-limits-spectator/src/test/java/com/netflix/concurrency/limits/spectator/SpectatorMetricRegistryTest.java b/concurrency-limits-spectator/src/test/java/com/netflix/concurrency/limits/spectator/SpectatorMetricRegistryTest.java index 343c9260..3495c5fc 100644 --- a/concurrency-limits-spectator/src/test/java/com/netflix/concurrency/limits/spectator/SpectatorMetricRegistryTest.java +++ b/concurrency-limits-spectator/src/test/java/com/netflix/concurrency/limits/spectator/SpectatorMetricRegistryTest.java @@ -12,7 +12,7 @@ public void testGuage() { DefaultRegistry registry = new DefaultRegistry(); SpectatorMetricRegistry metricRegistry = new SpectatorMetricRegistry(registry, registry.createId("foo")); - metricRegistry.registerGuage("bar", () -> 10); + metricRegistry.registerGauge("bar", () -> 10); PolledMeter.update(registry);