diff --git a/collector/pom.xml b/collector/pom.xml index 92b9b41..b122e87 100644 --- a/collector/pom.xml +++ b/collector/pom.xml @@ -109,6 +109,13 @@ mssql-jdbc 10.2.0.jre8 + + + + com.oracle + ojdbc6 + 11.2.0.3 + \ No newline at end of file diff --git a/collector/src/main/java/com/usthe/collector/collect/database/JdbcCommonCollect.java b/collector/src/main/java/com/usthe/collector/collect/database/JdbcCommonCollect.java index 0e852f4..e143781 100644 --- a/collector/src/main/java/com/usthe/collector/collect/database/JdbcCommonCollect.java +++ b/collector/src/main/java/com/usthe/collector/collect/database/JdbcCommonCollect.java @@ -285,6 +285,10 @@ public class JdbcCommonCollect extends AbstractCollect { url = "jdbc:sqlserver://" + jdbcProtocol.getHost() + ":" + jdbcProtocol.getPort() + ";" + (jdbcProtocol.getDatabase() == null ? "" : "DatabaseName=" + jdbcProtocol.getDatabase()); break; + case "oracle": + url = "jdbc:oracle:thin:@" + jdbcProtocol.getHost() + ":" + jdbcProtocol.getPort() + + "/" + (jdbcProtocol.getDatabase() == null ? "" : jdbcProtocol.getDatabase()); + break; default: throw new IllegalArgumentException("Not support database platform: " + jdbcProtocol.getPlatform()); diff --git a/collector/src/main/java/com/usthe/collector/collect/database/JdbcSpiLoader.java b/collector/src/main/java/com/usthe/collector/collect/database/JdbcSpiLoader.java index 32d80be..02a1a3d 100644 --- a/collector/src/main/java/com/usthe/collector/collect/database/JdbcSpiLoader.java +++ b/collector/src/main/java/com/usthe/collector/collect/database/JdbcSpiLoader.java @@ -23,6 +23,7 @@ public class JdbcSpiLoader implements CommandLineRunner { Class.forName("com.mysql.cj.jdbc.Driver"); Class.forName("org.postgresql.Driver"); Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); + Class.forName("oracle.jdbc.driver.OracleDriver"); } catch (Exception e) { log.error("load jdbc error: {}", e.getMessage(), e); } diff --git a/manager/src/main/resources/define/app/oracle.yml b/manager/src/main/resources/define/app/oracle.yml new file mode 100644 index 0000000..03902d4 --- /dev/null +++ b/manager/src/main/resources/define/app/oracle.yml @@ -0,0 +1,52 @@ +category: db +app: oracle +name: + zh-CN: Oracle数据库 + en-US: Oracle DB +# 参数映射map. type是参数类型: 0-number数字, 1-string明文字符串, 2-secret加密字符串 +# 强制固定必须参数 - host +configmap: + - key: host + type: 1 + - key: port + type: 0 + - key: username + type: 1 + - key: password + type: 2 + - key: database + type: 1 + - key: timeout + type: 0 + - key: url + type: 1 +# 指标组列表 +metrics: + - name: basic + # 指标组调度优先级(0-127)越小优先级越高,优先级低的指标组会等优先级高的指标组采集完成后才会被调度,相同优先级的指标组会并行调度采集 + # 优先级为0的指标组为可用性指标组,即它会被首先调度,采集成功才会继续调度其它指标组,采集失败则中断调度 + priority: 0 + # 指标组中的具体监控指标 + fields: + # 指标信息 包括 field名称 type字段类型:0-number数字,1-string字符串 instance是否为实例主键 unit:指标单位 + - field: DST_PRIMARY_TT_VERSION + type: 1 + instance: true + - field: NLS_RDBMS_VERSION + type: 1 + protocol: jdbc + jdbc: + # 主机host: ipv4 ipv6 域名 + host: ^_^host^_^ + # 端口 + port: ^_^port^_^ + platform: oracle + username: ^_^username^_^ + password: ^_^password^_^ + database: ^_^database^_^ + timeout: ^_^timeout^_^ + # SQL查询方式: oneRow, multiRow, columns + queryType: columns + # sql + sql: select * from sys.props$ + url: ^_^url^_^ diff --git a/manager/src/main/resources/define/param/oracle.yml b/manager/src/main/resources/define/param/oracle.yml new file mode 100644 index 0000000..d967881 --- /dev/null +++ b/manager/src/main/resources/define/param/oracle.yml @@ -0,0 +1,36 @@ +app: oracle +param: + - field: host + name: 主机Host + type: host + required: true + - field: port + name: 端口 + type: number + range: '[0,65535]' + required: true + defaultValue: 3306 + placeholder: '请输入端口' + - field: timeout + name: 查询超时时间 + type: number + required: false + defaultValue: 3000 + placeholder: '查询超时时间' + - field: database + name: 数据库名称 + type: text + required: false + - field: username + name: 用户名 + type: text + limit: 20 + required: false + - field: password + name: 密码 + type: password + required: false + - field: url + name: URL + type: text + required: false \ No newline at end of file