Explorar o código

1. 将es的进行分区拆分

liukx %!s(int64=4) %!d(string=hai) anos
pai
achega
eec58d9102

+ 28 - 2
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/componts/ElasticSearchPartitionImpl.java

@@ -19,6 +19,7 @@ import org.elasticsearch.search.builder.SearchSourceBuilder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.util.StringUtils;
 import org.zxp.esclientrhl.annotation.ESID;
 import org.zxp.esclientrhl.index.ElasticsearchIndex;
@@ -40,6 +41,11 @@ import java.util.concurrent.ConcurrentHashMap;
 public class ElasticSearchPartitionImpl<T, M> extends ElasticsearchTemplateImpl<T, M>
     implements ElasticSearchPartition<T, M> {
 
+    @Value("${elasticsearch.enable-env-prefix:false}")
+    private boolean enableEnvPrefix;
+    @Value("${spring.profiles.active:}")
+    private String env;
+
     private Logger logger = LoggerFactory.getLogger(ElasticSearchPartitionImpl.class);
 
     private static Map<Class, String> classIDMap = new ConcurrentHashMap();
@@ -53,6 +59,7 @@ public class ElasticSearchPartitionImpl<T, M> extends ElasticsearchTemplateImpl<
     @Override
     public PageList<T> searchPartitionPage(String indexName, T t, int pageNo, int pageSize, Sort.Order[] sort)
         throws Exception {
+        indexName = getIndexName(indexName);
         QueryBuilder queryBuilder = ESUtils.beanToQueryBuilder(t);
         return searchPartitionPage(indexName, queryBuilder, pageNo, pageSize, t.getClass(), sort);
     }
@@ -60,6 +67,7 @@ public class ElasticSearchPartitionImpl<T, M> extends ElasticsearchTemplateImpl<
     @Override
     public PageList<T> searchPartitionPage(String indexName, QueryBuilder queryBuilder, int pageNo, int pageSize,
         Class clazz, Sort.Order[] sort) throws Exception {
+        indexName = getIndexName(indexName);
         Attach attach = builderAttach(pageNo, pageSize, sort);
         PageList<T> pageList = super.search(queryBuilder, attach, clazz, indexName);
         return pageList;
@@ -67,6 +75,7 @@ public class ElasticSearchPartitionImpl<T, M> extends ElasticsearchTemplateImpl<
 
     @Override
     public List<T> searchPartition(String indexName, T t) throws Exception {
+        indexName = getIndexName(indexName);
         QueryBuilder queryBuilder = ESUtils.beanToQueryBuilder(t);
         return super.search(queryBuilder, (Class<T>)t.getClass(), indexName);
     }
@@ -85,7 +94,8 @@ public class ElasticSearchPartitionImpl<T, M> extends ElasticsearchTemplateImpl<
     public List<T> search(QueryBuilder queryBuilder, Class<T> clazz, String... indexs) throws Exception {
         MetaData metaData = IndexTools.getIndexType(clazz);
         List<T> list = new ArrayList();
-        SearchRequest searchRequest = new SearchRequest(indexs);
+
+        SearchRequest searchRequest = new SearchRequest(getIndexName(indexs));
         SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
         searchSourceBuilder.query(queryBuilder);
         searchSourceBuilder.from(0);
@@ -148,7 +158,7 @@ public class ElasticSearchPartitionImpl<T, M> extends ElasticsearchTemplateImpl<
         MetaData metaData = IndexTools.getIndexType(indexEntity.getClass());
         String indexname = DataUtils.getDefaultValue(indexName, metaData.getIndexname());
         String indextype = DataUtils.getDefaultValue(metaData.getIndextype(), "");
-
+        indexname = getIndexName(indexname);
         String id = Tools.getESId(indexEntity);
         IndexRequest indexRequest = null;
         if (StringUtils.isEmpty(id)) {
@@ -184,6 +194,7 @@ public class ElasticSearchPartitionImpl<T, M> extends ElasticsearchTemplateImpl<
 
     @Override
     public BulkResponse[] saveBatchPartition(List<T> list, String indexName) throws Exception {
+        indexName = getIndexName(indexName);
         if (list != null && list.size() != 0) {
             T t = list.get(0);
             MetaData metaData = IndexTools.getIndexType(t.getClass());
@@ -215,4 +226,19 @@ public class ElasticSearchPartitionImpl<T, M> extends ElasticsearchTemplateImpl<
         this.elasticsearchIndex.rollover(clazz, true);
         return bulkResponse;
     }
+
+    private String getIndexName(String indexName) {
+        if (enableEnvPrefix) {
+            return env + "_" + indexName;
+        }
+        return indexName;
+    }
+
+    public String[] getIndexName(String... indexName) {
+        String[] indexs = new String[indexName.length];
+        for (int i = 0; i < indexName.length; i++) {
+            indexs[i] = getIndexName(indexName[i]);
+        }
+        return indexs;
+    }
 }

+ 2 - 1
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/config/ElasticSearchBeanConfig.java

@@ -15,7 +15,8 @@ public class ElasticSearchBeanConfig {
 
     @Bean
     public ElasticSearchPartition elasticSearchPartition() {
-        return new ElasticSearchPartitionImpl();
+        ElasticSearchPartitionImpl elasticSearchPartition = new ElasticSearchPartitionImpl();
+        return elasticSearchPartition;
     }
 
     @Bean

+ 2 - 2
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/es/AbstractTraceElasticSearch.java

@@ -44,8 +44,8 @@ public abstract class AbstractTraceElasticSearch<T, R, I> extends TraceSearchPro
     public PageResponseModel<R> searchDataByList(String date, Integer pageNo, Integer pageSize, T query)
         throws Exception {
         MetaData metaData = IndexTools.getIndexType(getIndexClass());
-        String indexname = metaData.getIndexname();
-        String partitionIndexName = JayDataUtils.getTableName(indexname, date);
+        String indexName = metaData.getIndexname();
+        String partitionIndexName = JayDataUtils.getTableName(indexName, date);
         Object indexEntity = getIndexClass().newInstance();
         BeanUtils.copyProperties(query, indexEntity);
         QueryBuilder queryBuilder = builderQuery((I)indexEntity);

+ 16 - 8
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/utils/DataUtils.java

@@ -58,8 +58,8 @@ public class DataUtils {
         return sdf.format(date);
     }
 
-
-    public static Map<String, Object> parseFieldAnnotation(Object obj, Class<? extends Annotation> annotation, String annotationName) {
+    public static Map<String, Object> parseFieldAnnotation(Object obj, Class<? extends Annotation> annotation,
+        String annotationName) {
         Map<String, Object> fieldMap = new LinkedHashMap<>();
         try {
             Field[] declaredFields = obj.getClass().getDeclaredFields();
@@ -81,18 +81,26 @@ public class DataUtils {
 
     public static DefaultMessageTree getJsonContentMessageTree(BaseDTO baseDTO, Integer id) {
         if (baseDTO instanceof CommonDataDTO) {
-            CommonDataDTO commonDataDTO = (CommonDataDTO) baseDTO;
-            DefaultMessageTree messageTree = new DefaultMessageTree(commonDataDTO.getApplicationName(), commonDataDTO.getIp(), id, commonDataDTO.getCreateDate(), commonDataDTO.getJsonContent());
-            return messageTree;
+            CommonDataDTO commonDataDTO = (CommonDataDTO)baseDTO;
+            if (StringUtils.isNotEmpty(commonDataDTO.getJsonContent())) {
+                DefaultMessageTree messageTree =
+                    new DefaultMessageTree(commonDataDTO.getApplicationName(), commonDataDTO.getIp(), id,
+                        commonDataDTO.getCreateDate(), commonDataDTO.getJsonContent());
+                return messageTree;
+            }
         }
         return null;
     }
 
     public static DefaultMessageTree getErrorMessageTree(BaseDTO baseDTO, Integer id) {
         if (baseDTO instanceof CommonDataDTO) {
-            CommonDataDTO commonDataDTO = (CommonDataDTO) baseDTO;
-            DefaultMessageTree messageTree = new DefaultMessageTree(PrefixUtils.prefixErrorMessage(commonDataDTO.getApplicationName()), commonDataDTO.getIp(), id, commonDataDTO.getCreateDate(), commonDataDTO.getErrorStackTrace());
-            return messageTree;
+            CommonDataDTO commonDataDTO = (CommonDataDTO)baseDTO;
+            if (StringUtils.isNotEmpty(commonDataDTO.getErrorStackTrace())) {
+                DefaultMessageTree messageTree =
+                    new DefaultMessageTree(PrefixUtils.prefixErrorMessage(commonDataDTO.getApplicationName()),
+                        commonDataDTO.getIp(), id, commonDataDTO.getCreateDate(), commonDataDTO.getErrorStackTrace());
+                return messageTree;
+            }
         }
         return null;
     }

+ 9 - 8
jay-monitor-data-server/src/main/resources/application-dev.yml

@@ -37,17 +37,18 @@ spring:
       MQ:
         max-time: 1000
         status-list: [ -1 ]
-    log-monitor-url: http://192.168.0.90:2281/cat/r/m/
+    log-monitor-url: http://192.168.0.11:2281/cat/r/m/
     server-domain: http://127.0.0.1:5800
     console-url: ${spring.alert.server-domain}/index.html
     server-log-console: ${spring.alert.server-domain}/api/log/console
-#elasticsearch:
-#  host: 127.0.0.1:9200
-#  max_connect_total: 30
-#  max_connect_per_route: 30
-#  connection_request_timeout_millis: 2000
-#  socket_timeout_millis: 30000
-#  connect_timeout_millis: 2000
+elasticsearch:
+  host: 127.0.0.1:9200
+  enable-env-prefix: true
+  max_connect_total: 30
+  max_connect_per_route: 30
+  connection_request_timeout_millis: 2000
+  socket_timeout_millis: 30000
+  connect_timeout_millis: 2000
 logging:
   level:
     com.jay.monitor.data.server: DEBUG

+ 8 - 1
jay-monitor-data-server/src/main/resources/application-test.yml

@@ -43,6 +43,13 @@ spring:
 #logging:
 #  level:
 #    com.jay.monitor.data.server: debug
-
+elasticsearch:
+  host: 172.19.189.149:9200
+  enable-env-prefix: true
+  max_connect_total: 30
+  max_connect_per_route: 30
+  connection_request_timeout_millis: 2000
+  socket_timeout_millis: 30000
+  connect_timeout_millis: 2000
 logging:
   config: classpath:logback/logback.xml

+ 8 - 0
jay-monitor-data-server/src/main/resources/application-uat.yml

@@ -39,5 +39,13 @@ spring:
     console-url: ${spring.alert.server-domain}/index.html
     server-domain: http://101.132.100.169:5800
     server-log-console: ${spring.alert.server-domain}/api/log/console
+elasticsearch:
+  host: 172.19.189.149:9200
+  enable-env-prefix: true
+  max_connect_total: 30
+  max_connect_per_route: 30
+  connection_request_timeout_millis: 2000
+  socket_timeout_millis: 30000
+  connect_timeout_millis: 2000
 logging:
   config: classpath:logback/logback.xml

+ 44 - 0
jay-monitor-data-server/src/test/java/com/jay/monitor/data/server/store/AbstractStoreProcessTest.java

@@ -0,0 +1,44 @@
+package com.jay.monitor.data.server.store;
+
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+import com.cat.file.message.MessageManagerProcess;
+import com.cat.file.message.config.CatFileConfiguration;
+import com.cat.file.message.internal.DefaultMessageTree;
+import junit.framework.TestCase;
+import org.json.JSONObject;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = {CatFileConfiguration.class})
+public class AbstractStoreProcessTest extends TestCase {
+
+    @Autowired
+    private MessageManagerProcess messageManagerProcess = new MessageManagerProcess();
+
+    @Test
+    public void testText() throws Exception {
+        JSONObject json = new JSONObject();
+        json.put("id", "783098");
+        DateTime dateTime = DateUtil.parseDate("2021-04-24 10:07:47");
+        DefaultMessageTree defaultMessageTree =
+            new DefaultMessageTree("dts-server", "172.19.189.171", 783098, dateTime, json.toString());
+        messageManagerProcess.insert(defaultMessageTree);
+    }
+
+    @Test
+    public void testFind() {
+
+        DateTime parse = DateUtil.parse("2021-04-25 00:00:00");
+
+        DefaultMessageTree defaultMessageTree =
+            new DefaultMessageTree("dts-server", "172.19.189.171", 5920938, parse, null);
+        String message = messageManagerProcess.getMessage(defaultMessageTree.getMessageId());
+        System.out.println(message);
+    }
+
+}

+ 1 - 0
jay-monitor-data-server/src/test/resources/application-dev.yml

@@ -43,6 +43,7 @@ spring:
 
 elasticsearch:
   host: 127.0.0.1:9200
+  enable-env-prefix: true
   max_connect_total: 30
   max_connect_per_route: 30
   connection_request_timeout_millis: 2000

+ 1 - 1
pom.xml

@@ -212,7 +212,7 @@
         <snapshotRepository>
             <id>snapshots</id>
             <name>User Project SNAPSHOTS</name>
-            <url>http://192.168.0.11:8081/nexus/content/repositories/snapshots/</url>
+            <url>http://192.168.0.11:8081/repository/maven-snapshots/</url>
         </snapshotRepository>
     </distributionManagement>
 </project>