| 
					
				 | 
			
			
				@@ -0,0 +1,69 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+package com.usky.common.influx.core; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import lombok.Data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.influxdb.InfluxDB; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.influxdb.InfluxDBFactory; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.influxdb.dto.Query; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.influxdb.dto.QueryResult; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@Data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+public class InfluxDbUtils { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private String userName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private String password; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private String url; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public String database; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private String retentionPolicy; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // InfluxDB实例 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private InfluxDB influxDB; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 数据保存策略 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static String policyNamePix = "logRetentionPolicy_"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public InfluxDbUtils(String userName, String password, String url, String database, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                         String retentionPolicy) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.userName = userName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.password = password; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.url = url; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.database = database; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.retentionPolicy = retentionPolicy == null || "".equals(retentionPolicy) ? "autogen" : retentionPolicy; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.influxDB = influxDbBuild(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 连接数据库 ,若不存在则创建 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return influxDb实例 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private InfluxDB influxDbBuild() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (influxDB == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            influxDB = InfluxDBFactory.connect(url, userName, password); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            createDB(database); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            influxDB.setDatabase(database); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//          log.error("create influx db failed, error: {}", e.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } finally { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            influxDB.setRetentionPolicy(retentionPolicy); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        influxDB.setLogLevel(InfluxDB.LogLevel.BASIC); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return influxDB; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 查询 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param command 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 查询语句 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public QueryResult query(String command) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return influxDB.query(new Query(command, database)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |