如何记录没有变量值的requestURI

问题描述 投票:0回答:1

我需要在 Prometheus 指标中标记 requestURI。在我的代码(使用 Spring Boot 和 Kotlin)中,我可以访问 HTTPServletRequest,并且需要按以下格式标记请求 URI:“v1/users/{username}”和“v1/purchase/{productName}”。但是,当我使用“request.requestURI()”时,我会以以下格式获得它:“v1/users/Ravikant”和“v1/purchase/iPhone14”。我想以上述格式标记 URI,以避免过多的指标重复

我希望获得 v1/users/{username}" 和 "v1/purchase/{productName} 格式的结果 URI,以在 Prometheus 指标中进行标记

java spring-boot kotlin prometheus metrics
1个回答
0
投票

您可以使用以下命令访问请求的 Spring 处理程序映射名称

request.getAttribute(org.springframework.web.servlet.HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE)

在您的示例中,当您使用

v1/users/{username}
 发出 HTTP 请求时,这将为您提供 
v1/users/admin

来源:https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/servlet/HandlerMapping.html#BEST_MATCHING_PATTERN_ATTRIBUTE

© www.soinside.com 2019 - 2024. All rights reserved.