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