java Sping Boot Actuator正在使用URL的动态参数记录OPTIONS请求

e5nqia27  于 2023-05-27  发布在  Java
关注(0)|答案(1)|浏览(107)

我们正在使用Sping Boot 1.5.9,我们确实为Prometheus提供了指标。
当我们收到OPTIONS请求时,path参数不会被替换。对于GET请求,替换该参数。控制器看起来像这样:

@Slf4j
@RequestMapping(method = { RequestMethod.GET }, path = "/claims/{token}")
@RestController
public class ClaimDetailController {

    @GetMapping(value = "", produces = MediaType.APPLICATION_JSON_UTF8_VALUE, params = "token")
    public ResponseEntity getDetail(@PathVariable(value = "token") final String token) {
      ...
    }
}

当使用端点“/prometheus”调用执行器时,我们得到:

# HELP gauge_response_claims_clgrRFhIRlNDV3pJTXhXRG40dWlPWURrVTJnMU1nPT0 gauge_response_claims_clgrRFhIRlNDV3pJTXhXRG40dWlPWURrVTJnMU1nPT0
# TYPE gauge_response_claims_clgrRFhIRlNDV3pJTXhXRG40dWlPWURrVTJnMU1nPT0 gauge
gauge_response_claims_clgrRFhIRlNDV3pJTXhXRG40dWlPWURrVTJnMU1nPT0 5.0
# HELP gauge_response_claims_token gauge_response_claims_token
# TYPE gauge_response_claims_token gauge
gauge_response_claims_token 1502.0

第一个是OPTIONS请求。第二个是GET请求。
那么为什么OPTIONS请求中的令牌没有被替换呢?这能实现吗?如果没有-是否可以从指标中删除OPTIONS请求?
这是/metrics的输出:
counter.status.200.claims.clgrRFhIRlNDV3pJTXhXRG40dWlPWURrVTJnMU1nPT0 2 counter.status.200.cloudfoundryapplication 4
以下是我们使用的一些依赖项:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.9.RELEASE</version>
</parent>
    
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-cloudfoundry-web</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-hateoas</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-spring-legacy</artifactId>
    <version>1.3.16</version>
</dependency>

<dependency>
    <groupId>io.prometheus</groupId>
    <artifactId>simpleclient_spring_boot</artifactId>
    <version>0.3.0</version>
</dependency>
<dependency>
    <groupId>io.prometheus</groupId>
    <artifactId>simpleclient_servlet</artifactId>
    <version>0.3.0</version>
</dependency>
<dependency>
    <groupId>io.prometheus</groupId>
    <artifactId>simpleclient_hotspot</artifactId>
    <version>0.3.0</version>
</dependency>
h7appiyu

h7appiyu1#

更新Sping Boot 到1.5.22.RELEASE
OPTIONS请求的输出如下所示:

# HELP counter_status_200_unmapped counter_status_200_unmapped
# TYPE counter_status_200_unmapped gauge
counter_status_200_unmapped 5.0

它并不完美,但所有的OPTIONS请求都被收集到一个度量中,而不是每个请求都在一个单独的度量中。

相关问题