Skip to content

Commit 26babf6

Browse files
committed
PLT-1173: refactor
1 parent 120ace6 commit 26babf6

File tree

2 files changed

+12
-14
lines changed

2 files changed

+12
-14
lines changed

common/src/main/java/org/apache/atlas/service/metrics/MetricUtils.java

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,15 @@
66
import io.micrometer.prometheus.PrometheusConfig;
77
import io.micrometer.prometheus.PrometheusMeterRegistry;
88
import org.apache.atlas.ApplicationProperties;
9+
import org.apache.commons.lang.StringUtils;
910
import org.slf4j.Logger;
1011
import org.slf4j.LoggerFactory;
1112
import org.springframework.stereotype.Component;
1213

13-
import java.util.Arrays;
14-
import java.util.List;
15-
import java.util.Objects;
16-
import java.util.Optional;
14+
import java.util.*;
15+
import java.util.stream.Collectors;
16+
17+
import static org.apache.commons.lang.StringUtils.EMPTY;
1718

1819
@Component
1920
public class MetricUtils {
@@ -29,8 +30,9 @@ public class MetricUtils {
2930
private static final String REGEX_URI_PLACEHOLDER = "\\[\\^/\\]\\+";
3031
private static final String HTTP_SERVER_REQUESTS = "http.server.requests";
3132
private static final String ATLAS_METRICS_URI_PATTERNS = "atlas.metrics.uri_patterns";
33+
private static final double[] PERCENTILES = {0.5, 0.90, 0.99};
3234

33-
private static List<String> METRIC_URI_PATTERNS;
35+
private static Map<String, String> METRIC_URI_PATTERNS_MAP;
3436
private static final PrometheusMeterRegistry METER_REGISTRY;
3537

3638
static {
@@ -41,7 +43,8 @@ public class MetricUtils {
4143

4244
public MetricUtils() {
4345
try {
44-
METRIC_URI_PATTERNS = Arrays.asList(ApplicationProperties.get().getStringArray(ATLAS_METRICS_URI_PATTERNS));
46+
METRIC_URI_PATTERNS_MAP = Arrays.stream(ApplicationProperties.get().getStringArray(ATLAS_METRICS_URI_PATTERNS))
47+
.distinct().collect(Collectors.toMap(uri->uri, uri->uri.replaceAll(REGEX_URI_PLACEHOLDER, "*")));
4548
} catch (Exception e) {
4649
LOG.error("Failed to load 'atlas.metrics.uri_patterns from properties");
4750
}
@@ -64,7 +67,7 @@ private Timer getTimer(String timerName, String method, int code, String rawPath
6467
tags = tags.and(additionalTags);
6568
}
6669
return Timer.builder(timerName)
67-
.publishPercentiles(0.5,0.90,0.99)
70+
.publishPercentiles(PERCENTILES)
6871
.tags(tags)
6972
.register(getMeterRegistry());
7073
}
@@ -83,10 +86,10 @@ private Optional<String> matchCanonicalPattern(String uri) {
8386
uri = uri.substring(0, uri.lastIndexOf("/"));
8487
}
8588
String updatedUrl = uri;
86-
Optional<String> patternOp = METRIC_URI_PATTERNS.stream()
89+
Optional<String> patternOp = METRIC_URI_PATTERNS_MAP.keySet().stream()
8790
.filter(pattern -> updatedUrl.matches(pattern + "$"))
8891
.findFirst();
89-
return patternOp.map(s -> s.replaceAll(REGEX_URI_PLACEHOLDER, "*"));
92+
return Optional.ofNullable(METRIC_URI_PATTERNS_MAP.get(patternOp.orElse(EMPTY)));
9093
}
9194

9295
public static PrometheusMeterRegistry getMeterRegistry() {

webapp/src/main/java/org/apache/atlas/web/service/EmbeddedServer.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,10 @@
1818

1919
package org.apache.atlas.web.service;
2020

21-
import io.micrometer.core.instrument.Metrics;
22-
import io.micrometer.core.instrument.Tags;
2321
import io.micrometer.core.instrument.binder.jetty.JettyConnectionMetrics;
2422
import io.micrometer.core.instrument.binder.jetty.JettyServerThreadPoolMetrics;
25-
import io.micrometer.prometheus.PrometheusConfig;
26-
import io.micrometer.prometheus.PrometheusMeterRegistry;
2723
import org.apache.atlas.AtlasConfiguration;
2824
import org.apache.atlas.AtlasErrorCode;
29-
import org.apache.atlas.CommonConfiguration;
3025
import org.apache.atlas.util.BeanUtil;
3126
import org.apache.atlas.exception.AtlasBaseException;
3227
import org.apache.atlas.model.audit.AtlasAuditEntry;

0 commit comments

Comments
 (0)