From 118485fbb7ebd437ced9b1d263fd17cc84f4a61c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BD=AD=E5=8B=87=E5=8D=87=20pengys?= Date: Fri, 10 May 2019 12:43:17 +0800 Subject: [PATCH] Make the elasticsearch json object build to be a public method. (#2648) --- .../plugin/elasticsearch/base/EsDAO.java | 21 ++++++++++- .../base/HistoryDeleteEsDAO.java | 7 ++-- .../elasticsearch/base/MetricsEsDAO.java | 35 +++---------------- .../elasticsearch/base/RecordEsDAO.java | 19 ++-------- .../elasticsearch/base/RegisterEsDAO.java | 24 +++---------- 5 files changed, 33 insertions(+), 73 deletions(-) diff --git a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/EsDAO.java b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/EsDAO.java index 2cd3789f4..bc22597f0 100644 --- a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/EsDAO.java +++ b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/EsDAO.java @@ -18,10 +18,14 @@ package org.apache.skywalking.oap.server.storage.plugin.elasticsearch.base; +import java.io.IOException; +import java.util.Map; import org.apache.skywalking.oap.server.core.analysis.metrics.Metrics; import org.apache.skywalking.oap.server.core.query.sql.Where; import org.apache.skywalking.oap.server.core.storage.AbstractDAO; +import org.apache.skywalking.oap.server.core.storage.type.StorageDataType; import org.apache.skywalking.oap.server.library.client.elasticsearch.ElasticSearchClient; +import org.elasticsearch.common.xcontent.*; import org.elasticsearch.index.query.*; import org.elasticsearch.search.builder.SearchSourceBuilder; @@ -34,7 +38,7 @@ public abstract class EsDAO extends AbstractDAO { super(client); } - public final void queryBuild(SearchSourceBuilder sourceBuilder, Where where, long startTB, long endTB) { + protected final void queryBuild(SearchSourceBuilder sourceBuilder, Where where, long startTB, long endTB) { RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(Metrics.TIME_BUCKET).gte(startTB).lte(endTB); if (where.getKeyValues().isEmpty()) { sourceBuilder.query(rangeQueryBuilder); @@ -53,4 +57,19 @@ public abstract class EsDAO extends AbstractDAO { } sourceBuilder.size(0); } + + XContentBuilder map2builder(Map objectMap) throws IOException { + XContentBuilder builder = XContentFactory.jsonBuilder().startObject(); + for (String key : objectMap.keySet()) { + Object value = objectMap.get(key); + if (value instanceof StorageDataType) { + builder.field(key, ((StorageDataType)value).toStorageData()); + } else { + builder.field(key, value); + } + } + builder.endObject(); + + return builder; + } } diff --git a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/HistoryDeleteEsDAO.java b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/HistoryDeleteEsDAO.java index ca7ccee0b..44c6fdd71 100644 --- a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/HistoryDeleteEsDAO.java +++ b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/HistoryDeleteEsDAO.java @@ -18,13 +18,10 @@ package org.apache.skywalking.oap.server.storage.plugin.elasticsearch.base; +import java.io.IOException; import org.apache.skywalking.oap.server.core.storage.IHistoryDeleteDAO; import org.apache.skywalking.oap.server.library.client.elasticsearch.ElasticSearchClient; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.IOException; - +import org.slf4j.*; /** * @author peng-yongsheng diff --git a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/MetricsEsDAO.java b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/MetricsEsDAO.java index 5095252d9..7693d57df 100644 --- a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/MetricsEsDAO.java +++ b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/MetricsEsDAO.java @@ -19,27 +19,22 @@ package org.apache.skywalking.oap.server.storage.plugin.elasticsearch.base; import java.io.IOException; -import java.util.Map; import org.apache.skywalking.oap.server.core.analysis.metrics.Metrics; import org.apache.skywalking.oap.server.core.storage.*; -import org.apache.skywalking.oap.server.core.storage.type.StorageDataType; import org.apache.skywalking.oap.server.library.client.elasticsearch.ElasticSearchClient; import org.elasticsearch.action.get.GetResponse; import org.elasticsearch.action.index.IndexRequest; import org.elasticsearch.action.update.UpdateRequest; -import org.elasticsearch.common.xcontent.*; -import org.slf4j.*; +import org.elasticsearch.common.xcontent.XContentBuilder; /** * @author peng-yongsheng */ public class MetricsEsDAO extends EsDAO implements IMetricsDAO { - private static final Logger logger = LoggerFactory.getLogger(MetricsEsDAO.class); - private final StorageBuilder storageBuilder; - public MetricsEsDAO(ElasticSearchClient client, StorageBuilder storageBuilder) { + MetricsEsDAO(ElasticSearchClient client, StorageBuilder storageBuilder) { super(client); this.storageBuilder = storageBuilder; } @@ -54,34 +49,12 @@ public class MetricsEsDAO extends EsDAO implements IMetricsDAO objectMap = storageBuilder.data2Map(metrics); - - XContentBuilder builder = XContentFactory.jsonBuilder().startObject(); - for (String key : objectMap.keySet()) { - Object value = objectMap.get(key); - if (value instanceof StorageDataType) { - builder.field(key, ((StorageDataType)value).toStorageData()); - } else { - builder.field(key, value); - } - } - builder.endObject(); + XContentBuilder builder = map2builder(storageBuilder.data2Map(metrics)); return getClient().prepareInsert(modelName, metrics.id(), builder); } @Override public UpdateRequest prepareBatchUpdate(String modelName, Metrics metrics) throws IOException { - Map objectMap = storageBuilder.data2Map(metrics); - - XContentBuilder builder = XContentFactory.jsonBuilder().startObject(); - for (String key : objectMap.keySet()) { - Object value = objectMap.get(key); - if (value instanceof StorageDataType) { - builder.field(key, ((StorageDataType)value).toStorageData()); - } else { - builder.field(key, value); - } - } - builder.endObject(); + XContentBuilder builder = map2builder(storageBuilder.data2Map(metrics)); return getClient().prepareUpdate(modelName, metrics.id(), builder); } } diff --git a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/RecordEsDAO.java b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/RecordEsDAO.java index 4a1c1d47c..f2fa26ed2 100644 --- a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/RecordEsDAO.java +++ b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/RecordEsDAO.java @@ -19,13 +19,11 @@ package org.apache.skywalking.oap.server.storage.plugin.elasticsearch.base; import java.io.IOException; -import java.util.Map; import org.apache.skywalking.oap.server.core.analysis.record.Record; import org.apache.skywalking.oap.server.core.storage.*; -import org.apache.skywalking.oap.server.core.storage.type.StorageDataType; import org.apache.skywalking.oap.server.library.client.elasticsearch.ElasticSearchClient; import org.elasticsearch.action.index.IndexRequest; -import org.elasticsearch.common.xcontent.*; +import org.elasticsearch.common.xcontent.XContentBuilder; /** * @author peng-yongsheng @@ -34,24 +32,13 @@ public class RecordEsDAO extends EsDAO implements IRecordDAO { private final StorageBuilder storageBuilder; - public RecordEsDAO(ElasticSearchClient client, StorageBuilder storageBuilder) { + RecordEsDAO(ElasticSearchClient client, StorageBuilder storageBuilder) { super(client); this.storageBuilder = storageBuilder; } @Override public IndexRequest prepareBatchInsert(String modelName, Record record) throws IOException { - Map objectMap = storageBuilder.data2Map(record); - - XContentBuilder builder = XContentFactory.jsonBuilder().startObject(); - for (String key : objectMap.keySet()) { - Object value = objectMap.get(key); - if (value instanceof StorageDataType) { - builder.field(key, ((StorageDataType)value).toStorageData()); - } else { - builder.field(key, value); - } - } - builder.endObject(); + XContentBuilder builder = map2builder(storageBuilder.data2Map(record)); return getClient().prepareInsert(modelName, record.id(), builder); } } diff --git a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/RegisterEsDAO.java b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/RegisterEsDAO.java index 58f3a8d20..c4bd28931 100644 --- a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/RegisterEsDAO.java +++ b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/RegisterEsDAO.java @@ -19,24 +19,20 @@ package org.apache.skywalking.oap.server.storage.plugin.elasticsearch.base; import java.io.IOException; -import java.util.Map; import org.apache.skywalking.oap.server.core.register.RegisterSource; import org.apache.skywalking.oap.server.core.storage.*; import org.apache.skywalking.oap.server.library.client.elasticsearch.ElasticSearchClient; import org.elasticsearch.action.get.GetResponse; -import org.elasticsearch.common.xcontent.*; -import org.slf4j.*; +import org.elasticsearch.common.xcontent.XContentBuilder; /** * @author peng-yongsheng */ public class RegisterEsDAO extends EsDAO implements IRegisterDAO { - private static final Logger logger = LoggerFactory.getLogger(RegisterEsDAO.class); - private final StorageBuilder storageBuilder; - public RegisterEsDAO(ElasticSearchClient client, StorageBuilder storageBuilder) { + RegisterEsDAO(ElasticSearchClient client, StorageBuilder storageBuilder) { super(client); this.storageBuilder = storageBuilder; } @@ -51,24 +47,12 @@ public class RegisterEsDAO extends EsDAO implements IRegisterDAO { } @Override public void forceInsert(String modelName, RegisterSource source) throws IOException { - XContentBuilder builder = build(source); + XContentBuilder builder = map2builder(storageBuilder.data2Map(source)); getClient().forceInsert(modelName, source.id(), builder); } @Override public void forceUpdate(String modelName, RegisterSource source) throws IOException { - XContentBuilder builder = build(source); + XContentBuilder builder = map2builder(storageBuilder.data2Map(source)); getClient().forceUpdate(modelName, source.id(), builder); } - - private XContentBuilder build(RegisterSource source) throws IOException { - Map objectMap = storageBuilder.data2Map(source); - - XContentBuilder builder = XContentFactory.jsonBuilder().startObject(); - for (String key : objectMap.keySet()) { - builder.field(key, objectMap.get(key)); - } - builder.endObject(); - - return builder; - } }