mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
add > Spring Boot Actuator DataSource metrics support, detail see issue #1799 .
This commit is contained in:
+20
@@ -18,6 +18,9 @@ package com.alibaba.druid.spring.boot.autoconfigure;
|
||||
import com.alibaba.druid.pool.DruidDataSource;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.boot.autoconfigure.jdbc.metadata.DataSourcePoolMetadata;
|
||||
import org.springframework.boot.autoconfigure.jdbc.metadata.DataSourcePoolMetadataProvider;
|
||||
import org.springframework.boot.autoconfigure.jdbc.metadata.DataSourcePoolMetadataProvidersConfiguration;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
@@ -59,4 +62,21 @@ public class DruidDataSourceAutoConfigure {
|
||||
|
||||
return dataSource;
|
||||
}
|
||||
|
||||
/**
|
||||
* Register the {@link DataSourcePoolMetadataProvider} instances to support DataSource metrics.
|
||||
* @see DataSourcePoolMetadataProvidersConfiguration
|
||||
*/
|
||||
@Bean
|
||||
public DataSourcePoolMetadataProvider druidDataSourcePoolMetadataProvider() {
|
||||
return new DataSourcePoolMetadataProvider() {
|
||||
@Override
|
||||
public DataSourcePoolMetadata getDataSourcePoolMetadata(DataSource dataSource) {
|
||||
if (dataSource instanceof DruidDataSource) {
|
||||
return new DruidDataSourcePoolMetadata((DruidDataSource)dataSource);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
package com.alibaba.druid.spring.boot.autoconfigure;
|
||||
|
||||
import com.alibaba.druid.pool.DruidDataSource;
|
||||
import org.springframework.boot.autoconfigure.jdbc.metadata.AbstractDataSourcePoolMetadata;
|
||||
import org.springframework.boot.autoconfigure.jdbc.metadata.DataSourcePoolMetadata;
|
||||
|
||||
/**
|
||||
* {@link DataSourcePoolMetadata} for a Druid DataSource.
|
||||
*
|
||||
* @author lihengming [89921218@qq.com]
|
||||
*/
|
||||
public class DruidDataSourcePoolMetadata extends AbstractDataSourcePoolMetadata<DruidDataSource> {
|
||||
/**
|
||||
* Create an instance with the data source to use.
|
||||
*
|
||||
* @param dataSource the data source
|
||||
*/
|
||||
public DruidDataSourcePoolMetadata(DruidDataSource dataSource) {
|
||||
super(dataSource);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer getActive() {
|
||||
return getDataSource().getActiveCount();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer getMax() {
|
||||
return getDataSource().getMaxActive();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer getMin() {
|
||||
return getDataSource().getMinIdle();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getValidationQuery() {
|
||||
return getDataSource().getValidationQuery();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user