/** * This constructor is typically used to create a statistics object for a * {@link Destination} */ public JMSEndpointStatsImpl() { this(new CountStatisticImpl("messageCount", "Number of messages processed"), new CountStatisticImpl("pendingMessageCount", "Number of pending messages"), new CountStatisticImpl("expiredMessageCount", "Number of expired messages"), new TimeStatisticImpl("messageWaitTime", "Time spent by a message before being delivered"), new TimeStatisticImpl("messageRateTime", "Time taken to process a message (thoughtput rate)")); }
public void messageSent(){ long currentTime = System.currentTimeMillis(); long time = 0; if (lastTime < 0){ time = 0; lastTime = currentTime; }else{ time = currentTime-lastTime; } timeStatistic.addTime(time); lastTime=currentTime; }
protected synchronized void appendFieldDescription(StringBuffer buffer) { buffer.append(" count: "); buffer.append(Long.toString(count)); buffer.append(" maxTime: "); buffer.append(Long.toString(maxTime)); buffer.append(" minTime: "); buffer.append(Long.toString(minTime)); buffer.append(" totalTime: "); buffer.append(Long.toString(totalTime)); buffer.append(" averageTime: "); buffer.append(Double.toString(getAverageTime())); buffer.append(" averageTimeExMinMax: "); buffer.append(Double.toString(getAverageTimeExcludingMinMax())); buffer.append(" averagePerSecond: "); buffer.append(Double.toString(getAveragePerSecond())); buffer.append(" averagePerSecondExMinMax: "); buffer.append(Double.toString(getAveragePerSecondExcludingMinMax())); super.appendFieldDescription(buffer); }
public synchronized void addTime(long time) { count++; totalTime += time; if (time > maxTime) { maxTime = time; } if (time < minTime || minTime == 0) { minTime = time; } updateSampleTime(); if (parent != null) { parent.addTime(time); } }
statsMessage.setLong("memoryUsage", dest.getMemoryUsage().getUsage()); statsMessage.setLong("memoryLimit", dest.getMemoryUsage().getLimit()); statsMessage.setDouble("averageEnqueueTime", stats.getProcessTime().getAverageTime()); statsMessage.setDouble("maxEnqueueTime", stats.getProcessTime().getMaxTime()); statsMessage.setDouble("minEnqueueTime", stats.getProcessTime().getMinTime()); statsMessage.setLong("consumerCount", stats.getConsumers().getCount()); statsMessage.setLong("producerCount", stats.getProducers().getCount()); statsMessage.setLong("tempUsage", systemUsage.getTempUsage().getUsage()); statsMessage.setLong("tempLimit", systemUsage.getTempUsage().getLimit()); statsMessage.setDouble("averageEnqueueTime", stats.getProcessTime().getAverageTime()); statsMessage.setDouble("maxEnqueueTime", stats.getProcessTime().getMaxTime()); statsMessage.setDouble("minEnqueueTime", stats.getProcessTime().getMinTime()); statsMessage.setLong("consumerCount", stats.getConsumers().getCount()); statsMessage.setLong("producerCount", stats.getProducers().getCount());
/** * Resets the managment counters. */ @Override public void resetStats() { timeStatistic.reset(); lastTime = -1; }
/** * @return the average number of steps per second */ public double getAveragePerSecond() { double d = 1000; double averageTime = getAverageTime(); if (averageTime == 0) { return 0; } return d / averageTime; }
protected void setParent(TimeStatisticImpl child, TimeStatisticImpl parent) { if (child instanceof TimeStatisticImpl && parent instanceof TimeStatisticImpl) { TimeStatisticImpl c = (TimeStatisticImpl)child; c.setParent((TimeStatisticImpl)parent); } else { LOG.warn("Cannot associate endpoint counters with session level counters as they are not both TimeStatisticImpl clases. Endpoint: " + child + " session: " + parent); } } }
@Override public void setEnabled(boolean enabled) { super.setEnabled(enabled); messageCount.setEnabled(enabled); messageRateTime.setEnabled(enabled); pendingMessageCount.setEnabled(enabled); expiredMessageCount.setEnabled(enabled); messageWaitTime.setEnabled(enabled); }
/** * @return the maximum time it takes to store a message on this destination (ms) */ public long getMaxEnqueueTime() { return destination.getDestinationStatistics().getProcessTime().getMaxTime(); }
@Override public double getRate() { return timeStatistic.getAveragePerSecond(); }
/** * @return the average number of steps per second excluding the min & max values */ public double getAveragePerSecondExcludingMinMax() { double d = 1000; double average = getAverageTimeExcludingMinMax(); if (average == 0) { return 0; } return d / average; }
statsMessage.setLong("memoryUsage", dest.getMemoryUsage().getUsage()); statsMessage.setLong("memoryLimit", dest.getMemoryUsage().getLimit()); statsMessage.setDouble("averageEnqueueTime", stats.getProcessTime().getAverageTime()); statsMessage.setDouble("maxEnqueueTime", stats.getProcessTime().getMaxTime()); statsMessage.setDouble("minEnqueueTime", stats.getProcessTime().getMinTime()); statsMessage.setLong("consumerCount", stats.getConsumers().getCount()); statsMessage.setLong("producerCount", stats.getProducers().getCount()); statsMessage.setLong("tempUsage", systemUsage.getTempUsage().getUsage()); statsMessage.setLong("tempLimit", systemUsage.getTempUsage().getLimit()); statsMessage.setDouble("averageEnqueueTime", stats.getProcessTime().getAverageTime()); statsMessage.setDouble("maxEnqueueTime", stats.getProcessTime().getMaxTime()); statsMessage.setDouble("minEnqueueTime", stats.getProcessTime().getMinTime()); statsMessage.setLong("consumerCount", stats.getConsumers().getCount()); statsMessage.setLong("producerCount", stats.getProducers().getCount());
/** * @return the average time it takes to store a message on this destination (ms) */ public double getAverageEnqueueTime() { return destination.getDestinationStatistics().getProcessTime().getAverageTime(); }
messagesCached.setParent(parent.messagesCached); messages.setParent(parent.messages); processTime.setParent(parent.processTime); blockedSends.setParent(parent.blockedSends); blockedTime.setParent(parent.blockedTime); messageSize.setParent(parent.messageSize); } else { messagesCached.setParent(null); messages.setParent(null); processTime.setParent(null); blockedSends.setParent(null); blockedTime.setParent(null); messageSize.setParent(null);
public void setEnabled(boolean enabled) { super.setEnabled(enabled); enqueues.setEnabled(enabled); dispatched.setEnabled(enabled); dequeues.setEnabled(enabled); forwards.setEnabled(enabled); inflight.setEnabled(enabled); expired.setEnabled(true); consumers.setEnabled(enabled); producers.setEnabled(enabled); messages.setEnabled(enabled); messagesCached.setEnabled(enabled); processTime.setEnabled(enabled); blockedSends.setEnabled(enabled); blockedTime.setEnabled(enabled); messageSize.setEnabled(enabled); }
public synchronized void addTime(long time) { count++; totalTime += time; if (time > maxTime) { maxTime = time; } if (time < minTime || minTime == 0) { minTime = time; } updateSampleTime(); if (parent != null) { parent.addTime(time); } }
@Override public long getMaxEnqueueTime() { return destination.getDestinationStatistics().getProcessTime().getMaxTime(); }
@Override public double getRate() { return timeStatistic.getAveragePerSecond(); }