Java 获取端点的度量

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/获取执行/调用的所有

我有一个API的端点,现在我想跟踪,每当向我的端点发出请求时,有多少人返回200,有多少人返回400或其他HTTP状态代码。请告知我如何在spring boot项目中实现相同的目标,我使用的是spring boot actuators 2

假设我的端点是:

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"
                ]
            }
        ]
    }