提交 3a06b9d2 编写于 作者: T terrymanu

fix #49

上级 b02b266c
......@@ -65,9 +65,9 @@ public class ShardingDataSource extends AbstractDataSourceAdapter {
private void initThreadLocalObjectContainer(final ShardingProperties shardingProperties) {
if (shardingProperties.getValue(ShardingPropertiesConstant.METRICS_ENABLE)) {
long metricsMillisecondPeriod = shardingProperties.getValue(ShardingPropertiesConstant.METRICS_MILLISECONDS_PERIOD);
String metricsPackageName = shardingProperties.getValue(ShardingPropertiesConstant.METRICS_PACKAGE_NAME);
threadLocalObjectContainer.initItem(new MetricsContext(metricsMillisecondPeriod, metricsPackageName));
long period = shardingProperties.getValue(ShardingPropertiesConstant.METRICS_MILLISECONDS_PERIOD);
String loggerName = shardingProperties.getValue(ShardingPropertiesConstant.METRICS_LOGGER_NAME);
threadLocalObjectContainer.initItem(new MetricsContext(period, loggerName));
}
}
......
......@@ -55,7 +55,7 @@ public enum ShardingPropertiesConstant {
* 默认值: com.dangdang.ddframe.rdb.sharding.metrics
* </p>
*/
METRICS_PACKAGE_NAME("metrics.package.name", "com.dangdang.ddframe.rdb.sharding.metrics", String.class),
METRICS_LOGGER_NAME("metrics.logger.name", "com.dangdang.ddframe.rdb.sharding.metrics", String.class),
/**
* 最小空闲工作线程数量.
......
......@@ -35,10 +35,10 @@ public final class MetricsContext {
private final MetricRegistry metricRegistry;
public MetricsContext(final long period, final String packageName) {
public MetricsContext(final long period, final String loggerName) {
metricRegistry = new MetricRegistry();
Slf4jReporter reporter = Slf4jReporter.forRegistry(metricRegistry)
.outputTo(LoggerFactory.getLogger(packageName))
.outputTo(LoggerFactory.getLogger(loggerName))
.convertRatesTo(TimeUnit.SECONDS)
.convertDurationsTo(TimeUnit.MILLISECONDS)
.withLoggingLevel(LoggingLevel.DEBUG)
......
......@@ -36,7 +36,7 @@ public final class ShardingPropertiesTest {
public void setUp() {
prop.put(ShardingPropertiesConstant.METRICS_ENABLE.getKey(), "true");
prop.put(ShardingPropertiesConstant.METRICS_MILLISECONDS_PERIOD.getKey(), "1000");
prop.put(ShardingPropertiesConstant.METRICS_PACKAGE_NAME.getKey(), "example");
prop.put(ShardingPropertiesConstant.METRICS_LOGGER_NAME.getKey(), "example");
prop.put(ShardingPropertiesConstant.EXECUTOR_MAX_SIZE.getKey(), "10");
shardingProperties = new ShardingProperties(prop);
}
......@@ -46,11 +46,11 @@ public final class ShardingPropertiesTest {
ShardingProperties shardingProperties = new ShardingProperties(new Properties());
boolean actualMetricsEnabled = shardingProperties.getValue(ShardingPropertiesConstant.METRICS_ENABLE);
long actualMetricsMillisecondsPeriod = shardingProperties.getValue(ShardingPropertiesConstant.METRICS_MILLISECONDS_PERIOD);
String actualMetricsPackageName = shardingProperties.getValue(ShardingPropertiesConstant.METRICS_PACKAGE_NAME);
String actualMetricsPackageName = shardingProperties.getValue(ShardingPropertiesConstant.METRICS_LOGGER_NAME);
int executorMaxSize = shardingProperties.getValue(ShardingPropertiesConstant.EXECUTOR_MAX_SIZE);
assertThat(actualMetricsEnabled, is(Boolean.valueOf(ShardingPropertiesConstant.METRICS_ENABLE.getDefaultValue())));
assertThat(actualMetricsMillisecondsPeriod, is(Long.valueOf(ShardingPropertiesConstant.METRICS_MILLISECONDS_PERIOD.getDefaultValue())));
assertThat(actualMetricsPackageName, is(ShardingPropertiesConstant.METRICS_PACKAGE_NAME.getDefaultValue()));
assertThat(actualMetricsPackageName, is(ShardingPropertiesConstant.METRICS_LOGGER_NAME.getDefaultValue()));
assertThat(executorMaxSize, is(Integer.valueOf(ShardingPropertiesConstant.EXECUTOR_MAX_SIZE.getDefaultValue())));
}
......@@ -74,7 +74,7 @@ public final class ShardingPropertiesTest {
@Test
public void assertGetValueForString() {
String actualMetricsPackageName = shardingProperties.getValue(ShardingPropertiesConstant.METRICS_PACKAGE_NAME);
String actualMetricsPackageName = shardingProperties.getValue(ShardingPropertiesConstant.METRICS_LOGGER_NAME);
assertThat(actualMetricsPackageName, is("example"));
}
......
......@@ -106,7 +106,7 @@ defaultTableStrategy: 默认数据表分片策略
props: 属性配置(可选)
metrics.enable: 是否开启度量采集,默认值: false
metrics.millisecond.period: 度量输出周期,单位: 毫秒,默认值: 30000毫秒
metrics.package.name: 度量输出在日志中的标识名称,默认值: com.dangdang.ddframe.rdb.sharding.metrics
metrics.logger.name: 度量输出在日志中的标识名称,默认值: com.dangdang.ddframe.rdb.sharding.metrics
executor.min.idle.size: 最小空闲工作线程数量,默认值: 0
executor.max.size: 最大工作线程数量,默认值: CPU核数乘2
executor.max.idle.timeout.millisecond: 工作线程空闲时超时时间,单位: 毫秒,默认值: 60000毫秒
......@@ -265,7 +265,7 @@ props: 属性配置(可选)
| ------------------------------------ | ------------ | ---------- | -----| ------------------------------------|
| metrics.enable | 属性 | boolean | 否 | 是否开启度量采集,默认为false不开启 |
| metrics.millisecond.period | 属性 | String | 否 | 度量输出周期,单位为毫秒 |
| metrics.package.name | 属性 | String | 否 | 度量输出在日志中的标识名称 |
| metrics.logger.name | 属性 | String | 否 | 度量输出在日志中的标识名称 |
| executor.min.idle.size | 属性 | int | 否 | 最小空闲工作线程数量 |
| executor.max.size | 属性 | int | 否 | 最大工作线程数量 |
| executor.max.idle.timeout.millisecond| 属性 | int | 否 | 工作线程空闲时超时时间,默认以毫秒为单位 |
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册