Skip to content

Commit b832137

Browse files
authored
Add doc_values for fields that need to be sorted or aggregated in ElasticSearch, and disable all others. (#12782)
1 parent 07a79ba commit b832137

File tree

64 files changed

+190
-34
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+190
-34
lines changed

docs/en/changes/changes.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
## 10.2.0
22

3+
#### Project
4+
* Add [`doc_values`](https://www.elastic.co/guide/en/elasticsearch/reference/current/doc-values.html) for fields
5+
that need to be sorted or aggregated in Elasticsearch, and disable all others.
6+
* This change would not impact the existing deployment and its feature for our official release users.
7+
* **Warning** If there are custom query plugins for our Elasticsearch indices, this change could break them as
8+
sort queries and aggregation queries which used the unexpected fields are being blocked.
9+
310
#### OAP Server
411

512
* Skip processing OTLP metrics data points with flag `FLAG_NO_RECORDED_VALUE`, which causes exceptional result.

oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/util/OALClassGenerator.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
import org.apache.skywalking.oap.server.core.storage.StorageBuilderFactory;
5959
import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
6060
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
61+
import org.apache.skywalking.oap.server.core.storage.annotation.ElasticSearch;
6162
import org.apache.skywalking.oap.server.library.util.StringUtil;
6263

6364
import java.io.DataOutputStream;
@@ -205,6 +206,10 @@ private Class generateMetricsClass(AnalysisResult metricsStmt) throws OALCompile
205206
Annotation banyanShardingKeyAnnotation = new Annotation(BanyanDB.SeriesID.class.getName(), constPool);
206207
banyanShardingKeyAnnotation.addMemberValue("index", new IntegerMemberValue(constPool, 0));
207208
annotationsAttribute.addAnnotation(banyanShardingKeyAnnotation);
209+
210+
// Entity id field should enable doc values.
211+
final var enableDocValuesAnnotation = new Annotation(ElasticSearch.EnableDocValues.class.getName(), constPool);
212+
annotationsAttribute.addAnnotation(enableDocValuesAnnotation);
208213
}
209214

210215
if (field.isGroupByCondInTopN()) {

oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/alarm/AlarmRecord.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ public StorageID id() {
7878
private String id0;
7979
@Column(name = ID1, storageOnly = true)
8080
private String id1;
81+
@ElasticSearch.EnableDocValues
8182
@Column(name = START_TIME)
8283
private long startTime;
8384
@Column(name = ALARM_MESSAGE, length = 512)

oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/log/AbstractLogRecord.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ public abstract class AbstractLogRecord extends Record {
8989
private LongText content;
9090
@Setter
9191
@Getter
92+
@ElasticSearch.EnableDocValues
9293
@Column(name = TIMESTAMP)
9394
private long timestamp;
9495

oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/endpoint/EndpointRelationServerSideMetrics.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import org.apache.skywalking.oap.server.core.storage.StorageID;
3131
import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
3232
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
33+
import org.apache.skywalking.oap.server.core.storage.annotation.ElasticSearch;
3334
import org.apache.skywalking.oap.server.core.storage.type.Convert2Entity;
3435
import org.apache.skywalking.oap.server.core.storage.type.Convert2Storage;
3536
import org.apache.skywalking.oap.server.core.storage.type.StorageBuilder;
@@ -58,10 +59,12 @@ public class EndpointRelationServerSideMetrics extends Metrics {
5859
private String destEndpoint;
5960
@Setter
6061
@Getter
62+
@ElasticSearch.EnableDocValues
6163
@Column(name = COMPONENT_ID, storageOnly = true)
6264
private int componentId;
6365
@Setter
6466
@Getter
67+
@ElasticSearch.EnableDocValues
6568
@Column(name = ENTITY_ID, length = 512)
6669
@BanyanDB.SeriesID(index = 0)
6770
private String entityId;

oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/instance/ServiceInstanceRelationClientSideMetrics.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import org.apache.skywalking.oap.server.core.storage.StorageID;
3131
import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
3232
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
33+
import org.apache.skywalking.oap.server.core.storage.annotation.ElasticSearch;
3334
import org.apache.skywalking.oap.server.core.storage.type.Convert2Entity;
3435
import org.apache.skywalking.oap.server.core.storage.type.Convert2Storage;
3536
import org.apache.skywalking.oap.server.core.storage.type.StorageBuilder;
@@ -67,6 +68,7 @@ public class ServiceInstanceRelationClientSideMetrics extends Metrics {
6768
private String destServiceInstanceId;
6869
@Setter
6970
@Getter
71+
@ElasticSearch.EnableDocValues
7072
@Column(name = ENTITY_ID, length = 512)
7173
@BanyanDB.SeriesID(index = 0)
7274
private String entityId;

oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/instance/ServiceInstanceRelationServerSideMetrics.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import org.apache.skywalking.oap.server.core.storage.StorageID;
3131
import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
3232
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
33+
import org.apache.skywalking.oap.server.core.storage.annotation.ElasticSearch;
3334
import org.apache.skywalking.oap.server.core.storage.type.Convert2Entity;
3435
import org.apache.skywalking.oap.server.core.storage.type.Convert2Storage;
3536
import org.apache.skywalking.oap.server.core.storage.type.StorageBuilder;
@@ -67,6 +68,7 @@ public class ServiceInstanceRelationServerSideMetrics extends Metrics {
6768
private String destServiceInstanceId;
6869
@Setter
6970
@Getter
71+
@ElasticSearch.EnableDocValues
7072
@Column(name = ENTITY_ID, length = 512)
7173
@BanyanDB.SeriesID(index = 0)
7274
private String entityId;

oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/process/ProcessRelationClientSideMetrics.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import org.apache.skywalking.oap.server.core.storage.StorageID;
3232
import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
3333
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
34+
import org.apache.skywalking.oap.server.core.storage.annotation.ElasticSearch;
3435
import org.apache.skywalking.oap.server.core.storage.type.Convert2Entity;
3536
import org.apache.skywalking.oap.server.core.storage.type.Convert2Storage;
3637
import org.apache.skywalking.oap.server.core.storage.type.StorageBuilder;
@@ -65,11 +66,13 @@ public class ProcessRelationClientSideMetrics extends Metrics {
6566
private String destProcessId;
6667
@Setter
6768
@Getter
69+
@ElasticSearch.EnableDocValues
6870
@Column(name = ENTITY_ID, length = 512)
6971
@BanyanDB.SeriesID(index = 0)
7072
private String entityId;
7173
@Setter
7274
@Getter
75+
@ElasticSearch.EnableDocValues
7376
@Column(name = COMPONENT_ID, storageOnly = true)
7477
@BanyanDB.SeriesID(index = 1)
7578
private int componentId;

oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/process/ProcessRelationServerSideMetrics.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import org.apache.skywalking.oap.server.core.storage.StorageID;
3232
import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
3333
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
34+
import org.apache.skywalking.oap.server.core.storage.annotation.ElasticSearch;
3435
import org.apache.skywalking.oap.server.core.storage.type.Convert2Entity;
3536
import org.apache.skywalking.oap.server.core.storage.type.Convert2Storage;
3637
import org.apache.skywalking.oap.server.core.storage.type.StorageBuilder;
@@ -64,11 +65,13 @@ public class ProcessRelationServerSideMetrics extends Metrics {
6465
private String destProcessId;
6566
@Setter
6667
@Getter
68+
@ElasticSearch.EnableDocValues
6769
@Column(name = ENTITY_ID, length = 512)
6870
@BanyanDB.SeriesID(index = 0)
6971
private String entityId;
7072
@Setter
7173
@Getter
74+
@ElasticSearch.EnableDocValues
7275
@Column(name = COMPONENT_ID, storageOnly = true)
7376
@BanyanDB.SeriesID(index = 1)
7477
private int componentId;

oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/service/ServiceRelationClientSideMetrics.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,11 @@ public class ServiceRelationClientSideMetrics extends Metrics {
6060
@Getter
6161
@Column(name = COMPONENT_IDS, storageOnly = true)
6262
@ElasticSearch.Keyword
63+
@ElasticSearch.EnableDocValues
6364
private IntList componentIds = new IntList(3);
6465
@Setter
6566
@Getter
67+
@ElasticSearch.EnableDocValues
6668
@Column(name = ENTITY_ID, length = 512)
6769
@BanyanDB.SeriesID(index = 0)
6870
private String entityId;

0 commit comments

Comments
 (0)