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