summaryrefslogtreecommitdiffstats
path: root/container-core
diff options
context:
space:
mode:
authorOla Aunronning <olaa@yahooinc.com>2022-09-15 14:21:51 +0200
committerOla Aunronning <olaa@yahooinc.com>2022-09-15 14:21:51 +0200
commit1dbb9ee3f7aadc301a2851ae7459ceba2c749e65 (patch)
tree7242375627cb17890bed225a56331ca98ca2a426 /container-core
parent754926e273acdb87bc43449ffb11f06a40a65ed3 (diff)
Sanitize label names
Diffstat (limited to 'container-core')
-rw-r--r--container-core/src/main/java/com/yahoo/container/jdisc/state/PrometheusHelper.java12
-rw-r--r--container-core/src/test/java/com/yahoo/container/jdisc/state/MetricsPacketsHandlerTest.java6
2 files changed, 13 insertions, 5 deletions
diff --git a/container-core/src/main/java/com/yahoo/container/jdisc/state/PrometheusHelper.java b/container-core/src/main/java/com/yahoo/container/jdisc/state/PrometheusHelper.java
index adb5f389d54..ca4eca1595f 100644
--- a/container-core/src/main/java/com/yahoo/container/jdisc/state/PrometheusHelper.java
+++ b/container-core/src/main/java/com/yahoo/container/jdisc/state/PrometheusHelper.java
@@ -25,7 +25,11 @@ public class PrometheusHelper {
var dimensionBuilder = new StringBuilder();
for (var dimension : metricDimensions) {
- dimensionBuilder.append(dimension.getKey()).append("=\"").append(dimension.getValue()).append("\",");
+ dimensionBuilder
+ .append(sanitize(dimension.getKey()))
+ .append("=\"")
+ .append(dimension.getValue())
+ .append("\",");
}
dimensionBuilder.append("vespa_service=\"").append(application).append("\",");
var dimensions = dimensionBuilder.toString();
@@ -70,7 +74,11 @@ public class PrometheusHelper {
}
private static String getSanitizedMetricName(String metricName, String suffix) {
- return metricName.replaceAll("([-.])", "_") + "_" + suffix;
+ return sanitize(metricName) + "_" + suffix;
+ }
+
+ private static String sanitize(String name) {
+ return name.replaceAll("([-.])", "_");
}
}
diff --git a/container-core/src/test/java/com/yahoo/container/jdisc/state/MetricsPacketsHandlerTest.java b/container-core/src/test/java/com/yahoo/container/jdisc/state/MetricsPacketsHandlerTest.java
index 75344f10c07..434622852e9 100644
--- a/container-core/src/test/java/com/yahoo/container/jdisc/state/MetricsPacketsHandlerTest.java
+++ b/container-core/src/test/java/com/yahoo/container/jdisc/state/MetricsPacketsHandlerTest.java
@@ -162,7 +162,7 @@ public class MetricsPacketsHandlerTest extends StateHandlerTestBase {
@Test
public void prometheus_metrics() {
- var context = StateMetricContext.newInstance(Map.of("dim1", "value1"));
+ var context = StateMetricContext.newInstance(Map.of("dim-1", "value1"));
var snapshot = new MetricSnapshot();
snapshot.set(context, "gauge.metric", 0.2);
snapshot.add(context, "counter.metric", 5);
@@ -171,10 +171,10 @@ public class MetricsPacketsHandlerTest extends StateHandlerTestBase {
var expectedResponse = """
# HELP gauge_metric_last\s
# TYPE gauge_metric_last untyped
- gauge_metric_last{dim1="value1",vespa_service="state-handler-test-base",} 0.2 0
+ gauge_metric_last{dim_1="value1",vespa_service="state-handler-test-base",} 0.2 0
# HELP counter_metric_count\s
# TYPE counter_metric_count untyped
- counter_metric_count{dim1="value1",vespa_service="state-handler-test-base",} 5 0
+ counter_metric_count{dim_1="value1",vespa_service="state-handler-test-base",} 5 0
""";
assertEquals(expectedResponse, response);
}