public void monitorCreated(Monitor monitor) { StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace(); String attributeValue = null; for (StackTraceElement stackTraceElement : stackTrace) { String className = stackTraceElement.getClassName(); if (className.startsWith("com.orbitz") && !className.startsWith("com.orbitz.monitoring")) { attributeValue = stackTraceElement.toString(); break; } } if (attributeValue != null) { monitor.set("stackTraceElement", attributeValue); } }
public void monitorStarted(Monitor monitor) { if (enabled && TransactionMonitor.class.isAssignableFrom(monitor.getClass())) { ThreadMXBean tmxbean = ManagementFactory.getThreadMXBean(); long id = Thread.currentThread().getId(); ThreadInfo threadInfo = tmxbean.getThreadInfo(id); monitor.set("startBlockedCount", threadInfo.getBlockedCount()); monitor.set("startBlockedTime", threadInfo.getBlockedTime()); monitor.set("startWaitedCount", threadInfo.getWaitedCount()); monitor.set("startWaitedTime", threadInfo.getWaitedTime()); } }
@Override public void monitorStarted(final Monitor monitor) { if (enabled && TransactionMonitor.class.isAssignableFrom(monitor.getClass())) { ThreadMXBean tmxbean = ManagementFactory.getThreadMXBean(); monitor.set("startCPUTime", tmxbean.getCurrentThreadCpuTime()); } }
@Override public void process(final Monitor monitor) { if (enabled && TransactionMonitor.class.isAssignableFrom(monitor.getClass())) { ThreadMXBean tmxbean = ManagementFactory.getThreadMXBean(); long endTime = tmxbean.getCurrentThreadCpuTime(); monitor.set("endCPUTime", endTime); long diff = endTime - monitor.getAsLong("startCPUTime"); double cpuTimeMillis = diff / 1000000.0; if (log.isDebugEnabled()) { log.debug("cpuTimeMillis=" + cpuTimeMillis); } monitor.set("cpuTimeMillis", cpuTimeMillis); } }
@Override public void process(final Monitor monitor) { if (isEnabled && TransactionMonitor.class.isAssignableFrom(monitor.getClass())) { String name = monitor.getAsString(Attribute.NAME); synchronized (map) { Integer cnt = map.get(name); if (cnt == null) { log.warn("No count available for Monitor named " + name); } else { int count = cnt.intValue(); map.put(name, Integer.valueOf(count - 1)); monitor.set("concurrencyCount", count); } } } }
public void process(Monitor monitor) { if (CompositeMonitor.class.isAssignableFrom(monitor.getClass()) && !monitor.hasAttribute("resultCode")) { if (monitor.hasAttribute("failureThrowable")) { Throwable t = (Throwable) monitor.get("failureThrowable"); while (t.getCause() != null) { t = t.getCause(); } monitor.set("resultCode", t.getClass().getName()); } else { monitor.set("resultCode", "success"); } } } }
public void initMonitor(final Monitor monitor, final boolean includeInheritables) { if (!isEnabled()) { return; } monitor.set(Attribute.CREATED_AT, new Date()).serializable().lock(); final String threadId = Integer.toHexString(Thread.currentThread().hashCode()); monitor.set(Attribute.THREAD_ID, threadId).serializable().lock(); inheritGlobals(monitor); if (includeInheritables) { inheritAttributesFromAncestors(monitor); } }
private void inheritGlobals(final Monitor monitor) { for (final Iterator it = globalAttributes.getAllAttributeHolders().entrySet().iterator(); it .hasNext();) { final Map.Entry entry = (Map.Entry)it.next(); final String key = (String)entry.getKey(); final AttributeHolder holder = (AttributeHolder)entry.getValue(); final Object value = holder.getValue(); final AttributeHolder attribute = monitor.set(key, value); if (holder.isSerializable()) { attribute.serializable(); } if (holder.isLocked()) { attribute.lock(); } } }
private void inheritAttributesFromAncestors(final Monitor monitor) { // Inherit from parent if not set. final Map attrs = getInheritableAttributes(); for (final Iterator it = attrs.entrySet().iterator(); it.hasNext();) { final Map.Entry entry = (Map.Entry)it.next(); final String key = (String)entry.getKey(); final AttributeHolder parentAttribute = (AttributeHolder)entry.getValue(); if (!monitor.hasAttribute(key)) { final Object value = parentAttribute.getValue(); final AttributeHolder childAttribute = monitor.set(key, value); if (parentAttribute.isSerializable()) { childAttribute.serializable(); } if (parentAttribute.isLocked()) { childAttribute.lock(); } } } }