Skip to content

调用统计

概述

Solpic支持HTTP客户端粒度的简易调用统计,需要主动开启对应的选项。

开启选项

创建HTTP客户端时把HttpOptions.HTTP_CLIENT_METRICS的值定义为true即可。例如:

java
HttpClient httpClient = Solpic.newHttpClientBuilder()
        .option(HttpOptions.HTTP_CLIENT_METRICS, true)
        .build();

验证

调用统计的API由接口MetricsSupport提供,所有相关API都是快照读,它是HttpClient的父接口。MetricsSupport接口定义如下:

java
public interface MetricsSupport {

    // Metrics首次加载时间,这个时间几乎和HttpClient初始化时间一致
    LocalDateTime getLoadTime();

    // Metrics首次加载时间到当前时间的时间间隔
    Duration getUpDuration();

    // 消费所有统计指标快照
    void consumeStats(Consumer<StatsFactorInfo> consumer);

    // 查询所有统计指标快照
    List<StatsFactorInfo> getStats();
}

使用方式如下:

java
public static void main(String[] args) throws Exception {
    HttpClient httpClient = Solpic.newHttpClientBuilder()
            .option(HttpOptions.HTTP_CLIENT_METRICS, true)
            .build();
    HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://httpbin.org/get"))
            .method(HttpMethod.GET)
            .build();
    httpClient.send(request, PayloadSubscribers.X.ofString());
    httpClient.consumeStats(statsFactorInfo -> {
        System.out.printf("Factor: %s, value: %d\n", statsFactorInfo.getName(), statsFactorInfo.getValue());
    });
}

输出结果:

shell
Factor: FAILED_REQUEST_COUNT, value: 0
Factor: COMPLETED_REQUEST_COUNT, value: 1
Factor: TOTAL_REQUEST_COUNT, value: 1
Factor: ACTIVE_REQUEST_COUNT, value: 0
Factor: INFORMATIONAL, value: 0
Factor: SERVER_ERROR, value: 0
Factor: SUCCESSFUL, value: 1
Factor: CLIENT_ERROR, value: 0
Factor: REDIRECTION, value: 0
Factor: UNKNOWN, value: 0

指标

目前支持的指标表格如下:

名称含义
TOTAL_REQUEST_COUNTHTTP客户端处理过的所有请求数
ACTIVE_REQUEST_COUNTHTTP客户端处理正在处理请求数
COMPLETED_REQUEST_COUNTHTTP客户端处理处理完成(成功)请求数
FAILED_REQUEST_COUNTHTTP客户端处理处理失败(包括主动终止)请求数
INFORMATIONALHTTP客户端响应状态码为1XX请求数
SUCCESSFULHTTP客户端响应状态码为2XX请求数
REDIRECTIONHTTP客户端响应状态码为3XX请求数
CLIENT_ERRORHTTP客户端响应状态码为4XX请求数
SERVER_ERRORHTTP客户端响应状态码为5XX请求数
UNKNOWNHTTP客户端响应状态码未知请求数

贡献者

页面历史

Released under the MIT License.