You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by ke...@apache.org on 2022/03/11 02:28:20 UTC
[skywalking] branch master updated: Fix es normal index couldn't apply mapping and update (#8661)
This is an automated email from the ASF dual-hosted git repository.
kezhenxu94 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git
The following commit(s) were added to refs/heads/master by this push:
new 9c46d6f Fix es normal index couldn't apply mapping and update (#8661)
9c46d6f is described below
commit 9c46d6f8d4d9ef8f5becaa05930fd0a7ac3ad346
Author: Kai <wa...@foxmail.com>
AuthorDate: Fri Mar 11 10:24:17 2022 +0800
Fix es normal index couldn't apply mapping and update (#8661)
---
CHANGES.md | 1 +
.../elasticsearch/base/StorageEsInstaller.java | 31 +++++++++++++++++++---
2 files changed, 29 insertions(+), 3 deletions(-)
diff --git a/CHANGES.md b/CHANGES.md
index 0b728dd..24ebb43 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -93,6 +93,7 @@ Release Notes.
* [Breaking Change] Deprecate `All` from OAL source.
* [Breaking Change] Remove `SRC_ALL: 'All'` from OAL grammar tree.
* Remove `all_heatmap` and `all_percentile` metrics.
+* Fix es normal index couldn't apply mapping and update.
#### UI
diff --git a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/StorageEsInstaller.java b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/StorageEsInstaller.java
index a6a87e9..417d3cc 100644
--- a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/StorageEsInstaller.java
+++ b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/StorageEsInstaller.java
@@ -68,7 +68,15 @@ public class StorageEsInstaller extends ModelInstaller {
String tableName = IndexController.INSTANCE.getTableName(model);
IndexController.LogicIndicesRegister.registerRelation(model.getName(), tableName);
if (!model.isTimeSeries()) {
- return esClient.isExistsIndex(tableName);
+ boolean exist = esClient.isExistsIndex(tableName);
+ if (exist) {
+ Mappings historyMapping = esClient.getIndex(tableName)
+ .map(Index::getMappings)
+ .orElseGet(Mappings::new);
+ structures.putStructure(tableName, historyMapping);
+ exist = structures.containsStructure(tableName, createMapping(model));
+ }
+ return exist;
}
boolean templateExists = esClient.isExistsTemplate(tableName);
final Optional<IndexTemplate> template = esClient.getTemplate(tableName);
@@ -102,11 +110,28 @@ public class StorageEsInstaller extends ModelInstaller {
private void createNormalTable(Model model) throws StorageException {
ElasticSearchClient esClient = (ElasticSearchClient) client;
String tableName = IndexController.INSTANCE.getTableName(model);
+ Mappings mapping = createMapping(model);
if (!esClient.isExistsIndex(tableName)) {
- boolean isAcknowledged = esClient.createIndex(tableName);
+ Map<String, Object> settings = createSetting(model);
+ boolean isAcknowledged = esClient.createIndex(tableName, mapping, settings);
log.info("create {} index finished, isAcknowledged: {}", tableName, isAcknowledged);
if (!isAcknowledged) {
- throw new StorageException("create " + tableName + " time series index failure, ");
+ throw new StorageException("create " + tableName + " index failure, ");
+ }
+ } else {
+ Mappings historyMapping = esClient.getIndex(tableName)
+ .map(Index::getMappings)
+ .orElseGet(Mappings::new);
+ structures.putStructure(tableName, mapping);
+ Mappings appendMapping = structures.diffStructure(tableName, historyMapping);
+ if (appendMapping.getProperties() != null && !appendMapping.getProperties().isEmpty()) {
+ boolean isAcknowledged = esClient.updateIndexMapping(tableName, appendMapping);
+ log.info("update {} index finished, isAcknowledged: {}, append mappings: {}", tableName,
+ isAcknowledged, appendMapping
+ );
+ if (!isAcknowledged) {
+ throw new StorageException("update " + tableName + " index failure");
+ }
}
}
}