From cbf2d28fb1d0887e5fa791bf3349624aa4281a20 Mon Sep 17 00:00:00 2001 From: "koo.taejin" Date: Tue, 24 Jan 2017 17:35:26 +0900 Subject: [PATCH] [#2496] Add datasource metric collection 1. Moving class's package 2. Change TDataSource's activeConnectionSize field to optional field --- .../bootstrap/context/TraceContext.java | 1 + .../monitor}/DataSourceMonitor.java | 2 +- .../monitor}/PluginMonitorContext.java | 2 +- .../monitor}/PluginMonitorRegistry.java | 2 +- .../interceptor/MockTraceContext.java | 2 +- .../profiler/context/DefaultTraceContext.java | 2 +- .../monitor/DataSourceMonitorList.java | 4 +- .../monitor/DataSourceMonitorWrapper.java | 2 +- .../DataSourceMonitorWrapperFactory.java | 2 +- .../monitor/DefaultPluginMonitorContext.java | 6 +-- .../monitor/DisabledPluginMonitorContext.java | 6 +-- .../codahale/AgentStatCollectorFactory.java | 2 +- .../datasource/metric/DataSourceGauge.java | 7 +++- .../DefaultPluginMonitorContextTest.java | 2 +- .../DefaultDataSourceCollectorTest.java | 2 +- .../pinpoint/test/mock/MockTraceContext.java | 2 +- .../pinpoint/thrift/dto/TDataSource.java | 41 ++++++++++--------- thrift/src/main/thrift/Pinpoint.thrift | 2 +- 18 files changed, 49 insertions(+), 40 deletions(-) rename bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/{context => plugin/monitor}/DataSourceMonitor.java (94%) rename bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/{context => plugin/monitor}/PluginMonitorContext.java (92%) rename bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/{context => plugin/monitor}/PluginMonitorRegistry.java (92%) diff --git a/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/context/TraceContext.java b/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/context/TraceContext.java index 16473c8b5..d5d0fc155 100644 --- a/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/context/TraceContext.java +++ b/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/context/TraceContext.java @@ -17,6 +17,7 @@ package com.navercorp.pinpoint.bootstrap.context; import com.navercorp.pinpoint.bootstrap.config.ProfilerConfig; +import com.navercorp.pinpoint.bootstrap.plugin.monitor.PluginMonitorContext; import com.navercorp.pinpoint.common.annotations.InterfaceAudience; /** diff --git a/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/context/DataSourceMonitor.java b/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/monitor/DataSourceMonitor.java similarity index 94% rename from bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/context/DataSourceMonitor.java rename to bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/monitor/DataSourceMonitor.java index 49673ac02..b29e49aa7 100644 --- a/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/context/DataSourceMonitor.java +++ b/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/monitor/DataSourceMonitor.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.navercorp.pinpoint.bootstrap.context; +package com.navercorp.pinpoint.bootstrap.plugin.monitor; import com.navercorp.pinpoint.common.trace.ServiceType; diff --git a/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/context/PluginMonitorContext.java b/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/monitor/PluginMonitorContext.java similarity index 92% rename from bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/context/PluginMonitorContext.java rename to bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/monitor/PluginMonitorContext.java index 02d8c7904..e453001f1 100644 --- a/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/context/PluginMonitorContext.java +++ b/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/monitor/PluginMonitorContext.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.navercorp.pinpoint.bootstrap.context; +package com.navercorp.pinpoint.bootstrap.plugin.monitor; /** * @author Taejin Koo diff --git a/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/context/PluginMonitorRegistry.java b/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/monitor/PluginMonitorRegistry.java similarity index 92% rename from bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/context/PluginMonitorRegistry.java rename to bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/monitor/PluginMonitorRegistry.java index 45a5a5cbc..524bf9f66 100644 --- a/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/context/PluginMonitorRegistry.java +++ b/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/monitor/PluginMonitorRegistry.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.navercorp.pinpoint.bootstrap.context; +package com.navercorp.pinpoint.bootstrap.plugin.monitor; /** * @author Taejin Koo diff --git a/bootstrap-core/src/test/java/com/navercorp/pinpoint/bootstrap/interceptor/MockTraceContext.java b/bootstrap-core/src/test/java/com/navercorp/pinpoint/bootstrap/interceptor/MockTraceContext.java index 96abd908d..c10f8691a 100644 --- a/bootstrap-core/src/test/java/com/navercorp/pinpoint/bootstrap/interceptor/MockTraceContext.java +++ b/bootstrap-core/src/test/java/com/navercorp/pinpoint/bootstrap/interceptor/MockTraceContext.java @@ -24,7 +24,7 @@ import com.navercorp.pinpoint.bootstrap.context.ServerMetaDataHolder; import com.navercorp.pinpoint.bootstrap.context.Trace; import com.navercorp.pinpoint.bootstrap.context.TraceContext; import com.navercorp.pinpoint.bootstrap.context.TraceId; -import com.navercorp.pinpoint.bootstrap.context.PluginMonitorContext; +import com.navercorp.pinpoint.bootstrap.plugin.monitor.PluginMonitorContext; /** * @author emeroad diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/DefaultTraceContext.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/DefaultTraceContext.java index 5067df8ca..af788ba82 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/DefaultTraceContext.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/DefaultTraceContext.java @@ -24,7 +24,7 @@ import com.navercorp.pinpoint.bootstrap.context.ServerMetaDataHolder; import com.navercorp.pinpoint.bootstrap.context.Trace; import com.navercorp.pinpoint.bootstrap.context.TraceContext; import com.navercorp.pinpoint.bootstrap.context.TraceId; -import com.navercorp.pinpoint.bootstrap.context.PluginMonitorContext; +import com.navercorp.pinpoint.bootstrap.plugin.monitor.PluginMonitorContext; import com.navercorp.pinpoint.bootstrap.sampler.Sampler; import com.navercorp.pinpoint.common.annotations.InterfaceAudience; import com.navercorp.pinpoint.profiler.AgentInformation; diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/monitor/DataSourceMonitorList.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/monitor/DataSourceMonitorList.java index 65bc43fd9..99a036df3 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/monitor/DataSourceMonitorList.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/monitor/DataSourceMonitorList.java @@ -16,8 +16,8 @@ package com.navercorp.pinpoint.profiler.context.monitor; -import com.navercorp.pinpoint.bootstrap.context.DataSourceMonitor; -import com.navercorp.pinpoint.bootstrap.context.PluginMonitorRegistry; +import com.navercorp.pinpoint.bootstrap.plugin.monitor.DataSourceMonitor; +import com.navercorp.pinpoint.bootstrap.plugin.monitor.PluginMonitorRegistry; import com.navercorp.pinpoint.bootstrap.logging.PLogger; import com.navercorp.pinpoint.bootstrap.logging.PLoggerFactory; diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/monitor/DataSourceMonitorWrapper.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/monitor/DataSourceMonitorWrapper.java index 5d5ddc849..2a798b72c 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/monitor/DataSourceMonitorWrapper.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/monitor/DataSourceMonitorWrapper.java @@ -16,7 +16,7 @@ package com.navercorp.pinpoint.profiler.context.monitor; -import com.navercorp.pinpoint.bootstrap.context.DataSourceMonitor; +import com.navercorp.pinpoint.bootstrap.plugin.monitor.DataSourceMonitor; import com.navercorp.pinpoint.common.trace.ServiceType; import java.lang.ref.WeakReference; diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/monitor/DataSourceMonitorWrapperFactory.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/monitor/DataSourceMonitorWrapperFactory.java index b14bcf827..9f6aee9ce 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/monitor/DataSourceMonitorWrapperFactory.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/monitor/DataSourceMonitorWrapperFactory.java @@ -16,7 +16,7 @@ package com.navercorp.pinpoint.profiler.context.monitor; -import com.navercorp.pinpoint.bootstrap.context.DataSourceMonitor; +import com.navercorp.pinpoint.bootstrap.plugin.monitor.DataSourceMonitor; import java.util.concurrent.atomic.AtomicInteger; diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/monitor/DefaultPluginMonitorContext.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/monitor/DefaultPluginMonitorContext.java index c9ec59e0d..41741e139 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/monitor/DefaultPluginMonitorContext.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/monitor/DefaultPluginMonitorContext.java @@ -16,9 +16,9 @@ package com.navercorp.pinpoint.profiler.context.monitor; -import com.navercorp.pinpoint.bootstrap.context.DataSourceMonitor; -import com.navercorp.pinpoint.bootstrap.context.PluginMonitorContext; -import com.navercorp.pinpoint.bootstrap.context.PluginMonitorRegistry; +import com.navercorp.pinpoint.bootstrap.plugin.monitor.DataSourceMonitor; +import com.navercorp.pinpoint.bootstrap.plugin.monitor.PluginMonitorContext; +import com.navercorp.pinpoint.bootstrap.plugin.monitor.PluginMonitorRegistry; /** * @author Taejin Koo diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/monitor/DisabledPluginMonitorContext.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/monitor/DisabledPluginMonitorContext.java index 6854525b7..ea4c8df22 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/monitor/DisabledPluginMonitorContext.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/monitor/DisabledPluginMonitorContext.java @@ -16,9 +16,9 @@ package com.navercorp.pinpoint.profiler.context.monitor; -import com.navercorp.pinpoint.bootstrap.context.DataSourceMonitor; -import com.navercorp.pinpoint.bootstrap.context.PluginMonitorContext; -import com.navercorp.pinpoint.bootstrap.context.PluginMonitorRegistry; +import com.navercorp.pinpoint.bootstrap.plugin.monitor.DataSourceMonitor; +import com.navercorp.pinpoint.bootstrap.plugin.monitor.PluginMonitorContext; +import com.navercorp.pinpoint.bootstrap.plugin.monitor.PluginMonitorRegistry; /** * @author Taejin Koo diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/monitor/codahale/AgentStatCollectorFactory.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/monitor/codahale/AgentStatCollectorFactory.java index e5a7c7f68..b3c37652c 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/monitor/codahale/AgentStatCollectorFactory.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/monitor/codahale/AgentStatCollectorFactory.java @@ -18,7 +18,7 @@ package com.navercorp.pinpoint.profiler.monitor.codahale; import com.navercorp.pinpoint.bootstrap.config.DefaultProfilerConfig; import com.navercorp.pinpoint.bootstrap.config.ProfilerConfig; -import com.navercorp.pinpoint.bootstrap.context.PluginMonitorContext; +import com.navercorp.pinpoint.bootstrap.plugin.monitor.PluginMonitorContext; import com.navercorp.pinpoint.bootstrap.context.TraceContext; import com.navercorp.pinpoint.profiler.context.DefaultTraceContext; import com.navercorp.pinpoint.profiler.context.TransactionCounter; diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/monitor/codahale/datasource/metric/DataSourceGauge.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/monitor/codahale/datasource/metric/DataSourceGauge.java index 06af7b6e9..bcd18361b 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/monitor/codahale/datasource/metric/DataSourceGauge.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/monitor/codahale/datasource/metric/DataSourceGauge.java @@ -47,7 +47,12 @@ public class DataSourceGauge implements Gauge { dataSource.setUrl(jdbcUrl); } - dataSource.setActiveConnectionSize(dataSourceMonitorWrapper.getActiveConnectionSize()); + int activeConnectionSize = dataSourceMonitorWrapper.getActiveConnectionSize(); + // this field is optional (default value is 0) + if (activeConnectionSize != 0) { + dataSource.setActiveConnectionSize(activeConnectionSize); + } + dataSource.setMaxConnectionSize(dataSourceMonitorWrapper.getMaxConnectionSize()); return dataSource; diff --git a/profiler/src/test/java/com/navercorp/pinpoint/profiler/context/monitor/DefaultPluginMonitorContextTest.java b/profiler/src/test/java/com/navercorp/pinpoint/profiler/context/monitor/DefaultPluginMonitorContextTest.java index dfda2f5be..eb2a991b5 100644 --- a/profiler/src/test/java/com/navercorp/pinpoint/profiler/context/monitor/DefaultPluginMonitorContextTest.java +++ b/profiler/src/test/java/com/navercorp/pinpoint/profiler/context/monitor/DefaultPluginMonitorContextTest.java @@ -16,7 +16,7 @@ package com.navercorp.pinpoint.profiler.context.monitor; -import com.navercorp.pinpoint.bootstrap.context.DataSourceMonitor; +import com.navercorp.pinpoint.bootstrap.plugin.monitor.DataSourceMonitor; import com.navercorp.pinpoint.common.trace.ServiceType; import org.junit.Assert; import org.junit.Test; diff --git a/profiler/src/test/java/com/navercorp/pinpoint/profiler/monitor/datasource/DefaultDataSourceCollectorTest.java b/profiler/src/test/java/com/navercorp/pinpoint/profiler/monitor/datasource/DefaultDataSourceCollectorTest.java index d7d89ac78..afe366a4a 100644 --- a/profiler/src/test/java/com/navercorp/pinpoint/profiler/monitor/datasource/DefaultDataSourceCollectorTest.java +++ b/profiler/src/test/java/com/navercorp/pinpoint/profiler/monitor/datasource/DefaultDataSourceCollectorTest.java @@ -17,7 +17,7 @@ package com.navercorp.pinpoint.profiler.monitor.datasource; import com.codahale.metrics.Metric; -import com.navercorp.pinpoint.bootstrap.context.DataSourceMonitor; +import com.navercorp.pinpoint.bootstrap.plugin.monitor.DataSourceMonitor; import com.navercorp.pinpoint.common.trace.ServiceType; import com.navercorp.pinpoint.profiler.context.monitor.DataSourceMonitorList; import com.navercorp.pinpoint.profiler.monitor.codahale.datasource.DefaultDataSourceCollector; diff --git a/test/src/main/java/com/navercorp/pinpoint/test/mock/MockTraceContext.java b/test/src/main/java/com/navercorp/pinpoint/test/mock/MockTraceContext.java index 0411899a2..f9f991c23 100644 --- a/test/src/main/java/com/navercorp/pinpoint/test/mock/MockTraceContext.java +++ b/test/src/main/java/com/navercorp/pinpoint/test/mock/MockTraceContext.java @@ -25,7 +25,7 @@ import com.navercorp.pinpoint.bootstrap.context.ServerMetaDataHolder; import com.navercorp.pinpoint.bootstrap.context.Trace; import com.navercorp.pinpoint.bootstrap.context.TraceContext; import com.navercorp.pinpoint.bootstrap.context.TraceId; -import com.navercorp.pinpoint.bootstrap.context.PluginMonitorContext; +import com.navercorp.pinpoint.bootstrap.plugin.monitor.PluginMonitorContext; /** * @author emeroad diff --git a/thrift/src/main/java/com/navercorp/pinpoint/thrift/dto/TDataSource.java b/thrift/src/main/java/com/navercorp/pinpoint/thrift/dto/TDataSource.java index 17ad6698a..50e6c7ec8 100644 --- a/thrift/src/main/java/com/navercorp/pinpoint/thrift/dto/TDataSource.java +++ b/thrift/src/main/java/com/navercorp/pinpoint/thrift/dto/TDataSource.java @@ -24,7 +24,7 @@ import java.util.List; import java.util.Map; @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"}) -@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2017-1-19") +@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2017-1-24") public class TDataSource implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TDataSource"); @@ -45,7 +45,7 @@ public class TDataSource implements org.apache.thrift.TBase metaDataMap; static { Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); @@ -139,7 +139,7 @@ public class TDataSource implements org.apache.thrift.TBase