获取端点的指标

时间:2019-07-12 15:52:20

标签: java rest spring-boot

我有我的API的端点,现在我想跟踪的是,每当对端点发出请求时,有多少返回200,有多少返回400或其他HTTP状态代码,请告知我如何实现在弹簧靴项目中相同,我使用的是弹簧靴致动器2。

假设我的端点是:

https://localhost:9090/users

所以我想要的是:

{  
    "404": 1,
    "200": 6,
    "409": 1
}

2 个答案:

答案 0 :(得分:0)

您可以使用/actuator/metrics/来获取执行/调用的所有端点,它们具有计数,异常,结果,状态,总时间等。在这种情况下,计数,状态有用

为此,您必须在pom.xml或类似级别中添加一个依赖项

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
    <version>2.1.3.RELEASE</version>
</dependency>

Get Dependency


要获取已执行/调用的all endPoint的详细信息(请参见所有端点的结果)

localhost:8889/actuator/metrics/http.server.requests

要获取particular endPoint的详细信息(请参见特定结果)    endPoint)

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

答案 1 :(得分:-1)

在pom.xml文件中配置Spring启动执行器依赖项。

此端点localhost:8080/actuato/metrics可以访问您所需的指标

它将包含线程,堆内存,剩余内存等统计信息。

对于您而言,JSON响应中的这两个键将非常有用。

指南和计数器

指南-将给出每个API响应时间。

计数器-这样可以完全满足您的要求,例如{ 200:4, 400:1 }

说明:  您的API会返回200次状态码4次,并返回400次状态码1次。