1

我正在尝试使用 Push Gateway 模仿 Prometheus 中的指标。当我在 PostMan 中传递这些值时,我可以在 Push Gateway 中看到指标条目。但是,当我尝试使用 Rest Assured 时,它不起作用。我收到错误,因为 RESPONSE :text format parsing error in line 1: invalid metric name。

有人有什么想法吗?

public void sendRequestsToPushGateway() { System.out.println("发送请求到推送网关");

    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);
}
4

2 回答 2

4

给定代码,页面内容将是:

"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文本文件格式

于 2020-03-16T20:01:50.770 回答
0

我得到了解决方案。我必须从 container_name、pod_name 和exported_namespace 等标签中删除额外的“”

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();

于 2020-03-17T22:07:12.377 回答