88import com .netease .nim .camellia .redis .proxy .auth .ClientIdentity ;
99import com .netease .nim .camellia .redis .proxy .conf .ProxyDynamicConf ;
1010import com .netease .nim .camellia .redis .proxy .conf .ServerConf ;
11+ import com .netease .nim .camellia .redis .proxy .monitor .CommandMonitor ;
12+ import com .netease .nim .camellia .redis .proxy .monitor .DashboardCommandMonitor ;
1113import com .netease .nim .camellia .tools .executor .CamelliaThreadFactory ;
1214import io .netty .util .internal .StringUtil ;
1315import org .slf4j .Logger ;
@@ -37,6 +39,8 @@ public class CamelliaDashboardRouteConfProvider extends RouteConfProvider {
3739 private final long defaultBid ;
3840 private final String defaultBgroup ;
3941
42+ private CommandMonitor commandMonitor ;
43+
4044 private final CamelliaApiResponse defaultResponse ;
4145 private final ConcurrentHashMap <String , CamelliaApiResponse > map = new ConcurrentHashMap <>();
4246
@@ -49,6 +53,7 @@ public CamelliaDashboardRouteConfProvider() {
4953 int connectTimeoutMillis = ProxyDynamicConf .getInt ("camellia.dashboard.connect.timeout.millis" , 10000 );
5054 int readTimeoutMillis = ProxyDynamicConf .getInt ("camellia.dashboard.read.timeout.millis" , 10000 );
5155 String headers = ProxyDynamicConf .getString ("camellia.dashboard.headers" , null );
56+
5257 Map <String , String > headerMap = new HashMap <>();
5358 if (headers != null ) {
5459 JSONObject jsonObject = JSONObject .parseObject (headers );
@@ -57,6 +62,9 @@ public CamelliaDashboardRouteConfProvider() {
5762 }
5863 }
5964 camelliaApi = CamelliaApiUtil .init (url , connectTimeoutMillis , readTimeoutMillis , headerMap );
65+ if (ProxyDynamicConf .getBoolean ("camellia.dashboard.monitor.enable" , false )) {
66+ commandMonitor = new DashboardCommandMonitor (camelliaApi );
67+ }
6068 if (defaultBid > 0 && !defaultBgroup .isEmpty ()) {
6169 defaultResponse = camelliaApi .getResourceTable (defaultBid , defaultBgroup , null );
6270 if (defaultResponse .getCode () != 200 ) {
@@ -116,6 +124,11 @@ public boolean isMultiTenantsSupport() {
116124 return dynamic ;
117125 }
118126
127+ @ Override
128+ public CommandMonitor getCommandMonitor () {
129+ return commandMonitor ;
130+ }
131+
119132 private void reload () {
120133 try {
121134 Set <String > set = new HashSet <>(map .keySet ());
0 commit comments