我正在尝试使用Push Gateway模拟Prometheus中的度量。当我在PostMan中传递这些值时,我可以在Push Gateway中看到度量的条目。但是,当我在Rest Assured上尝试同样的方法时,它不起作用。我得到的错误是RESPONSE:第1行中的文本格式解析错误:无效的度量名称。
有人知道吗?
public void sendRequestsToPushGateway() {
System.out.println("Send request to Push Gateway");
validatableResponse = given().contentType(ContentType.TEXT)
.body(""container_cpu_cfs_throttled_seconds_total"" + "{" + ""container_name" = "test", "
+ ""pod_name"="test-stable"," + ""exported_namespace"="demo"" + "} "
+ "100.0n")
.when()
.put("http://prometheus-pushgateway.eu-mesh-poc-aws.dev.io/metrics/job/cpusaturationtest/instance/3")
.then();
String RESPONSE = validatableResponse.extract().asString();
System.out.println("RESPONSE :" + RESPONSE);
}
给定代码,页面内容将为:
"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
您可以参考普罗米修斯的文本文件格式。
我得到了解决方案。我必须去掉多余的"从container_name、podname&导出名称空间
validatableResponse = given().contentType(ContentType.TEXT)
.body("container_cpu_cfs_throttled_seconds_total"
+ "{container_name = "test", pod_name ="test-stable",exported_namespace="demo"}"
+ "100.0n")
.when()
.put("http://prometheus-pushgateway.eu-mesh-poc-aws.dev.io/metrics/job/cpusaturationtest/instance/3")
.then();