mirror of
https://github.com/alibaba/canal.git
synced 2026-11-04 00:30:15 +08:00
add druid stat filter (#3985)
This commit is contained in:
@@ -0,0 +1,23 @@
|
|||||||
|
package com.alibaba.otter.canal.adapter.launcher.config;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.springframework.boot.web.servlet.ServletRegistrationBean;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
|
import com.alibaba.druid.support.http.StatViewServlet;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
public class DruidConfig {
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public ServletRegistrationBean<StatViewServlet> statViewServlet(){
|
||||||
|
ServletRegistrationBean<StatViewServlet> bean = new ServletRegistrationBean<>( new StatViewServlet(),"/druid/*");
|
||||||
|
Map<String,String> initParams = new HashMap<>();
|
||||||
|
initParams.put("allow","");
|
||||||
|
bean.setInitParameters(initParams);
|
||||||
|
return bean;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,6 +2,7 @@ package com.alibaba.otter.canal.client.adapter.rdb;
|
|||||||
|
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -13,6 +14,7 @@ import org.apache.commons.lang.StringUtils;
|
|||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import com.alibaba.druid.filter.stat.StatFilter;
|
||||||
import com.alibaba.druid.pool.DruidDataSource;
|
import com.alibaba.druid.pool.DruidDataSource;
|
||||||
import com.alibaba.druid.util.JdbcUtils;
|
import com.alibaba.druid.util.JdbcUtils;
|
||||||
import com.alibaba.otter.canal.client.adapter.OuterAdapter;
|
import com.alibaba.otter.canal.client.adapter.OuterAdapter;
|
||||||
@@ -136,6 +138,14 @@ public class RdbAdapter implements OuterAdapter {
|
|||||||
// array.add("set names utf8mb4;");
|
// array.add("set names utf8mb4;");
|
||||||
// dataSource.setConnectionInitSqls(array);
|
// dataSource.setConnectionInitSqls(array);
|
||||||
|
|
||||||
|
if ("true".equals(properties.getOrDefault("druid.stat.enable", "true"))) {
|
||||||
|
StatFilter statFilter = new StatFilter();
|
||||||
|
statFilter.setSlowSqlMillis(Long.parseLong(properties.getOrDefault("druid.stat.slowSqlMillis", "1000")));
|
||||||
|
statFilter.setMergeSql(true);
|
||||||
|
statFilter.setLogSlowSql(true);
|
||||||
|
dataSource.setProxyFilters(Collections.singletonList(statFilter));
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
dataSource.init();
|
dataSource.init();
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
|
|||||||
Reference in New Issue
Block a user