001 /** 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache License, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017 018 package org.apache.activemq.broker.region; 019 020 import org.apache.activemq.management.CountStatisticImpl; 021 import org.apache.activemq.management.PollCountStatisticImpl; 022 import org.apache.activemq.management.StatsImpl; 023 import org.apache.activemq.management.TimeStatisticImpl; 024 025 /** 026 * The J2EE Statistics for the a Destination. 027 * 028 * @version $Revision$ 029 */ 030 public class DestinationStatistics extends StatsImpl { 031 032 protected CountStatisticImpl enqueues; 033 protected CountStatisticImpl dequeues; 034 protected CountStatisticImpl consumers; 035 protected CountStatisticImpl producers; 036 protected CountStatisticImpl messages; 037 protected PollCountStatisticImpl messagesCached; 038 protected CountStatisticImpl dispatched; 039 protected CountStatisticImpl inflight; 040 protected CountStatisticImpl expired; 041 protected TimeStatisticImpl processTime; 042 043 public DestinationStatistics() { 044 045 enqueues = new CountStatisticImpl("enqueues", "The number of messages that have been sent to the destination"); 046 dispatched = new CountStatisticImpl("dispatched", "The number of messages that have been dispatched from the destination"); 047 dequeues = new CountStatisticImpl("dequeues", "The number of messages that have been acknowledged from the destination"); 048 inflight = new CountStatisticImpl("inflight", "The number of messages dispatched but awaiting acknowledgement"); 049 expired = new CountStatisticImpl("expired", "The number of messages that have expired"); 050 051 consumers = new CountStatisticImpl("consumers", "The number of consumers that that are subscribing to messages from the destination"); 052 consumers.setDoReset(false); 053 producers = new CountStatisticImpl("producers", "The number of producers that that are publishing messages to the destination"); 054 producers.setDoReset(false); 055 messages = new CountStatisticImpl("messages", "The number of messages that that are being held by the destination"); 056 messagesCached = new PollCountStatisticImpl("messagesCached", "The number of messages that are held in the destination's memory cache"); 057 processTime = new TimeStatisticImpl("processTime", "information around length of time messages are held by a destination"); 058 addStatistic("enqueues", enqueues); 059 addStatistic("dispatched", dispatched); 060 addStatistic("dequeues", dequeues); 061 addStatistic("inflight", inflight); 062 addStatistic("expired", expired); 063 addStatistic("consumers", consumers); 064 addStatistic("producers", producers); 065 addStatistic("messages", messages); 066 addStatistic("messagesCached", messagesCached); 067 addStatistic("processTime", processTime); 068 } 069 070 public CountStatisticImpl getEnqueues() { 071 return enqueues; 072 } 073 074 public CountStatisticImpl getDequeues() { 075 return dequeues; 076 } 077 078 public CountStatisticImpl getInflight() { 079 return inflight; 080 } 081 082 public CountStatisticImpl getExpired() { 083 return expired; 084 } 085 086 public CountStatisticImpl getConsumers() { 087 return consumers; 088 } 089 090 public CountStatisticImpl getProducers() { 091 return producers; 092 } 093 094 public PollCountStatisticImpl getMessagesCached() { 095 return messagesCached; 096 } 097 098 public CountStatisticImpl getMessages() { 099 return messages; 100 } 101 102 public void setMessagesCached(PollCountStatisticImpl messagesCached) { 103 this.messagesCached = messagesCached; 104 } 105 106 public CountStatisticImpl getDispatched() { 107 return dispatched; 108 } 109 110 public TimeStatisticImpl getProcessTime() { 111 return this.processTime; 112 } 113 114 public void reset() { 115 if (this.isDoReset()) { 116 super.reset(); 117 enqueues.reset(); 118 dequeues.reset(); 119 dispatched.reset(); 120 inflight.reset(); 121 expired.reset(); 122 } 123 } 124 125 public void setEnabled(boolean enabled) { 126 super.setEnabled(enabled); 127 enqueues.setEnabled(enabled); 128 dispatched.setEnabled(enabled); 129 dequeues.setEnabled(enabled); 130 inflight.setEnabled(enabled); 131 expired.setEnabled(true); 132 consumers.setEnabled(enabled); 133 producers.setEnabled(enabled); 134 messages.setEnabled(enabled); 135 messagesCached.setEnabled(enabled); 136 processTime.setEnabled(enabled); 137 138 } 139 140 public void setParent(DestinationStatistics parent) { 141 if (parent != null) { 142 enqueues.setParent(parent.enqueues); 143 dispatched.setParent(parent.dispatched); 144 dequeues.setParent(parent.dequeues); 145 inflight.setParent(parent.inflight); 146 expired.setParent(parent.expired); 147 consumers.setParent(parent.consumers); 148 producers.setParent(parent.producers); 149 messagesCached.setParent(parent.messagesCached); 150 messages.setParent(parent.messages); 151 processTime.setParent(parent.processTime); 152 } else { 153 enqueues.setParent(null); 154 dispatched.setParent(null); 155 dequeues.setParent(null); 156 inflight.setParent(null); 157 expired.setParent(null); 158 consumers.setParent(null); 159 producers.setParent(null); 160 messagesCached.setParent(null); 161 messages.setParent(null); 162 processTime.setParent(null); 163 } 164 } 165 166 }