Package com.rabbitmq.client.impl
Class AbstractMetricsCollector
- java.lang.Object
-
- com.rabbitmq.client.impl.AbstractMetricsCollector
-
- All Implemented Interfaces:
MetricsCollector
public abstract class AbstractMetricsCollector extends java.lang.Object implements MetricsCollector
Base class forMetricsCollector
. Implements tricky logic such as keeping track of acknowledged and rejected messages. Sub-classes just need to implement the logic to increment their metrics. Note transactions are not supported (seeMetricsCollector
.- See Also:
MetricsCollector
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
AbstractMetricsCollector.ChannelState
private static class
AbstractMetricsCollector.ConnectionState
-
Field Summary
Fields Modifier and Type Field Description private java.util.concurrent.ConcurrentMap<java.lang.String,AbstractMetricsCollector.ConnectionState>
connectionState
private static org.slf4j.Logger
LOGGER
private java.lang.Runnable
markAcknowledgedMessageAction
private java.lang.Runnable
markRejectedMessageAction
-
Constructor Summary
Constructors Constructor Description AbstractMetricsCollector()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
basicAck(Channel channel, long deliveryTag, boolean multiple)
void
basicCancel(Channel channel, java.lang.String consumerTag)
void
basicConsume(Channel channel, java.lang.String consumerTag, boolean autoAck)
void
basicNack(Channel channel, long deliveryTag)
void
basicPublish(Channel channel)
void
basicPublishAck(Channel channel, long deliveryTag, boolean multiple)
void
basicPublishFailure(Channel channel, java.lang.Throwable cause)
void
basicPublishNack(Channel channel, long deliveryTag, boolean multiple)
void
basicPublishUnrouted(Channel channel)
void
basicReject(Channel channel, long deliveryTag)
private AbstractMetricsCollector.ChannelState
channelState(Channel channel)
void
cleanStaleState()
Clean inner state for close connections and channels.void
closeChannel(Channel channel)
void
closeConnection(Connection connection)
private AbstractMetricsCollector.ConnectionState
connectionState(Connection connection)
void
consumedMessage(Channel channel, long deliveryTag, boolean autoAck)
void
consumedMessage(Channel channel, long deliveryTag, java.lang.String consumerTag)
protected abstract void
decrementChannelCount(Channel channel)
Decrements channel count.protected abstract void
decrementConnectionCount(Connection connection)
Decrements connection count.protected abstract void
incrementChannelCount(Channel channel)
Increments channel count.protected abstract void
incrementConnectionCount(Connection connection)
Increments connection count.protected abstract void
markAcknowledgedMessage()
Marks the event of an acknowledged message.protected abstract void
markConsumedMessage()
Marks the event of a consumed message.protected abstract void
markMessagePublishAcknowledged()
Marks the event of a message publishing acknowledgement.protected abstract void
markMessagePublishFailed()
Marks the event of a message publishing failure.protected abstract void
markMessagePublishNotAcknowledged()
Marks the event of a message publishing not being acknowledged.protected abstract void
markPublishedMessage()
Marks the event of a published message.protected abstract void
markPublishedMessageUnrouted()
Marks the event of a published message not being routed.protected abstract void
markRejectedMessage()
Marks the event of a rejected message.void
newChannel(Channel channel)
void
newConnection(Connection connection)
private void
updateChannelStateAfterAckReject(Channel channel, long deliveryTag, boolean multiple, java.lang.Runnable action)
-
-
-
Field Detail
-
LOGGER
private static final org.slf4j.Logger LOGGER
-
connectionState
private final java.util.concurrent.ConcurrentMap<java.lang.String,AbstractMetricsCollector.ConnectionState> connectionState
-
markAcknowledgedMessageAction
private final java.lang.Runnable markAcknowledgedMessageAction
-
markRejectedMessageAction
private final java.lang.Runnable markRejectedMessageAction
-
-
Method Detail
-
newConnection
public void newConnection(Connection connection)
- Specified by:
newConnection
in interfaceMetricsCollector
-
closeConnection
public void closeConnection(Connection connection)
- Specified by:
closeConnection
in interfaceMetricsCollector
-
newChannel
public void newChannel(Channel channel)
- Specified by:
newChannel
in interfaceMetricsCollector
-
closeChannel
public void closeChannel(Channel channel)
- Specified by:
closeChannel
in interfaceMetricsCollector
-
basicPublish
public void basicPublish(Channel channel)
- Specified by:
basicPublish
in interfaceMetricsCollector
-
basicPublishFailure
public void basicPublishFailure(Channel channel, java.lang.Throwable cause)
- Specified by:
basicPublishFailure
in interfaceMetricsCollector
-
basicPublishAck
public void basicPublishAck(Channel channel, long deliveryTag, boolean multiple)
- Specified by:
basicPublishAck
in interfaceMetricsCollector
-
basicPublishNack
public void basicPublishNack(Channel channel, long deliveryTag, boolean multiple)
- Specified by:
basicPublishNack
in interfaceMetricsCollector
-
basicPublishUnrouted
public void basicPublishUnrouted(Channel channel)
- Specified by:
basicPublishUnrouted
in interfaceMetricsCollector
-
basicConsume
public void basicConsume(Channel channel, java.lang.String consumerTag, boolean autoAck)
- Specified by:
basicConsume
in interfaceMetricsCollector
-
basicCancel
public void basicCancel(Channel channel, java.lang.String consumerTag)
- Specified by:
basicCancel
in interfaceMetricsCollector
-
consumedMessage
public void consumedMessage(Channel channel, long deliveryTag, boolean autoAck)
- Specified by:
consumedMessage
in interfaceMetricsCollector
-
consumedMessage
public void consumedMessage(Channel channel, long deliveryTag, java.lang.String consumerTag)
- Specified by:
consumedMessage
in interfaceMetricsCollector
-
basicAck
public void basicAck(Channel channel, long deliveryTag, boolean multiple)
- Specified by:
basicAck
in interfaceMetricsCollector
-
basicNack
public void basicNack(Channel channel, long deliveryTag)
- Specified by:
basicNack
in interfaceMetricsCollector
-
basicReject
public void basicReject(Channel channel, long deliveryTag)
- Specified by:
basicReject
in interfaceMetricsCollector
-
updateChannelStateAfterAckReject
private void updateChannelStateAfterAckReject(Channel channel, long deliveryTag, boolean multiple, java.lang.Runnable action)
-
connectionState
private AbstractMetricsCollector.ConnectionState connectionState(Connection connection)
-
channelState
private AbstractMetricsCollector.ChannelState channelState(Channel channel)
-
cleanStaleState
public void cleanStaleState()
Clean inner state for close connections and channels. Inner state is automatically cleaned on connection and channel closing. Thus, this method is provided as a safety net, to be externally called periodically if closing of resources wouldn't work properly for some corner cases.
-
incrementConnectionCount
protected abstract void incrementConnectionCount(Connection connection)
Increments connection count. The connection object is passed in as complementary information and without any guarantee of not being null.- Parameters:
connection
- the connection that has been created (can be null)
-
decrementConnectionCount
protected abstract void decrementConnectionCount(Connection connection)
Decrements connection count. The connection object is passed in as complementary information and without any guarantee of not being null.- Parameters:
connection
- the connection that has been closed (can be null)
-
incrementChannelCount
protected abstract void incrementChannelCount(Channel channel)
Increments channel count. The channel object is passed in as complementary information and without any guarantee of not being null.- Parameters:
channel
- the channel that has been created (can be null)
-
decrementChannelCount
protected abstract void decrementChannelCount(Channel channel)
Decrements channel count. The channel object is passed in as complementary information and without any guarantee of not being null.- Parameters:
channel
-
-
markPublishedMessage
protected abstract void markPublishedMessage()
Marks the event of a published message.
-
markMessagePublishFailed
protected abstract void markMessagePublishFailed()
Marks the event of a message publishing failure.
-
markConsumedMessage
protected abstract void markConsumedMessage()
Marks the event of a consumed message.
-
markAcknowledgedMessage
protected abstract void markAcknowledgedMessage()
Marks the event of an acknowledged message.
-
markRejectedMessage
protected abstract void markRejectedMessage()
Marks the event of a rejected message.
-
markMessagePublishAcknowledged
protected abstract void markMessagePublishAcknowledged()
Marks the event of a message publishing acknowledgement.
-
markMessagePublishNotAcknowledged
protected abstract void markMessagePublishNotAcknowledged()
Marks the event of a message publishing not being acknowledged.
-
markPublishedMessageUnrouted
protected abstract void markPublishedMessageUnrouted()
Marks the event of a published message not being routed.
-
-