[3/3] git commit: PHOENIX-177: Collect usage and performance metrics
PHOENIX-177: Collect usage and performance metrics Add basic Dapper-like tracing (using Cloudera's HTrace library) to phoenix requests. This is the basic infrastructure to support more holistic, non-profiler based analysis. This patch includes, among other things, the infrastructure to use HTrace, async-tracing handling via the Hadoop metrics2 framework, and trace read/write to a phoenix table. Currently, do NOT support Hadoop1 (though does work against Hadoop1). Default builds to hadoop2, rather than hadoop1 (particularly as hadoop1 is now a second-class citizen). Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/b7f46c10 Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/b7f46c10 Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/b7f46c10 Branch: refs/heads/master Commit: b7f46c1051de3e23630dccb82677a0a16985f27c Parents: 9185f76 Author: Jesse Yates Authored: Fri Jun 6 16:11:32 2014 -0700 Committer: Jesse Yates Committed: Mon Jul 28 06:37:49 2014 -0700 -- phoenix-core/pom.xml| 47 +-- .../apache/phoenix/trace/BaseTracingTestIT.java | 117 ++ .../phoenix/trace/DelegatingConnection.java | 328 +++ .../phoenix/trace/DisableableMetricsWriter.java | 83 .../trace/Hadoop1TracingTestEnabler.java| 86 .../apache/phoenix/trace/PhoenixMetricImpl.java | 44 ++ .../phoenix/trace/PhoenixMetricRecordImpl.java | 71 .../trace/PhoenixTableMetricsWriterIT.java | 119 ++ .../apache/phoenix/trace/PhoenixTagImpl.java| 52 +++ .../phoenix/trace/PhoenixTracingEndToEndIT.java | 401 +++ .../apache/phoenix/trace/TraceReaderTest.java | 181 + .../org/apache/phoenix/call/CallRunner.java | 66 +++ .../org/apache/phoenix/call/CallWrapper.java| 29 ++ .../coprocessor/BaseScannerRegionObserver.java | 36 +- .../coprocessor/DelegateRegionScanner.java | 78 .../apache/phoenix/execute/BasicQueryPlan.java | 17 +- .../apache/phoenix/execute/MutationState.java | 24 +- .../org/apache/phoenix/hbase/index/Indexer.java | 39 ++ .../phoenix/iterate/ParallelIterators.java | 5 +- .../apache/phoenix/jdbc/PhoenixConnection.java | 38 +- .../apache/phoenix/jdbc/PhoenixStatement.java | 25 +- .../trace/PhoenixTableMetricsWriter.java| 255 .../org/apache/phoenix/trace/TraceReader.java | 375 + .../apache/phoenix/trace/TracingIterator.java | 58 +++ .../trace/util/ConfigurationAdapter.java| 56 +++ .../org/apache/phoenix/trace/util/NullSpan.java | 112 ++ .../org/apache/phoenix/trace/util/Tracing.java | 282 + .../phoenix/util/PhoenixContextExecutor.java| 23 ++ .../java/org/apache/phoenix/util/QueryUtil.java | 29 ++ .../test/resources/hadoop-metrics2.properties | 25 ++ .../src/test/resources/log4j.properties | 4 +- phoenix-hadoop-compat/pom.xml | 31 +- .../org/apache/phoenix/metrics/MetricInfo.java | 51 +++ .../org/apache/phoenix/metrics/Metrics.java | 39 ++ .../apache/phoenix/metrics/MetricsManager.java | 58 +++ .../apache/phoenix/metrics/MetricsWriter.java | 31 ++ .../phoenix/metrics/PhoenixAbstractMetric.java | 30 ++ .../phoenix/metrics/PhoenixMetricTag.java | 27 ++ .../phoenix/metrics/PhoenixMetricsRecord.java | 35 ++ .../phoenix/trace/PhoenixSpanReceiver.java | 26 ++ .../phoenix/trace/TestableMetricsWriter.java| 30 ++ .../org/apache/phoenix/trace/TracingCompat.java | 94 + .../org/apache/phoenix/metrics/LoggingSink.java | 56 +++ .../phoenix/metrics/TracingTestCompat.java | 45 +++ phoenix-hadoop2-compat/pom.xml | 47 ++- .../phoenix/metrics/MetricsManagerImpl.java | 71 .../apache/phoenix/trace/MetricsInfoImpl.java | 63 +++ .../phoenix/trace/PhoenixMetricsWriter.java | 176 .../apache/phoenix/trace/TraceMetricSource.java | 192 + .../org.apache.phoenix.metrics.MetricsManager | 1 + ...org.apache.phoenix.trace.PhoenixSpanReceiver | 1 + ...g.apache.phoenix.trace.TestableMetricsWriter | 1 + .../metrics2/impl/ExposedMetricCounterLong.java | 35 ++ .../metrics2/impl/ExposedMetricsRecordImpl.java | 43 ++ .../metrics2/lib/ExposedMetricsInfoImpl.java| 32 ++ .../phoenix/trace/PhoenixMetricsWriterTest.java | 142 +++ .../org/apache/phoenix/trace/TracingTest.java | 34 ++ pom.xml | 40 +- 58 files changed, 4479 insertions(+), 57 deletions(-) -- http://git-wip-us.apache.org/repos/asf/phoenix/blob/b7f46c10/phoenix-core/pom.xml -- diff --git a/phoenix-core/pom.xml b/phoenix-core/pom.xml index f5c3ace..cfdee95 100644 --- a/p
[3/3] git commit: PHOENIX-177: Collect usage and performance metrics
PHOENIX-177: Collect usage and performance metrics Add basic Dapper-like tracing (using Cloudera's HTrace library) to phoenix requests. This is the basic infrastructure to support more holistic, non-profiler based analysis. This patch includes, among other things, the infrastructure to use HTrace, async-tracing handling via the Hadoop metrics2 framework, and trace read/write to a phoenix table. Currently, do NOT support Hadoop1 (though does work against Hadoop1). Default builds to hadoop2, rather than hadoop1 (particularly as hadoop1 is now a second-class citizen). Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/e8def027 Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/e8def027 Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/e8def027 Branch: refs/heads/4.0 Commit: e8def027a9c60e978ac79acbc6c71979e7478a43 Parents: 083c5f2 Author: Jesse Yates Authored: Fri Jun 6 16:11:32 2014 -0700 Committer: Jesse Yates Committed: Mon Jul 28 06:38:20 2014 -0700 -- phoenix-core/pom.xml| 47 +-- .../apache/phoenix/trace/BaseTracingTestIT.java | 117 ++ .../phoenix/trace/DelegatingConnection.java | 328 +++ .../phoenix/trace/DisableableMetricsWriter.java | 83 .../trace/Hadoop1TracingTestEnabler.java| 86 .../apache/phoenix/trace/PhoenixMetricImpl.java | 44 ++ .../phoenix/trace/PhoenixMetricRecordImpl.java | 71 .../trace/PhoenixTableMetricsWriterIT.java | 119 ++ .../apache/phoenix/trace/PhoenixTagImpl.java| 52 +++ .../phoenix/trace/PhoenixTracingEndToEndIT.java | 401 +++ .../apache/phoenix/trace/TraceReaderTest.java | 181 + .../org/apache/phoenix/call/CallRunner.java | 66 +++ .../org/apache/phoenix/call/CallWrapper.java| 29 ++ .../coprocessor/BaseScannerRegionObserver.java | 36 +- .../coprocessor/DelegateRegionScanner.java | 78 .../apache/phoenix/execute/BasicQueryPlan.java | 17 +- .../apache/phoenix/execute/MutationState.java | 24 +- .../org/apache/phoenix/hbase/index/Indexer.java | 39 ++ .../phoenix/iterate/ParallelIterators.java | 5 +- .../apache/phoenix/jdbc/PhoenixConnection.java | 38 +- .../apache/phoenix/jdbc/PhoenixStatement.java | 25 +- .../trace/PhoenixTableMetricsWriter.java| 255 .../org/apache/phoenix/trace/TraceReader.java | 375 + .../apache/phoenix/trace/TracingIterator.java | 58 +++ .../trace/util/ConfigurationAdapter.java| 56 +++ .../org/apache/phoenix/trace/util/NullSpan.java | 112 ++ .../org/apache/phoenix/trace/util/Tracing.java | 282 + .../phoenix/util/PhoenixContextExecutor.java| 23 ++ .../java/org/apache/phoenix/util/QueryUtil.java | 29 ++ .../test/resources/hadoop-metrics2.properties | 25 ++ .../src/test/resources/log4j.properties | 4 +- phoenix-hadoop-compat/pom.xml | 29 +- .../org/apache/phoenix/metrics/MetricInfo.java | 51 +++ .../org/apache/phoenix/metrics/Metrics.java | 39 ++ .../apache/phoenix/metrics/MetricsManager.java | 58 +++ .../apache/phoenix/metrics/MetricsWriter.java | 31 ++ .../phoenix/metrics/PhoenixAbstractMetric.java | 30 ++ .../phoenix/metrics/PhoenixMetricTag.java | 27 ++ .../phoenix/metrics/PhoenixMetricsRecord.java | 35 ++ .../phoenix/trace/PhoenixSpanReceiver.java | 26 ++ .../phoenix/trace/TestableMetricsWriter.java| 30 ++ .../org/apache/phoenix/trace/TracingCompat.java | 94 + .../org/apache/phoenix/metrics/LoggingSink.java | 56 +++ .../phoenix/metrics/TracingTestCompat.java | 45 +++ phoenix-hadoop2-compat/pom.xml | 45 +++ .../phoenix/metrics/MetricsManagerImpl.java | 71 .../apache/phoenix/trace/MetricsInfoImpl.java | 63 +++ .../phoenix/trace/PhoenixMetricsWriter.java | 176 .../apache/phoenix/trace/TraceMetricSource.java | 192 + .../org.apache.phoenix.metrics.MetricsManager | 1 + ...org.apache.phoenix.trace.PhoenixSpanReceiver | 1 + ...g.apache.phoenix.trace.TestableMetricsWriter | 1 + .../metrics2/impl/ExposedMetricCounterLong.java | 35 ++ .../metrics2/impl/ExposedMetricsRecordImpl.java | 43 ++ .../metrics2/lib/ExposedMetricsInfoImpl.java| 32 ++ .../phoenix/trace/PhoenixMetricsWriterTest.java | 142 +++ .../org/apache/phoenix/trace/TracingTest.java | 34 ++ pom.xml | 40 +- 58 files changed, 4477 insertions(+), 55 deletions(-) -- http://git-wip-us.apache.org/repos/asf/phoenix/blob/e8def027/phoenix-core/pom.xml -- diff --git a/phoenix-core/pom.xml b/phoenix-core/pom.xml index 5f55e29..af6dcb6 100644 --- a/phoe