All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.stone.beecp.springboot.DataSourceMonitorConfig Maven / Gradle / Ivy

/*
 * Copyright Chris2018998
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.stone.beecp.springboot;

import org.stone.beecp.springboot.monitor.DataSourceMonitor;
import org.stone.beecp.springboot.statement.StatementTraceAlert;

import java.util.concurrent.TimeUnit;

import static org.stone.tools.CommonUtil.isNotBlank;

/*
 *  monitor config
 *
 * spring.datasource.monitor-userId=admin
 * spring.datasource.monitor-password=admin
 *
 * spring.datasource.sql-trace=true
 * spring.datasource.sql-show=true
 * spring.datasource.sql-trace-max-size=100
 * spring.datasource.sql-exec-slow-time=5000
 * spring.datasource.sql-trace-timeout=60000
 * spring.datasource.sql-exec-alert-action=xxxxx
 * spring.datasource.sql-trace-timeout-scan-period=18000
 *
 * spring.datasource.redis-host=192.168.1.1
 * spring.datasource.redis-port=6379
 * spring.datasource.redis-password=redis
 * spring.datasource.redis-send-period=18000
 * spring.datasource.redis-read-period=18000
 *
 * spring.datasource.jsonToolClassName=JackSonTool
 *
 * @author Chris Liao
 */
public class DataSourceMonitorConfig {
    static DataSourceMonitorConfig single;

    //*********************************sql trace config begin *********************************************************//
    private boolean sqlShow;
    private boolean sqlTrace;
    private int sqlTraceMaxSize = 100;
    private long sqlExecSlowTime = TimeUnit.SECONDS.toMillis(6);
    private long sqlTraceTimeout = TimeUnit.MINUTES.toMillis(3);
    private long sqlTraceTimeoutScanPeriod = TimeUnit.MINUTES.toMillis(3);
    private StatementTraceAlert sqlExecAlertAction;

    //*********************************sql trace config end***********************************************************//

    //*********************************monitor config begin **********************************************************//
    private String consoleUserId;
    private String consolePassword;
    private String monitorLoggedInTagName = DataSourceMonitor.class.getName();
    //*********************************monitor config end************************************************************//

    //*********************************redis config begin ************************************************************//
    private String redisHost;
    private int redisPort = 6379;
    private int redisTimeoutMs = 2000;
    private String redisUserId;
    private String redisPassword;
    private long redisSendPeriod = TimeUnit.MINUTES.toMillis(3);//node send
    private long redisReadPeriod = TimeUnit.MINUTES.toMillis(3);//center read
    //*********************************redis config end***************************************************************//

    //*********************************other config begin ************************************************************//
    private String jsonToolClassName;
    //*********************************other config end**********************************************************

    public boolean isSqlShow() {
        return sqlShow;
    }

    public void setSqlShow(boolean sqlShow) {
        this.sqlShow = sqlShow;
    }

    public boolean isSqlTrace() {
        return sqlTrace;
    }

    public void setSqlTrace(boolean sqlTrace) {
        this.sqlTrace = sqlTrace;
    }

    public int getSqlTraceMaxSize() {
        return sqlTraceMaxSize;
    }

    public void setSqlTraceMaxSize(int sqlTraceMaxSize) {
        if (sqlTraceMaxSize > 0) this.sqlTraceMaxSize = sqlTraceMaxSize;
    }

    public long getSqlTraceTimeout() {
        return sqlTraceTimeout;
    }

    public void setSqlTraceTimeout(long sqlTraceTimeout) {
        if (sqlTraceTimeout > 0)
            this.sqlTraceTimeout = sqlTraceTimeout;
    }

    public long getSqlExecSlowTime() {
        return sqlExecSlowTime;
    }

    public void setSqlExecSlowTime(long sqlExecSlowTime) {
        if (sqlExecSlowTime > 0)
            this.sqlExecSlowTime = sqlExecSlowTime;
    }

    public long getSqlTraceTimeoutScanPeriod() {
        return sqlTraceTimeoutScanPeriod;
    }

    public void setSqlTraceTimeoutScanPeriod(long sqlTraceTimeoutScanPeriod) {
        if (sqlTraceTimeoutScanPeriod > 0)
            this.sqlTraceTimeoutScanPeriod = sqlTraceTimeoutScanPeriod;
    }

    public StatementTraceAlert getSqlExecAlertAction() {
        return sqlExecAlertAction;
    }

    public void setSqlExecAlertAction(StatementTraceAlert sqlExecAlertAction) {
        if (sqlExecAlertAction != null) this.sqlExecAlertAction = sqlExecAlertAction;
    }

    public String getConsoleUserId() {
        return consoleUserId;
    }

    public void setConsoleUserId(String consoleUserId) {
        this.consoleUserId = consoleUserId;
    }

    public String getConsolePassword() {
        return consolePassword;
    }

    public void setConsolePassword(String consolePassword) {
        this.consolePassword = consolePassword;
    }

    public String getMonitorLoggedInTagName() {
        return monitorLoggedInTagName;
    }

    public void setMonitorLoggedInTagName(String monitorLoggedInTagName) {
        if (isNotBlank(monitorLoggedInTagName))
            this.monitorLoggedInTagName = monitorLoggedInTagName;
    }

    public String getRedisHost() {
        return redisHost;
    }

    public void setRedisHost(String redisHost) {
        this.redisHost = redisHost;
    }

    public int getRedisPort() {
        return redisPort;
    }

    public void setRedisPort(int redisPort) {
        if (redisPort > 0) this.redisPort = redisPort;
    }

    public int getRedisTimeoutMs() {
        return redisTimeoutMs;
    }

    public void setRedisTimeoutMs(int redisTimeoutMs) {
        if (redisTimeoutMs > 0) this.redisTimeoutMs = redisTimeoutMs;
    }

    public String getRedisUserId() {
        return redisUserId;
    }

    public void setRedisUserId(String redisUserId) {
        this.redisUserId = redisUserId;
    }

    public String getRedisPassword() {
        return redisPassword;
    }

    public void setRedisPassword(String redisPassword) {
        this.redisPassword = redisPassword;
    }

    public long getRedisSendPeriod() {
        return redisSendPeriod;
    }

    public void setRedisSendPeriod(long redisSendPeriod) {
        if (redisSendPeriod > 0)
            this.redisSendPeriod = redisSendPeriod;
    }

    public long getRedisReadPeriod() {
        return redisReadPeriod;
    }

    public void setRedisReadPeriod(long redisReadPeriod) {
        if (redisReadPeriod > 0)
            this.redisReadPeriod = redisReadPeriod;
    }

    public String getJsonToolClassName() {
        return jsonToolClassName;
    }

    public void setJsonToolClassName(String jsonToolClassName) {
        this.jsonToolClassName = jsonToolClassName;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy