Java 获取端点的度量
我有一个API的端点,现在我想跟踪,每当向我的端点发出请求时,有多少人返回200,有多少人返回400或其他HTTP状态代码。请告知我如何在spring boot项目中实现相同的目标,我使用的是spring boot actuators 2 假设我的端点是:Java 获取端点的度量,java,rest,spring-boot,spring-boot-actuator,Java,Rest,Spring Boot,Spring Boot Actuator,我有一个API的端点,现在我想跟踪,每当向我的端点发出请求时,有多少人返回200,有多少人返回400或其他HTTP状态代码。请告知我如何在spring boot项目中实现相同的目标,我使用的是spring boot actuators 2 假设我的端点是: https://localhost:9090/users 所以我想要的是: { "404": 1, "200": 6, "409": 1 } 您可以使用/activator/metrics/获取执行/调用的所有
https://localhost:9090/users
所以我想要的是:
{
"404": 1,
"200": 6,
"409": 1
}
您可以使用/activator/metrics/获取执行/调用的所有端点及其计数、异常、结果、状态、总时间等。对于这种情况计数,状态非常有用
为此,您必须在pom.xml或类似文件中添加依赖项
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<version>2.1.3.RELEASE</version>
</dependency>
要获取特定端点的详细信息,请参见“特定结果”
端点
结果所有终点
请参阅特定端点的结果
具有状态代码的特定端点的结果
在pom.xml文件中配置Spring引导执行器依赖项 此端点localhost:8080/actuato/metrics可以访问您所需的度量 它将包含线程、堆内存、剩余内存等统计信息 对于您的情况,JSON响应中的这两个键将非常有用 量规和计数器 Guage-将给出每个API的响应时间 计数器-这将完全满足您的要求,如{ 200:4, 400:1 } 解释:
您的API 4次返回200状态代码,1次返回400状态代码。欢迎使用StackOverflow!请阅读如何提出一个好问题。我建议你提供更多关于你的设置、问题和一个模拟的、可复制的例子的信息。你好,请看下面我的答案,然后告诉我结果
localhost:8889/actuator/metrics/http.server.requests
localhost:8889/actuator/metrics/http.server.requests?tag=uri:<endPoint>
localhost:8889/actuator/metrics/http.server.requests?tag=uri:/users
localhost:8889/actuator/metrics/http.server.requests?tag=uri:/users&tag=status:200
{
"name": "http.server.requests",
"description": null,
"baseUnit": "seconds",
"measurements": [
{
"statistic": "COUNT",
"value": 13
},
{
"statistic": "TOTAL_TIME",
"value": 0.42338
},
{
"statistic": "MAX",
"value": 0
}
],
"availableTags": [
{
"tag": "exception",
"values": [
"None"
]
},
{
"tag": "method",
"values": [
"GET"
]
},
{
"tag": "uri",
"values": [
"/actuator/metrics/{requiredMetricName}",
"/getCountByStatus"
]
},
{
"tag": "outcome",
"values": [
"CLIENT_ERROR",
"SUCCESS"
]
},
{
"tag": "status",
"values": [
"404",
"200"
]
}
]
}
{
"name": "http.server.requests",
"description": null,
"baseUnit": "seconds",
"measurements": [
{
"statistic": "COUNT",
"value": 5
},
{
"statistic": "TOTAL_TIME",
"value": 0.1830878
},
{
"statistic": "MAX",
"value": 0
}
],
"availableTags": [
{
"tag": "exception",
"values": [
"None"
]
},
{
"tag": "method",
"values": [
"GET"
]
},
{
"tag": "outcome",
"values": [
"CLIENT_ERROR",
"SUCCESS"
]
},
{
"tag": "status",
"values": [
"404",
"200"
]
}
]
}
{
"name": "http.server.requests",
"description": null,
"baseUnit": "seconds",
"measurements": [
{
"statistic": "COUNT",
"value": 3
},
{
"statistic": "TOTAL_TIME",
"value": 0.034849
},
{
"statistic": "MAX",
"value": 0
}
],
"availableTags": [
{
"tag": "exception",
"values": [
"None"
]
},
{
"tag": "method",
"values": [
"GET"
]
},
{
"tag": "outcome",
"values": [
"SUCCESS"
]
}
]
}