Ошибка синтаксического анализа текстового формата в строке 1: неверное имя метрики при тестировании метрик Prometheus с использованием будьте уверены
Я пытаюсь имитировать метрики в Prometheus с помощью Push Gateway. Когда я передаю эти значения в PostMan, я могу видеть ввод показателей в Push Gateway. Но когда я пытаюсь сделать то же самое с Rest Assured, это не работает. Я получаю сообщение об ошибке RESPONSE: ошибка анализа текстового формата в строке 1: недопустимое имя метрики.
У кого-нибудь есть идеи?
public void sendRequestsToPushGateway() {System.out.println("Отправить запрос на шлюз push");
validatableResponse = given().contentType(ContentType.TEXT)
.body("\"container_cpu_cfs_throttled_seconds_total\"" + "{" + "\"container_name\" = \"test\", "
+ "\"pod_name\"=\"test-stable\"," + "\"exported_namespace\"=\"demo\"" + "} "
+ "100.0\n")
.when()
.put("http://prometheus-pushgateway-stem.eu-mesh-poc-eu-west-1.aws.dev.ins.lnrs.io/metrics/job/cpusaturationtest/instance/3")
.then();
String RESPONSE = validatableResponse.extract().asString();
System.out.println("RESPONSE :" + RESPONSE);
}
2 ответа
Учитывая код, содержимое страницы будет:
"container_cpu_cfs_throttled_seconds_total"{"container_name" = "test", "pod_name"="test-stable","exported_namespace"="demo"} 100.0
Слишком много "
и пробелы. Содержание должно быть:
container_cpu_cfs_throttled_seconds_total{container_name="test",pod_name="test-stable",exported_namespace="demo"} 100.0
Вы можете обратиться к формату текстового файла Prometheus.
Я нашел решение. Мне нужно удалить лишние "" из таких тегов, как имя_контейнера, имя_пода и экспортированное_пространство имен
validatableResponse = given().contentType(ContentType.TEXT).body("container_cpu_cfs_throttled_seconds_total" + "{container_name = \" test \", pod_name =\"test-stable\",exported_namespace=\" demo \"}" + "100.0\ n ").when ().put ("http://prometheus-pushgateway-stem.eu-mesh-poc-eu-west-1.aws.dev.ins.lnrs.io/metrics/job/cpusaturationalert/instance/2").then ();