From b28e5ee0dd8bd542c63b9a763aa43bb18e00719a Mon Sep 17 00:00:00 2001 From: Ola Aunronning Date: Mon, 6 Feb 2023 11:06:41 +0100 Subject: Enum dimension set --- .../application/PublicDimensionsProcessor.java | 12 +-- .../metric/dimensions/BlocklistDimensions.java | 97 ++++++++++------------ 2 files changed, 47 insertions(+), 62 deletions(-) (limited to 'metrics-proxy') diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/application/PublicDimensionsProcessor.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/application/PublicDimensionsProcessor.java index 639f642778e..1ade79521f2 100644 --- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/application/PublicDimensionsProcessor.java +++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/application/PublicDimensionsProcessor.java @@ -19,7 +19,7 @@ import java.util.stream.Collectors; */ public class PublicDimensionsProcessor implements MetricsProcessor { - private final Set blocklistDimensions = getBlocklistDimensions(); + private final Set blocklistDimensions = BlocklistDimensions.getAll(); @Override public void process(MetricsPacket.Builder builder) { @@ -28,14 +28,4 @@ public class PublicDimensionsProcessor implements MetricsProcessor { builder.retainDimensions(dimensionsToRetain); } - static Set getBlocklistDimensions() { - return toDimensionIds(BlocklistDimensions.blocklistDimensions); - } - - static Set toDimensionIds(Collection dimensionNames) { - return dimensionNames.stream() - .map(DimensionId::toDimensionId) - .collect(Collectors.toCollection(LinkedHashSet::new)); - - } } diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/dimensions/BlocklistDimensions.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/dimensions/BlocklistDimensions.java index 014bed8d54a..964a7fbf7c8 100644 --- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/dimensions/BlocklistDimensions.java +++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/dimensions/BlocklistDimensions.java @@ -1,73 +1,68 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package ai.vespa.metricsproxy.metric.dimensions; +import ai.vespa.metricsproxy.metric.model.DimensionId; + +import java.util.EnumSet; +import java.util.LinkedHashSet; import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; /** * @author olaa */ -public class BlocklistDimensions { - - private BlocklistDimensions() {} +public enum BlocklistDimensions { /** * Deployment related metrics - most of which are redundant * E.g. app/applicationName/tenantName/instanceName is already included in applicationId */ - public static final String APP = "app"; - public static final String APPLICATION_NAME = "applicationName"; - public static final String CLUSTER_NAME = "clustername"; - public static final String CLUSTER_ID = "clusterid"; - public static final String CLUSTER_TYPE = "clustertype"; - public static final String DEPLOYMENT_CLUSTER = "deploymentCluster"; - public static final String GROUP_ID = "groupId"; - public static final String INSTANCE = "instance"; - public static final String INSTANCE_NAME = "instanceName"; - public static final String TENANT_NAME = "tenantName"; + APP("app"), + APPLICATION_NAME("applicationName"), + CLUSTER_NAME("clustername"), + CLUSTER_ID("clusterid"), + CLUSTER_TYPE("clustertype"), + DEPLOYMENT_CLUSTER("deploymentCluster"), + GROUP_ID("groupId"), + INSTANCE("instance"), + INSTANCE_NAME("instanceName"), + TENANT_NAME("tenantName"), /** * State related dimensions - will always be the same value for a given snapshot */ - public static final String METRIC_TYPE = "metrictype"; - public static final String ORCHESTRATOR_STATE = "orchestratorState"; - public static final String ROLE = "role"; - public static final String STATE = "state"; - public static final String SYSTEM = "system"; - public static final String VESPA_VERSION = "vespaVersion"; + METRIC_TYPE("metrictype"), + ORCHESTRATOR_STATE("orchestratorState"), + ROLE("role"), + STATE("state"), + SYSTEM("system"), + VESPA_VERSION("vespaVersion"), /** Metric specific dimensions **/ - public static final String ARCHITECTURE = "arch"; - public static final String AUTHZ_REQUIRED = "authz-required"; - public static final String HOME = "home"; - public static final String PORT = "port"; - public static final String SCHEME = "scheme"; - public static final String DRYRUN = "dryrun"; - public static final String VERSION = "version"; + ARCHITECTURE("arch"), + AUTHZ_REQUIRED("authz-equired"), + HOME("home"), + PORT("port"), + SCHEME("scheme"), + DRYRUN("dryrun"), + VERSION("version"); + + private final DimensionId dimensionId; + + BlocklistDimensions(String dimensionId) { + this.dimensionId = DimensionId.toDimensionId(dimensionId); + } + + public DimensionId getDimensionId() { + return dimensionId; + } - public static final List blocklistDimensions = List.of( - APP, - APPLICATION_NAME, - CLUSTER_NAME, - CLUSTER_ID, - CLUSTER_TYPE, - DEPLOYMENT_CLUSTER, - GROUP_ID, - INSTANCE, - INSTANCE_NAME, - TENANT_NAME, - METRIC_TYPE, - ORCHESTRATOR_STATE, - ROLE, - STATE, - SYSTEM, - VESPA_VERSION, - ARCHITECTURE, - AUTHZ_REQUIRED, - HOME, - PORT, - SCHEME, - DRYRUN, - VERSION - ); + public static Set getAll() { + return EnumSet.allOf(BlocklistDimensions.class) + .stream() + .map(BlocklistDimensions::getDimensionId) + .collect(Collectors.toSet()); + } } -- cgit v1.2.3