[#2496] Add datasource metric collection

1. Moving class's package
2. Change TDataSource's activeConnectionSize field to optional field
This commit is contained in:
koo.taejin
2017-01-24 18:06:02 +09:00
committed by koo-taejin
parent 277df37516
commit cbf2d28fb1
18 changed files with 49 additions and 40 deletions
@@ -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;
/**
@@ -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;
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package com.navercorp.pinpoint.bootstrap.context;
package com.navercorp.pinpoint.bootstrap.plugin.monitor;
/**
* @author Taejin Koo
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package com.navercorp.pinpoint.bootstrap.context;
package com.navercorp.pinpoint.bootstrap.plugin.monitor;
/**
* @author Taejin Koo
@@ -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
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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
@@ -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
@@ -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;
@@ -47,7 +47,12 @@ public class DataSourceGauge implements Gauge<TDataSource> {
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;
@@ -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;
@@ -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;
@@ -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
@@ -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<TDataSource, TDataSource._Fields>, java.io.Serializable, Cloneable, Comparable<TDataSource> {
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<TDataSource, TDataSo
private short serviceTypeCode; // optional
private String name; // optional
private String url; // optional
private int activeConnectionSize; // required
private int activeConnectionSize; // optional
private int maxConnectionSize; // optional
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
@@ -127,7 +127,7 @@ public class TDataSource implements org.apache.thrift.TBase<TDataSource, TDataSo
private static final int __ACTIVECONNECTIONSIZE_ISSET_ID = 2;
private static final int __MAXCONNECTIONSIZE_ISSET_ID = 3;
private byte __isset_bitfield = 0;
private static final _Fields optionals[] = {_Fields.SERVICE_TYPE_CODE,_Fields.NAME,_Fields.URL,_Fields.MAX_CONNECTION_SIZE};
private static final _Fields optionals[] = {_Fields.SERVICE_TYPE_CODE,_Fields.NAME,_Fields.URL,_Fields.ACTIVE_CONNECTION_SIZE,_Fields.MAX_CONNECTION_SIZE};
public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> 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<TDataSource, TDataSo
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
tmpMap.put(_Fields.URL, new org.apache.thrift.meta_data.FieldMetaData("url", org.apache.thrift.TFieldRequirementType.OPTIONAL,
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
tmpMap.put(_Fields.ACTIVE_CONNECTION_SIZE, new org.apache.thrift.meta_data.FieldMetaData("activeConnectionSize", org.apache.thrift.TFieldRequirementType.DEFAULT,
tmpMap.put(_Fields.ACTIVE_CONNECTION_SIZE, new org.apache.thrift.meta_data.FieldMetaData("activeConnectionSize", org.apache.thrift.TFieldRequirementType.OPTIONAL,
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
tmpMap.put(_Fields.MAX_CONNECTION_SIZE, new org.apache.thrift.meta_data.FieldMetaData("maxConnectionSize", org.apache.thrift.TFieldRequirementType.OPTIONAL,
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
@@ -148,17 +148,16 @@ public class TDataSource implements org.apache.thrift.TBase<TDataSource, TDataSo
}
public TDataSource() {
this.activeConnectionSize = 0;
}
public TDataSource(
int id,
int activeConnectionSize)
int id)
{
this();
this.id = id;
setIdIsSet(true);
this.activeConnectionSize = activeConnectionSize;
setActiveConnectionSizeIsSet(true);
}
/**
@@ -190,8 +189,8 @@ public class TDataSource implements org.apache.thrift.TBase<TDataSource, TDataSo
this.serviceTypeCode = 0;
this.name = null;
this.url = null;
setActiveConnectionSizeIsSet(false);
this.activeConnectionSize = 0;
setMaxConnectionSizeIsSet(false);
this.maxConnectionSize = 0;
}
@@ -479,8 +478,8 @@ public class TDataSource implements org.apache.thrift.TBase<TDataSource, TDataSo
return false;
}
boolean this_present_activeConnectionSize = true;
boolean that_present_activeConnectionSize = true;
boolean this_present_activeConnectionSize = true && this.isSetActiveConnectionSize();
boolean that_present_activeConnectionSize = true && that.isSetActiveConnectionSize();
if (this_present_activeConnectionSize || that_present_activeConnectionSize) {
if (!(this_present_activeConnectionSize && that_present_activeConnectionSize))
return false;
@@ -524,7 +523,7 @@ public class TDataSource implements org.apache.thrift.TBase<TDataSource, TDataSo
if (present_url)
list.add(url);
boolean present_activeConnectionSize = true;
boolean present_activeConnectionSize = true && (isSetActiveConnectionSize());
list.add(present_activeConnectionSize);
if (present_activeConnectionSize)
list.add(activeConnectionSize);
@@ -654,10 +653,12 @@ public class TDataSource implements org.apache.thrift.TBase<TDataSource, TDataSo
}
first = false;
}
if (!first) sb.append(", ");
sb.append("activeConnectionSize:");
sb.append(this.activeConnectionSize);
first = false;
if (isSetActiveConnectionSize()) {
if (!first) sb.append(", ");
sb.append("activeConnectionSize:");
sb.append(this.activeConnectionSize);
first = false;
}
if (isSetMaxConnectionSize()) {
if (!first) sb.append(", ");
sb.append("maxConnectionSize:");
@@ -792,9 +793,11 @@ public class TDataSource implements org.apache.thrift.TBase<TDataSource, TDataSo
oprot.writeFieldEnd();
}
}
oprot.writeFieldBegin(ACTIVE_CONNECTION_SIZE_FIELD_DESC);
oprot.writeI32(struct.activeConnectionSize);
oprot.writeFieldEnd();
if (struct.isSetActiveConnectionSize()) {
oprot.writeFieldBegin(ACTIVE_CONNECTION_SIZE_FIELD_DESC);
oprot.writeI32(struct.activeConnectionSize);
oprot.writeFieldEnd();
}
if (struct.isSetMaxConnectionSize()) {
oprot.writeFieldBegin(MAX_CONNECTION_SIZE_FIELD_DESC);
oprot.writeI32(struct.maxConnectionSize);
+1 -1
View File
@@ -114,7 +114,7 @@ struct TDataSource {
2: optional i16 serviceTypeCode
3: optional string name
4: optional string url
5: i32 activeConnectionSize
5: optional i32 activeConnectionSize = 0
6: optional i32 maxConnectionSize
}