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 * 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 messages.setDoReset(false); 057 messagesCached = new PollCountStatisticImpl("messagesCached", "The number of messages that are held in the destination's memory cache"); 058 processTime = new TimeStatisticImpl("processTime", "information around length of time messages are held by a destination"); 059 addStatistic("enqueues", enqueues); 060 addStatistic("dispatched", dispatched); 061 addStatistic("dequeues", dequeues); 062 addStatistic("inflight", inflight); 063 addStatistic("expired", expired); 064 addStatistic("consumers", consumers); 065 addStatistic("producers", producers); 066 addStatistic("messages", messages); 067 addStatistic("messagesCached", messagesCached); 068 addStatistic("processTime", processTime); 069 } 070 071 public CountStatisticImpl getEnqueues() { 072 return enqueues; 073 } 074 075 public CountStatisticImpl getDequeues() { 076 return dequeues; 077 } 078 079 public CountStatisticImpl getInflight() { 080 return inflight; 081 } 082 083 public CountStatisticImpl getExpired() { 084 return expired; 085 } 086 087 public CountStatisticImpl getConsumers() { 088 return consumers; 089 } 090 091 public CountStatisticImpl getProducers() { 092 return producers; 093 } 094 095 public PollCountStatisticImpl getMessagesCached() { 096 return messagesCached; 097 } 098 099 public CountStatisticImpl getMessages() { 100 return messages; 101 } 102 103 public void setMessagesCached(PollCountStatisticImpl messagesCached) { 104 this.messagesCached = messagesCached; 105 } 106 107 public CountStatisticImpl getDispatched() { 108 return dispatched; 109 } 110 111 public TimeStatisticImpl getProcessTime() { 112 return this.processTime; 113 } 114 115 public void reset() { 116 if (this.isDoReset()) { 117 super.reset(); 118 enqueues.reset(); 119 dequeues.reset(); 120 dispatched.reset(); 121 inflight.reset(); 122 expired.reset(); 123 } 124 } 125 126 public void setEnabled(boolean enabled) { 127 super.setEnabled(enabled); 128 enqueues.setEnabled(enabled); 129 dispatched.setEnabled(enabled); 130 dequeues.setEnabled(enabled); 131 inflight.setEnabled(enabled); 132 expired.setEnabled(true); 133 consumers.setEnabled(enabled); 134 producers.setEnabled(enabled); 135 messages.setEnabled(enabled); 136 messagesCached.setEnabled(enabled); 137 processTime.setEnabled(enabled); 138 139 } 140 141 public void setParent(DestinationStatistics parent) { 142 if (parent != null) { 143 enqueues.setParent(parent.enqueues); 144 dispatched.setParent(parent.dispatched); 145 dequeues.setParent(parent.dequeues); 146 inflight.setParent(parent.inflight); 147 expired.setParent(parent.expired); 148 consumers.setParent(parent.consumers); 149 producers.setParent(parent.producers); 150 messagesCached.setParent(parent.messagesCached); 151 messages.setParent(parent.messages); 152 processTime.setParent(parent.processTime); 153 } else { 154 enqueues.setParent(null); 155 dispatched.setParent(null); 156 dequeues.setParent(null); 157 inflight.setParent(null); 158 expired.setParent(null); 159 consumers.setParent(null); 160 producers.setParent(null); 161 messagesCached.setParent(null); 162 messages.setParent(null); 163 processTime.setParent(null); 164 } 165 } 166 167 }