Make the elasticsearch json object build to be a public method. (#2648)
This commit is contained in:
parent
3a31812854
commit
118485fbb7
|
|
@ -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<ElasticSearchClient> {
|
|||
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<ElasticSearchClient> {
|
|||
}
|
||||
sourceBuilder.size(0);
|
||||
}
|
||||
|
||||
XContentBuilder map2builder(Map<String, Object> 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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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<IndexRequest, UpdateRequest> {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(MetricsEsDAO.class);
|
||||
|
||||
private final StorageBuilder<Metrics> storageBuilder;
|
||||
|
||||
public MetricsEsDAO(ElasticSearchClient client, StorageBuilder<Metrics> storageBuilder) {
|
||||
MetricsEsDAO(ElasticSearchClient client, StorageBuilder<Metrics> storageBuilder) {
|
||||
super(client);
|
||||
this.storageBuilder = storageBuilder;
|
||||
}
|
||||
|
|
@ -54,34 +49,12 @@ public class MetricsEsDAO extends EsDAO implements IMetricsDAO<IndexRequest, Upd
|
|||
}
|
||||
|
||||
@Override public IndexRequest prepareBatchInsert(String modelName, Metrics metrics) throws IOException {
|
||||
Map<String, Object> 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<String, Object> 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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<IndexRequest> {
|
|||
|
||||
private final StorageBuilder<Record> storageBuilder;
|
||||
|
||||
public RecordEsDAO(ElasticSearchClient client, StorageBuilder<Record> storageBuilder) {
|
||||
RecordEsDAO(ElasticSearchClient client, StorageBuilder<Record> storageBuilder) {
|
||||
super(client);
|
||||
this.storageBuilder = storageBuilder;
|
||||
}
|
||||
|
||||
@Override public IndexRequest prepareBatchInsert(String modelName, Record record) throws IOException {
|
||||
Map<String, Object> 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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<RegisterSource> storageBuilder;
|
||||
|
||||
public RegisterEsDAO(ElasticSearchClient client, StorageBuilder<RegisterSource> storageBuilder) {
|
||||
RegisterEsDAO(ElasticSearchClient client, StorageBuilder<RegisterSource> 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<String, Object> objectMap = storageBuilder.data2Map(source);
|
||||
|
||||
XContentBuilder builder = XContentFactory.jsonBuilder().startObject();
|
||||
for (String key : objectMap.keySet()) {
|
||||
builder.field(key, objectMap.get(key));
|
||||
}
|
||||
builder.endObject();
|
||||
|
||||
return builder;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue