gpt4 book ai didi

java - 从执行器指标中排除路径参数

转载 作者:太空宇宙 更新时间:2023-11-04 10:42:52 25 4
gpt4 key购买 nike

我有一个使用执行器指标的 Spring boot 应用程序,但遇到以下问题:

我有一个像这样的端点:

GET /users/{userId}  

因此,每次调用此端点时,我都会使用不同的 ID 来获取特定用户,因为您可以认为我们可以拥有数十万用户。它工作正常,但我注意到在调用我的指标端点时:

GET /metrics

我得到这样的东西:

counter.status.200.metrics: 1,
counter.status.200.api.users.4: 2,
counter.status.200.api.users.2: 3,
counter.status.200.api.users.3: 2,

所以这让我认为我将为具有不同路径参数的每个调用获得一个计数器,所以我的问题是如何为端点 /users/{anyId} 提供一个计数器,而不是为不包括参数的每个单个组合提供一个计数器?

--- 编辑 ---

我使用的是Spring boot + Jersey(我没有使用Spring MVC),以下是我的 Controller 代码:

@Component
@Path("/users")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public class UserResource {

@GET
public Response getUsers() {
return Response.ok("It works !").build();
}

@GET
@Path("/{userId}")
public Response getUserById(@PathParam("userId") String id) {
return Response.ok("It works !").build();
}

}

以下是 Jersey 配置:

@Component
@ApplicationPath("/api")
public class JerseyConfig extends ResourceConfig {
public JerseyConfig() {
register(UserResource.class);
register(PingResource.class);
}
}

最佳答案

这是一个 known issue使用 Jersey 时与 Spring Boot 1.x 一起使用。有一个解决方法 described in the issue ,或者您可以通过将以下内容添加到 application.properties 来禁用指标过滤器:

endpoints.metrics.filter.enabled=false

关于java - 从执行器指标中排除路径参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48750540/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com