/** * Utilities to instrument system latency and throughput. * * <p> * This package provides classes that can be used to instrument code to * be able to measure its latency and throughput. * <h3>Main Classes</h3> * The following are the main classes in this package that can be used * when adding instrumentation to the code. * <h4>ThreadedMetric</h4> * This class is used by the code being instrumented to instrument itself. * <p> * The code that needs to be instrumented should call various methods * in the class {@link org.marketcetera.metrics.ThreadedMetric} to allow * itself to be instrumented. * * <h4>Configurator</h4> * <p> * The instrumentation code can be configured via the * {@link org.marketcetera.metrics.Configurator} class. If not explicitly * configured, the default configuration mechanism depends on a properties * file that should be available in the classpath. * * <h4>JMX Management</h4> * <p> * The instrumentation code can also be managed via JMX by connecting to * the JVM via jconsole. Refer to * {@link org.marketcetera.metrics.ThreadedMetricMXBean} for more details on * features that can be managed via JMX. {@link org.marketcetera.metrics.JmxUtils} * class can be used to export the management interface for the instrumentation * utilities. * * <h3>Output</h3> * By default, the utility will generate csv (comma separated values) files, * that contain the metrics output, when the application is terminated. * A unique csv file is generated for each thread that had a non-empty set * of collected metrics. * <p> * The utility can be forced to dump the metrics output prior to * application termination by invoking the jmx operation * {@link org.marketcetera.metrics.ThreadedMetricMXBean#summarize(boolean)}. * * @see org.marketcetera.metrics.ThreadedMetric * @see org.marketcetera.metrics.Configurator * @see org.marketcetera.metrics.ThreadedMetricMXBean */ package org.marketcetera.metrics;