Package org.opensaml.profile.context
Class MetricContext
java.lang.Object
org.opensaml.messaging.context.BaseContext
org.opensaml.profile.context.MetricContext
- All Implemented Interfaces:
Iterable<BaseContext>
Child context that supplies instructions to the runtime actions
about timers to start and stop to measure performance.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.opensaml.messaging.context.BaseContext
BaseContext.ContextSetNoRemoveIteratorDecorator
-
Field Summary
FieldsModifier and TypeFieldDescriptionMap of objects to counter names.Map of objects to contexts to perform a stop signal.Map of objects to timer names to start and objects to stop the timer. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionaddCounter
(String counterName, String objectId) Add an object/counter mapping.Add an object/timer mapping.void
Decrement a counter associated with an object, if any.Get a modifiable map of object/counter associations.getTimerMappings
(String objectId) Get a modifiable collection of timer name / stop object pairs for the supplied start object ID.void
Increment a counter associated with an object, if any.void
Conditionally starts one or more timers based on the supplied object identifier.void
Stops any timers associated with the supplied object identifier and removes them from the tracking map.Methods inherited from class org.opensaml.messaging.context.BaseContext
addSubcontext, addSubcontext, clearSubcontexts, containsSubcontext, createSubcontext, getParent, getSubcontext, getSubcontext, getSubcontext, getSubcontext, iterator, removeSubcontext, removeSubcontext, setParent
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Field Details
-
timerMap
Map of objects to timer names to start and objects to stop the timer.The first member is the timer name, the second the object to associate with the timer.
-
timerContextMap
@Nonnull @NonnullElements private Multimap<String,com.codahale.metrics.Timer.Context> timerContextMapMap of objects to contexts to perform a stop signal. -
counterMap
Map of objects to counter names.
-
-
Constructor Details
-
MetricContext
public MetricContext()Constructor.
-
-
Method Details
-
addTimer
@Nonnull public MetricContext addTimer(@Nonnull @NotEmpty String timerName, @Nonnull @NotEmpty String startId, @Nonnull @NotEmpty String stopId) Add an object/timer mapping.- Parameters:
timerName
- name of timerstartId
- ID of object to start timer withstopId
- ID of object to stop timer- Returns:
- this context
-
getTimerMappings
@Nonnull @NonnullElements @Live public Collection<Pair<String,String>> getTimerMappings(@Nonnull @NotEmpty String objectId) Get a modifiable collection of timer name / stop object pairs for the supplied start object ID.- Parameters:
objectId
- the object ID input- Returns:
- the collection of associated mappings
-
addCounter
@Nonnull public MetricContext addCounter(@Nonnull @NotEmpty String counterName, @Nonnull @NotEmpty String objectId) Add an object/counter mapping.- Parameters:
counterName
- name of counterobjectId
- object ID- Returns:
- this context
-
getCounterMappings
Get a modifiable map of object/counter associations.- Returns:
- map of counters
-
start
Conditionally starts one or more timers based on the supplied object identifier.The configured state of the context is used to determine whether, and which, timers to start, further influenced by the runtime state of the system with regard to enabling of metrics.
- Parameters:
objectId
- ID of the object being timed
-
stop
Stops any timers associated with the supplied object identifier and removes them from the tracking map.- Parameters:
objectId
- ID of the object being timed
-
inc
Increment a counter associated with an object, if any.- Parameters:
objectId
- ID of object
-
dec
Decrement a counter associated with an object, if any.- Parameters:
objectId
- ID of object
-