调用统计
概述
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_COUNT | HTTP 客户端处理过的所有请求数 |
ACTIVE_REQUEST_COUNT | HTTP 客户端处理正在处理请求数 |
COMPLETED_REQUEST_COUNT | HTTP 客户端处理处理完成(成功)请求数 |
FAILED_REQUEST_COUNT | HTTP 客户端处理处理失败(包括主动终止)请求数 |
INFORMATIONAL | HTTP 客户端响应状态码为1XX 请求数 |
SUCCESSFUL | HTTP 客户端响应状态码为2XX 请求数 |
REDIRECTION | HTTP 客户端响应状态码为3XX 请求数 |
CLIENT_ERROR | HTTP 客户端响应状态码为4XX 请求数 |
SERVER_ERROR | HTTP 客户端响应状态码为5XX 请求数 |
UNKNOWN | HTTP 客户端响应状态码未知请求数 |