Class BufferingApplicationStartup
java.lang.Object
org.springframework.boot.context.metrics.buffering.BufferingApplicationStartup
- All Implemented Interfaces:
ApplicationStartup
ApplicationStartup implementation that buffers steps and
records their timestamp as well as their processing time.
Once recording has been started, steps are buffered up until
the configured capacity; after that, new
steps are not recorded.
There are several ways to keep the buffer size low:
- Since:
- 2.4.0
- Author:
- Brian Clozel, Phillip Webb
-
Field Summary
Fields inherited from interface org.springframework.core.metrics.ApplicationStartup
DEFAULT -
Constructor Summary
ConstructorsConstructorDescriptionBufferingApplicationStartup(int capacity) Create a new bufferedApplicationStartupwith a limited capacity and starts the recording of steps. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddFilter(Predicate<StartupStep> filter) Add a predicate filter to the list of existing ones.Return thetimelineby pulling steps from the buffer.Return thetimelineas a snapshot of currently buffered steps.voidStart the recording of steps and mark the beginning of theStartupTimeline.
-
Constructor Details
-
BufferingApplicationStartup
public BufferingApplicationStartup(int capacity) Create a new bufferedApplicationStartupwith a limited capacity and starts the recording of steps.- Parameters:
capacity- the configured capacity; once reached, new steps are not recorded.
-
-
Method Details
-
startRecording
public void startRecording()Start the recording of steps and mark the beginning of theStartupTimeline. The class constructor already implicitly calls this, but it is possible to reset it as long as steps have not been recorded already.- Throws:
IllegalStateException- if called andStartupStephave been recorded already.
-
addFilter
Add a predicate filter to the list of existing ones.A
stepthat doesn't match all filters will not be recorded.- Parameters:
filter- the predicate filter to add.
-
start
- Specified by:
startin interfaceApplicationStartup
-
getBufferedTimeline
Return thetimelineas a snapshot of currently buffered steps.This will not remove steps from the buffer, see
drainBufferedTimeline()for its counterpart.- Returns:
- a snapshot of currently buffered steps.
-
drainBufferedTimeline
Return thetimelineby pulling steps from the buffer.This removes steps from the buffer, see
getBufferedTimeline()for its read-only counterpart.- Returns:
- buffered steps drained from the buffer.
-