Package org.miaixz.bus.http.metric
Class EventListener
java.lang.Object
org.miaixz.bus.http.metric.EventListener
用于度量事件的侦听器。扩展这个类来监视应用程序的HTTP调用的数量、大小和持续时间
所有事件方法必须快速执行,不需要外部锁定,不能抛出异常,不能尝试更改事件参数,
也不能重入客户机。任何对文件或网络的IO写入都应该异步进行
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Nested Class Summary
Nested Classes -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid在调用完全结束后立即调用。这包括调用方延迟消耗响应体.voidcallFailed(NewCall call, IOException ioe) 永久失败时调用.void在调用进入队列或由客户端执行时立即调用。在线程或流限制的情况下,这个调用可能在处理请求 开始之前就已经执行了 对于单个NewCall只调用一次。不同路由或重定向的重试将在 单个callStart和callEnd(org.miaixz.bus.http.NewCall)/callFailed(org.miaixz.bus.http.NewCall, java.io.IOException)对的范围内处理。voidconnectEnd(NewCall call, InetSocketAddress inetSocketAddress, Proxy proxy, Protocol protocol) 在尝试套接字连接后立即调用.voidconnectFailed(NewCall call, InetSocketAddress inetSocketAddress, Proxy proxy, Protocol protocol, IOException ioe) 连接尝试失败时调用。如果有进一步的路由可用并且启用了故障恢复,则此故障不是终端.voidconnectionAcquired(NewCall call, Connection connection) 为call获取连接后调用.voidconnectionReleased(NewCall call, Connection connection) 在为call释放连接后调用.voidconnectStart(NewCall call, InetSocketAddress inetSocketAddress, Proxy proxy) 仅在初始化套接字连接之前调用.voiddnsEnd(NewCall call, String domainName, List<InetAddress> inetAddressList) 在DNS查找后立即调用.void仅在DNS查找之前调用。看到#查找(String)static EventListener.Factoryfactory(EventListener listener) voidrequestBodyEnd(NewCall call, long byteCount) 在发送请求主体后立即调用 此方法总是在requestBodyStart(NewCall)之后调用voidrequestBodyStart(NewCall call) 仅在发送请求主体之前调用。只有在请求允许并有一个请求体要发送时才会被调用吗.voidrequestFailed(NewCall call, IOException ioe) voidrequestHeadersEnd(NewCall call, Request request) 发送请求头后立即调用.voidrequestHeadersStart(NewCall call) 仅在发送请求头之前调用.voidresponseBodyEnd(NewCall call, long byteCount) 在接收到响应体并完成读取后立即调用.voidresponseBodyStart(NewCall call) 仅在接收响应主体之前调用.voidresponseFailed(NewCall call, IOException ioe) voidresponseHeadersEnd(NewCall call, Response response) 在接收响应标头后立即调用 这个方法总是在responseHeadersStart(org.miaixz.bus.http.NewCall)之后调用voidresponseHeadersStart(NewCall call) 仅在接收响应标头之前调用.voidsecureConnectEnd(NewCall call, Handshake handshake) 尝试TLS连接后立即调用.voidsecureConnectStart(NewCall call) 在启动TLS连接之前调用.
-
Field Details
-
NONE
-
-
Constructor Details
-
EventListener
public EventListener()
-
-
Method Details
-
factory
-
callStart
在调用进入队列或由客户端执行时立即调用。在线程或流限制的情况下,这个调用可能在处理请求 开始之前就已经执行了 对于单个NewCall只调用一次。不同路由或重定向的重试将在 单个callStart和callEnd(org.miaixz.bus.http.NewCall)/callFailed(org.miaixz.bus.http.NewCall, java.io.IOException)对的范围内处理。- Parameters:
call- 调用信息
-
dnsStart
仅在DNS查找之前调用。看到#查找(String)- Parameters:
call- 调用信息domainName- 主机名
-
dnsEnd
在DNS查找后立即调用. 此方法在dnsStart(org.miaixz.bus.http.NewCall, java.lang.String)之后调用- Parameters:
call- 调用信息domainName- 主机名inetAddressList- IP地址信息
-
connectStart
仅在初始化套接字连接之前调用. 如果不能重用ConnectionPool中的现有连接,则将调用此方法.- Parameters:
call- 调用信息inetSocketAddress- 网络套接字信息proxy- 代理
-
secureConnectStart
在启动TLS连接之前调用.- Parameters:
call- 调用信息
-
secureConnectEnd
尝试TLS连接后立即调用. 此方法在secureConnectStart(org.miaixz.bus.http.NewCall)之后调用.- Parameters:
call- 调用信息handshake- 网络握手信息
-
connectEnd
public void connectEnd(NewCall call, InetSocketAddress inetSocketAddress, Proxy proxy, Protocol protocol) 在尝试套接字连接后立即调用.- Parameters:
call- 调用信息inetSocketAddress- 网络套接字信息proxy- 代理protocol- 协议
-
connectFailed
public void connectFailed(NewCall call, InetSocketAddress inetSocketAddress, Proxy proxy, Protocol protocol, IOException ioe) 连接尝试失败时调用。如果有进一步的路由可用并且启用了故障恢复,则此故障不是终端.- Parameters:
call- 调用信息inetSocketAddress- 网络套接字信息proxy- 代理protocol- 协议ioe- 异常
-
connectionAcquired
为call获取连接后调用.- Parameters:
call- 调用信息connection- 连接信息
-
connectionReleased
在为call释放连接后调用. 这个方法总是在connectionAcquired(NewCall, Connection)之后调用。- Parameters:
call- 调用信息connection- 连接信息
-
requestHeadersStart
仅在发送请求头之前调用. 连接是隐式的,通常与最后一个connectionAcquired(NewCall, Connection)事件相关- Parameters:
call- 调用信息
-
requestHeadersEnd
发送请求头后立即调用. 这个方法总是在requestHeadersStart(NewCall)之后调用- Parameters:
call- 调用信息request- 通过网络发送的请求
-
requestBodyStart
仅在发送请求主体之前调用。只有在请求允许并有一个请求体要发送时才会被调用吗. 连接是隐式的,通常与最后一个connectionAcquired(NewCall, Connection)事件相关- Parameters:
call- 调用信息
-
requestBodyEnd
在发送请求主体后立即调用 此方法总是在requestBodyStart(NewCall)之后调用- Parameters:
call- 调用信息byteCount- 字节流长度信息
-
requestFailed
-
responseHeadersStart
仅在接收响应标头之前调用. 连接是隐式的,通常与最后一个connectionAcquired(NewCall, Connection)事件相关 对于单个NewCall可以调用多次。例如,如果对NewCall.request()的响应是重定向到另一个地址- Parameters:
call- 调用信息
-
responseHeadersEnd
在接收响应标头后立即调用 这个方法总是在responseHeadersStart(org.miaixz.bus.http.NewCall)之后调用- Parameters:
call- 调用信息response- 通过网络接收到的响应
-
responseBodyStart
仅在接收响应主体之前调用. 连接是隐式的,通常与最后一个connectionAcquired(NewCall, Connection)事件相关 对于单个NewCall通常只会调用一次,例外情况是一组有限的情况,包括故障恢复- Parameters:
call- 调用信息
-
responseBodyEnd
在接收到响应体并完成读取后立即调用. 只会在有响应体的请求时调用,例如,不会在websocket升级时调用 此方法总是在requestBodyStart(NewCall)之后调用- Parameters:
call- 调用信息byteCount- 字节流长度信息
-
responseFailed
-
callEnd
在调用完全结束后立即调用。这包括调用方延迟消耗响应体. 此方法总是在callStart(NewCall)之后调用- Parameters:
call- 调用信息
-
callFailed
永久失败时调用. 此方法总是在callStart(NewCall)之后调用- Parameters:
call- 调用信息ioe- 异常
-