クラス ServerHttpObservationFilter
java.lang.ObjectSE
org.springframework.web.filter.GenericFilterBean
org.springframework.web.filter.OncePerRequestFilter
org.springframework.web.filter.ServerHttpObservationFilter
- 実装されているすべてのインターフェース:
jakarta.servlet.Filter, Aware, BeanNameAware, DisposableBean, InitializingBean, EnvironmentAware, EnvironmentCapable, ServletContextAware
HTTP 交換用の
observations を作成する Filter。実行時間に関する情報と ServerRequestObservationContext から収集された情報を収集します。Web フレームワークは、現在の context を request attribute としてフェッチし、それに追加情報を提供できます。構成された ServerRequestObservationConvention は、このコンテキストを使用して metadata を収集し、それを観測に添付します。
- 導入:
- 6.0
- 作成者:
- Brian Clozel
フィールドのサマリー
フィールドクラス OncePerRequestFilter から継承されたフィールド
ALREADY_FILTERED_SUFFIXクラス GenericFilterBean から継承されたフィールド
loggerコンストラクターの概要
コンストラクターコンストラクター説明ServerHttpObservationFilter(io.micrometer.observation.ObservationRegistry observationRegistry) 指定されたObservationRegistryに対する観測を記録するHttpRequestsObservationFilterを作成します。ServerHttpObservationFilter(io.micrometer.observation.ObservationRegistry observationRegistry, ServerRequestObservationConvention observationConvention) カスタム規則を使用して、指定されたObservationRegistryに対する観測を記録するHttpRequestsObservationFilterを作成します。方法の概要
修飾子と型メソッド説明protected voiddoFilterInternal(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, jakarta.servlet.FilterChain filterChain) doFilterと同じ契約ですが、単一のリクエストスレッド内のリクエストごとに 1 回だけ呼び出されることが保証されています。findObservationContext(jakarta.servlet.http.HttpServletRequest request) 利用可能な場合、指定されたリクエストから現在のobservation contextを取得します。protected voidonScopeOpened(io.micrometer.observation.Observation.Scope scope, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) 作成されたばかりの観測に対して新しいObservation.Scopeが開かれたことをこのフィルターに通知します。protected booleanディスパッチャー型jakarta.servlet.DispatcherType.ASYNCは、1 つのリクエストの過程で複数のスレッドでフィルターを呼び出すことができることを意味します。クラス OncePerRequestFilter から継承されたメソッド
doFilter, doFilterNestedErrorDispatch, getAlreadyFilteredAttributeName, isAsyncDispatch, isAsyncStarted, shouldNotFilter, shouldNotFilterErrorDispatch
フィールドの詳細
CURRENT_OBSERVATION_CONTEXT_ATTRIBUTE
現在の監視のServerRequestObservationContextを保持するリクエスト属性の名前。
コンストラクターの詳細
ServerHttpObservationFilter
public ServerHttpObservationFilter(io.micrometer.observation.ObservationRegistry observationRegistry) 指定されたObservationRegistryに対する観測を記録するHttpRequestsObservationFilterを作成します。デフォルトのconventionが使用されます。- パラメーター:
observationRegistry- 観測を記録するために使用するレジストリ
ServerHttpObservationFilter
public ServerHttpObservationFilter(io.micrometer.observation.ObservationRegistry observationRegistry, ServerRequestObservationConvention observationConvention) カスタム規則を使用して、指定されたObservationRegistryに対する観測を記録するHttpRequestsObservationFilterを作成します。- パラメーター:
observationRegistry- 観測を記録するために使用するレジストリobservationConvention- 記録されたすべての観測に使用する規則
メソッドの詳細
shouldNotFilterAsyncDispatch
protected boolean shouldNotFilterAsyncDispatch()クラスからコピーされた説明:OncePerRequestFilterディスパッチャー型jakarta.servlet.DispatcherType.ASYNCは、単一のリクエスト中に複数のスレッドでフィルターを呼び出すことができることを意味します。一部のフィルターは最初のスレッドをフィルターするだけで済みますが (たとえば、リクエストの折り返し)、その他のフィルターは、スレッドローカルの設定や最後に最終処理を実行する場合など、各追加スレッドで少なくとも 1 回呼び出す必要がある場合があります。フィルターは、
web.xmlを介して特定のディスパッチャー型を処理するように、またはServletContextを介して Java で処理するようにマップできますが、サーブレットコンテナーはディスパッチャー型に関して異なるデフォルトを適用する場合があることに注意してください。このフラグは、フィルターの設計意図を強制します。デフォルトの戻り値は "true" です。これは、後続の非同期ディスパッチ中にフィルターが呼び出されないことを意味します。"false" の場合、フィルターは非同期ディスパッチ中に呼び出され、単一スレッド内のリクエスト中に 1 回だけ呼び出されるという同じ保証があります。
- オーバーライド:
- クラス
OncePerRequestFilterのshouldNotFilterAsyncDispatch
doFilterInternal
protected void doFilterInternal(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, jakarta.servlet.FilterChain filterChain) throws jakarta.servlet.ServletException, IOExceptionSE クラスからコピーされた説明:OncePerRequestFilterdoFilterと同じ契約ですが、単一のリクエストスレッド内のリクエストごとに 1 回だけ呼び出されることが保証されています。詳細については、OncePerRequestFilter.shouldNotFilterAsyncDispatch()を参照してください。デフォルトの ServletRequest および ServletResponse の代わりに、HttpServletRequest および HttpServletResponse 引数を提供します。
- 次で指定:
- クラス
OncePerRequestFilterのdoFilterInternal - 例外:
jakarta.servlet.ServletExceptionIOExceptionSE
onScopeOpened
protected void onScopeOpened(io.micrometer.observation.Observation.Scope scope, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) 作成されたばかりの観測に対して新しいObservation.Scopeが開かれたことをこのフィルターに通知します。- パラメーター:
scope- 新しくオープンした観測スコープrequest- HTTP クライアントリクエストresponse- フィルターのレスポンス- 導入:
- 6.2
findObservationContext
public static OptionalSE<ServerRequestObservationContext> findObservationContext(jakarta.servlet.http.HttpServletRequest request) 利用可能な場合、指定されたリクエストから現在のobservation contextを取得します。- パラメーター:
request- 現在のリクエスト- 戻り値:
- 現在の観測コンテキスト