Github user zentol commented on a diff in the pull request:
https://github.com/apache/flink/pull/4586#discussion_r144805511
--- Diff:
flink-metrics/flink-metrics-prometheus/src/main/java/org/apache/flink/metrics/prometheus/PrometheusReporter.java
---
@@ -114,39 +120,78 @@ public void notifyOfAddedMetric(final Metric metric,
final String metricName, fi
dimensionValues.add(CHARACTER_FILTER.filterCharacters(dimension.getValue()));
}
- final String validMetricName = scope + SCOPE_SEPARATOR +
CHARACTER_FILTER.filterCharacters(metricName);
- final String metricIdentifier =
group.getMetricIdentifier(metricName);
+ final String scopedMetricName = getScopedName(metricName,
group);
+ final String helpString = metricName + " (scope: " +
getLogicalScope(group) + ")";
+
final Collector collector;
- if (metric instanceof Gauge) {
- collector = createGauge((Gauge) metric,
validMetricName, metricIdentifier, dimensionKeys, dimensionValues);
- } else if (metric instanceof Counter) {
- collector = createGauge((Counter) metric,
validMetricName, metricIdentifier, dimensionKeys, dimensionValues);
- } else if (metric instanceof Meter) {
- collector = createGauge((Meter) metric,
validMetricName, metricIdentifier, dimensionKeys, dimensionValues);
- } else if (metric instanceof Histogram) {
- collector = createSummary((Histogram) metric,
validMetricName, metricIdentifier, dimensionKeys, dimensionValues);
+ Integer count = 0;
+
+ if
(!collectorsWithCountByMetricName.containsKey(scopedMetricName)) {
+ if (metric instanceof Gauge) {
+ collector = newGauge(scopedMetricName,
helpString, dimensionKeys, dimensionValues, gaugeFrom((Gauge) metric));
--- End diff --
We can simplify this block a little bit by not registering the metric right
away.
Instead of
```
if(!collectorExists) {
//create collector and add metric
} else {
//get collector and add metric
}
```
do
```
if(!collectorExists) {
//create collector
} else {
//get collector
}
add metric
```
---