【发布时间】:2025-07-13 18:10:01
【问题描述】:
我有一个使用执行器指标的 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),以下是我的控制器代码:
@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();
}
}
以下是泽西配置:
@Component
@ApplicationPath("/api")
public class JerseyConfig extends ResourceConfig {
public JerseyConfig() {
register(UserResource.class);
register(PingResource.class);
}
}
【问题讨论】:
-
没有。它只是像这样返回
counter.status.200.api.users : 2。您能否显示您的控制器代码,以及您使用的是哪个版本的 spring-boot -
当然让我编辑我的问题
标签: java spring-boot jersey metrics spring-boot-actuator