Из официальной документации PushGateway :
- Для использования ключа группировки
job="directory_cleaner"
, path="/var/tmp"
следующий путь не будет работать:
/metrics/job/directory_cleaner/path//var/tmp
Вместо этого используйте URL-безопасную кодировку base64 для значения метки и пометьте его, добавив к имени метки @base64
:
/metrics/job/directory_cleaner/path@base64/L3Zhci90bXA
Вот пример создания url
из нескольких пар ключ-значение, хранящихся в Map<String, String> groupingKey
:
String url = gatewayBaseURL;
if (job.contains("/")) {
url += "job@base64/" + base64url(job);
} else {
url += "job/" + URLEncoder.encode(job, "UTF-8");
}
if (groupingKey != null) {
for (Map.Entry<String, String> entry: groupingKey.entrySet()) {
if (entry.getValue().contains("/")) {
url += "/" + entry.getKey() + "@base64/" + base64url(entry.getValue());
} else {
url += "/" + entry.getKey() + "/" + URLEncoder.encode(entry.getValue(), "UTF-8");
}
}
}
HttpURLConnection connection = connectionFactory.create(url);
Github link