Skip to content
Snippets Groups Projects
Commit a26d3503 authored by Alex Ellis (VMware)'s avatar Alex Ellis (VMware) Committed by Alex Ellis
Browse files

Allow unicode in service paths


- according to discussion in #1013 all unicode characters are
valid label values - this commit allows the original path to be
retained.

Signed-off-by: default avatarAlex Ellis (VMware) <alexellis2@gmail.com>
parent 67c9a716
No related branches found
No related tags found
No related merge requests found
......@@ -3,7 +3,6 @@ package handlers
import (
"fmt"
"log"
"regexp"
"strconv"
"strings"
"time"
......@@ -30,16 +29,14 @@ func (psn PrometheusServiceNotifier) Notify(method string, URL string, originalU
psn.ServiceMetrics.Histogram.WithLabelValues(method, path, code).Observe(duration.Seconds())
}
var invalidChars = regexp.MustCompile(`[^a-zA-Z0-9]+`)
// converts a URL path to a string compatible with Prometheus label value.
func urlToLabel(path string) string {
result := invalidChars.ReplaceAllString(path, "_")
result = strings.ToLower(strings.Trim(result, "_"))
if result == "" {
result = "root"
if len(path) > 0 {
path = strings.TrimRight(path, "/")
}
if path == "" {
path = "/"
}
return result
return path
}
// PrometheusFunctionNotifier records metrics to Prometheus
......
package handlers
import "testing"
func Test_urlToLabel_normalizeTrailing(t *testing.T) {
have := "/system/functions/"
want := "/system/functions"
got := urlToLabel(have)
if got != want {
t.Errorf("want %s, got %s", want, got)
}
}
func Test_urlToLabel_retainRoot(t *testing.T) {
have := "/"
want := have
got := urlToLabel(have)
if got != want {
t.Errorf("want %s, got %s", want, got)
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment