All Downloads are FREE. Search and download functionalities are using the official Maven repository.

reactor.pool.PoolMetricsRecorder Maven / Gradle / Ivy

There is a newer version: 1.1.0
Show newest version
/*
 * Copyright (c) 2018-Present Pivotal Software Inc, All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *       https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package reactor.pool;

/**
 * An interface representing ways for {@link Pool} to collect instrumentation data.
 * Some methods are pool-implementation specific.
 * 

* Note this doesn't include the concepts of measuring timings, which should be the * responsibility of a {@link java.time.Clock}. * * @author Simon Baslé */ public interface PoolMetricsRecorder { /** * Record a latency for successful allocation. Implies incrementing an allocation success counter as well. * @param latencyMs the latency in milliseconds */ void recordAllocationSuccessAndLatency(long latencyMs); /** * Record a latency for failed allocation. Implies incrementing an allocation failure counter as well. * @param latencyMs the latency in milliseconds */ void recordAllocationFailureAndLatency(long latencyMs); /** * Record a latency for resetting a resource to a reusable state. Implies incrementing a counter as well. * @param latencyMs the latency in milliseconds */ void recordResetLatency(long latencyMs); /** * Record a latency for destroying a resource. Implies incrementing a counter as well. * @param latencyMs the latency in milliseconds */ void recordDestroyLatency(long latencyMs); /** * Record the fact that a resource was recycled, ie it was reset and tested for reuse. */ void recordRecycled(); /** * Record the number of milliseconds a pooled object has been live (ie. time between allocation and destruction). * @param millisecondsSinceAllocation the number of milliseconds since the object was allocated, at the time is is destroyed */ void recordLifetimeDuration(long millisecondsSinceAllocation); /** * Record the number of milliseconds an object had been idle when it gets pulled from the pool and passed to a borrower. * @param millisecondsIdle the number of milliseconds an object that was just acquired had previously been idle. */ void recordIdleTime(long millisecondsIdle); /** * Record the fact that a {@link Pool} has a slow path of recycling and just used it. */ void recordSlowPath(); /** * Record the fact that a {@link Pool} has a fast path of recycling and just used it. */ void recordFastPath(); }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy