/** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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 * * http://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 org.apache.activemq.broker.view; import org.apache.activemq.broker.region.Destination; public class BrokerDestinationView { private final Destination destination; BrokerDestinationView(Destination destination) { this.destination = destination; } /** * @return the name of the DestinationView */ public String getName() { return destination.getName(); } /** * @return the number of messages enqueued by this destination */ public long getEnqueueCount() { return destination.getDestinationStatistics().getEnqueues().getCount(); } /** * @return the number of messages dequeued (dispatched and removed) by this destination */ public long getDequeueCount() { return destination.getDestinationStatistics().getDequeues().getCount(); } /** * @return the number of messages dispatched by this destination */ public long getDispatchCount() { return destination.getDestinationStatistics().getDispatched().getCount(); } /** * @return the number of messages inflight (dispatched by not acknowledged) by this destination */ public long getInFlightCount() { return destination.getDestinationStatistics().getInflight().getCount(); } /** * @return the number of messages expired by this destination */ public long getExpiredCount() { return destination.getDestinationStatistics().getExpired().getCount(); } /** * @return the number of active consumers on this destination */ public int getConsumerCount() { return (int)destination.getDestinationStatistics().getConsumers().getCount(); } /** * @return the number of active consumers on this destination */ public int getProducerCount() { return (int)destination.getDestinationStatistics().getProducers().getCount(); } /** * @return the depth of the Destination */ public long getQueueSize() { return destination.getDestinationStatistics().getMessages().getCount(); } /** * @return the number of messages cached in memory by this destination */ public long getMessagesCached() { return destination.getDestinationStatistics().getMessagesCached().getCount(); } /** * @return the memory usage as a percentage for this Destination */ public int getMemoryPercentUsage() { return destination.getMemoryUsage().getPercentUsage(); } /** * @return the memory used by this destination in bytes */ public long getMemoryUsageByteCount() { return destination.getMemoryUsage().getUsage(); } /** * @return the memory limit for this destination in bytes */ public long getMemoryLimit() { return destination.getMemoryUsage().getLimit(); } /** * @return the average time it takes to store a message on this destination (ms) */ public double getAverageEnqueueTime() { return destination.getDestinationStatistics().getProcessTime().getAverageTime(); } /** * @return the maximum time it takes to store a message on this destination (ms) */ public long getMaxEnqueueTime() { return destination.getDestinationStatistics().getProcessTime().getMaxTime(); } /** * @return the minimum time it takes to store a message on this destination (ms) */ public long getMinEnqueueTime() { return destination.getDestinationStatistics().getProcessTime().getMinTime(); } /** * @return the average size of a message (bytes) */ public double getAverageMessageSize() { return destination.getDestinationStatistics().getMessageSize().getAverageSize(); } /** * @return the max size of a message (bytes) */ public long getMaxMessageSize() { return destination.getDestinationStatistics().getMessageSize().getMaxSize(); } /** * @return the min size of a message (bytes) */ public long getMinMessageSize() { return destination.getDestinationStatistics().getMessageSize().getMinSize(); } /** * @return true if the destination is a Dead Letter Queue */ public boolean isDLQ() { return destination.getActiveMQDestination().isDLQ(); } /** * @return the number of messages blocked waiting for dispatch (indication of slow consumption if greater than zero) */ public long getBlockedSends() { return destination.getDestinationStatistics().getBlockedSends().getCount(); } /** * @return the average time(ms) messages are blocked waiting for dispatch (indication of slow consumption if greater than zero) */ public double getAverageBlockedTime() { return destination.getDestinationStatistics().getBlockedTime().getAverageTime(); } /** * @return the total time(ms) messages are blocked waiting for dispatch (indication of slow consumption if greater than zero) */ public long getTotalBlockedTime() { return destination.getDestinationStatistics().getBlockedTime().getTotalTime(); } }