This is an automated email from the ASF dual-hosted git repository.
vgalaxies pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-hugegraph.git
The following commit(s) were added to refs/heads/master by this push:
new 2294d2abc fix(hstore): JRaft Histogram Metrics Value NaN (#2631)
2294d2abc is described below
commit 2294d2abc2ef65e5b395cd8ab25bc6a12e38d4ae
Author: YangJiaqi <[email protected]>
AuthorDate: Wed Nov 6 14:55:33 2024 +0800
fix(hstore): JRaft Histogram Metrics Value NaN (#2631)
Co-authored-by: imbajin <[email protected]>
Co-authored-by: yangjiaqi <jiaqi.yang@veriti@xyz>
---
.../hugegraph/store/node/metrics/JRaftMetrics.java | 56 ++++++----------------
1 file changed, 14 insertions(+), 42 deletions(-)
diff --git
a/hugegraph-store/hg-store-node/src/main/java/org/apache/hugegraph/store/node/metrics/JRaftMetrics.java
b/hugegraph-store/hg-store-node/src/main/java/org/apache/hugegraph/store/node/metrics/JRaftMetrics.java
index 098372bee..d5ca11b3f 100644
---
a/hugegraph-store/hg-store-node/src/main/java/org/apache/hugegraph/store/node/metrics/JRaftMetrics.java
+++
b/hugegraph-store/hg-store-node/src/main/java/org/apache/hugegraph/store/node/metrics/JRaftMetrics.java
@@ -127,10 +127,6 @@ public class JRaftMetrics {
}
- private static HistogramWrapper toWrapper(com.codahale.metrics.Histogram
histogram) {
- return new HistogramWrapper(histogram);
- }
-
private static String refineMetrics(String name, List<Tag> tags) {
if (name == null || name.isEmpty()) {
return name;
@@ -172,35 +168,33 @@ public class JRaftMetrics {
String baseName = PREFIX + "." + name.toLowerCase();
- HistogramWrapper wrapper = toWrapper(histogram);
-
- Gauge.builder(baseName + ".median", wrapper, (d) ->
d.getSnapshot().getMedian())
+ Gauge.builder(baseName + ".median", histogram, h ->
h.getSnapshot().getMedian())
.tags(tags).register(registry);
- Gauge.builder(baseName + ".min", wrapper, (d) ->
d.getSnapshot().getMin())
+ Gauge.builder(baseName + ".min", histogram, h ->
h.getSnapshot().getMin())
.tags(tags).register(registry);
- Gauge.builder(baseName + ".max", wrapper, (d) ->
d.getSnapshot().getMax())
+ Gauge.builder(baseName + ".max", histogram, h ->
h.getSnapshot().getMax())
.tags(tags).register(registry);
- Gauge.builder(baseName + ".mean", wrapper, (d) ->
d.getSnapshot().getMean())
+ Gauge.builder(baseName + ".mean", histogram, h ->
h.getSnapshot().getMean())
.tags(tags).register(registry);
baseName = baseName + ".summary";
- Gauge.builder(baseName, wrapper, (d) -> d.getSnapshot().getMedian())
+ Gauge.builder(baseName, histogram, h -> h.getSnapshot().getMedian())
.tags(tags).tag(LABELS, LABEL_50).register(registry);
- Gauge.builder(baseName, wrapper, (d) ->
d.getSnapshot().get75thPercentile())
+ Gauge.builder(baseName, histogram, h ->
h.getSnapshot().get75thPercentile())
.tags(tags).tag(LABELS, LABEL_75).register(registry);
- Gauge.builder(baseName, wrapper, (d) ->
d.getSnapshot().get95thPercentile())
+ Gauge.builder(baseName, histogram, h ->
h.getSnapshot().get95thPercentile())
.tags(tags).tag(LABELS, LABEL_95).register(registry);
- Gauge.builder(baseName, wrapper, (d) ->
d.getSnapshot().get98thPercentile())
+ Gauge.builder(baseName, histogram, h ->
h.getSnapshot().get98thPercentile())
.tags(tags).tag(LABELS, LABEL_98).register(registry);
- Gauge.builder(baseName, wrapper, (d) ->
d.getSnapshot().get99thPercentile())
+ Gauge.builder(baseName, histogram, h ->
h.getSnapshot().get99thPercentile())
.tags(tags).tag(LABELS, LABEL_99).register(registry);
- Gauge.builder(baseName, wrapper, (d) ->
d.getSnapshot().get999thPercentile())
+ Gauge.builder(baseName, histogram, h ->
h.getSnapshot().get999thPercentile())
.tags(tags).tag(LABELS, LABEL_999).register(registry);
- Gauge.builder(baseName + ".sum", wrapper,
- (d) -> Arrays.stream(d.getSnapshot().getValues()).sum())
+ Gauge.builder(baseName + ".sum", histogram,
+ h -> Arrays.stream(h.getSnapshot().getValues()).sum())
.tags(tags).register(registry);
- Gauge.builder(baseName + ".count", wrapper, (d) ->
d.getSnapshot().size())
+ Gauge.builder(baseName + ".count", histogram, h ->
h.getSnapshot().size())
.tags(tags).register(registry);
}
@@ -214,7 +208,7 @@ public class JRaftMetrics {
String baseName = PREFIX + "." + name.toLowerCase();
- Gauge.builder(baseName + ".count", timer, t->t.getCount())
+ Gauge.builder(baseName + ".count", timer, t -> t.getCount())
.tags(tags).register(registry);
Gauge.builder(baseName + ".min", timer, t -> t.getSnapshot().getMin())
.tags(tags).register(registry);
@@ -309,26 +303,4 @@ public class JRaftMetrics {
}
}
-
- private static class HistogramWrapper {
-
- private final com.codahale.metrics.Histogram histogram;
-
- private Snapshot snapshot;
- private long ts = System.currentTimeMillis();
-
- HistogramWrapper(com.codahale.metrics.Histogram histogram) {
- this.histogram = histogram;
- this.snapshot = this.histogram.getSnapshot();
- }
-
- Snapshot getSnapshot() {
- if (System.currentTimeMillis() - this.ts > 30_000) {
- this.snapshot = this.histogram.getSnapshot();
- this.ts = System.currentTimeMillis();
- }
- return this.snapshot;
- }
- }
-
}