From 4399c6627890fc2ae300eb14bc025b0c40a98f6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E6=99=9F=20Wu=20Sheng?= Date: Sat, 3 Nov 2018 23:25:28 +0800 Subject: [PATCH] Make metric value to long to avoid too big integer issue. (#1876) * Make metric value to long to avoid too big integer issue. * Update protocol. * Add a new filter to service number. --- .../oap/server/core/query/entity/IntValues.java | 2 +- .../skywalking/oap/server/core/query/entity/KVInt.java | 2 +- .../oap/server/core/query/entity/TopNEntity.java | 2 +- .../src/main/resources/query-protocol | 2 +- .../elasticsearch/query/AggregationQueryEsDAO.java | 2 +- .../plugin/elasticsearch/query/MetricQueryEsDAO.java | 10 +++++----- .../plugin/jdbc/h2/dao/H2AggregationQueryDAO.java | 2 +- .../storage/plugin/jdbc/h2/dao/H2MetadataQueryDAO.java | 1 + .../storage/plugin/jdbc/h2/dao/H2MetricQueryDAO.java | 4 ++-- 9 files changed, 14 insertions(+), 13 deletions(-) diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/entity/IntValues.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/entity/IntValues.java index aab3dff2dd..20f15ef358 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/entity/IntValues.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/entity/IntValues.java @@ -32,7 +32,7 @@ public class IntValues { values.add(e); } - public int findValue(String id, int defaultValue) { + public long findValue(String id, int defaultValue) { for (KVInt value : values) { if (value.getId().equals(id)) { return value.getValue(); diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/entity/KVInt.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/entity/KVInt.java index 1d16ad1bd0..796528523c 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/entity/KVInt.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/entity/KVInt.java @@ -27,5 +27,5 @@ import lombok.*; @Getter public class KVInt { private String id; - private int value; + private long value; } diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/entity/TopNEntity.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/entity/TopNEntity.java index 8eb893096d..49f4c1536e 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/entity/TopNEntity.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/entity/TopNEntity.java @@ -28,5 +28,5 @@ import lombok.*; public class TopNEntity { private String name; private String id; - private int value; + private long value; } diff --git a/oap-server/server-query-plugin/query-graphql-plugin/src/main/resources/query-protocol b/oap-server/server-query-plugin/query-graphql-plugin/src/main/resources/query-protocol index 1122e97b56..c65a23bd6b 160000 --- a/oap-server/server-query-plugin/query-graphql-plugin/src/main/resources/query-protocol +++ b/oap-server/server-query-plugin/query-graphql-plugin/src/main/resources/query-protocol @@ -1 +1 @@ -Subproject commit 1122e97b5604ae96447bd58ecdb248d7e02952aa +Subproject commit c65a23bd6b9bba8d1df30d4de261624952df2b7b diff --git a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/AggregationQueryEsDAO.java b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/AggregationQueryEsDAO.java index a3a79f7696..e1216d877d 100644 --- a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/AggregationQueryEsDAO.java +++ b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/AggregationQueryEsDAO.java @@ -129,7 +129,7 @@ public class AggregationQueryEsDAO extends EsDAO implements IAggregationQueryDAO TopNEntity topNEntity = new TopNEntity(); topNEntity.setId(termsBucket.getKeyAsString()); Avg value = termsBucket.getAggregations().get(valueCName); - topNEntity.setValue((int)value.getValue()); + topNEntity.setValue((long)value.getValue()); topNEntities.add(topNEntity); } diff --git a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/MetricQueryEsDAO.java b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/MetricQueryEsDAO.java index b4ae33df74..3ee9d4760d 100644 --- a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/MetricQueryEsDAO.java +++ b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/MetricQueryEsDAO.java @@ -61,19 +61,19 @@ public class MetricQueryEsDAO extends EsDAO implements IMetricQueryDAO { IntValues intValues = new IntValues(); Terms idTerms = response.getAggregations().get(Indicator.ENTITY_ID); for (Terms.Bucket idBucket : idTerms.getBuckets()) { - int value = 0; + long value = 0; switch (function) { case Sum: Sum sum = idBucket.getAggregations().get(valueCName); - value = (int)sum.getValue(); + value = (long)sum.getValue(); break; case Avg: Avg avg = idBucket.getAggregations().get(valueCName); - value = (int)avg.getValue(); + value = (long)avg.getValue(); break; default: avg = idBucket.getAggregations().get(valueCName); - value = (int)avg.getValue(); + value = (long)avg.getValue(); break; } @@ -113,7 +113,7 @@ public class MetricQueryEsDAO extends EsDAO implements IMetricQueryDAO { kvInt.setValue(0); Map source = itemResponse.getResponse().getSource(); if (source != null) { - kvInt.setValue(((Number)source.getOrDefault(valueCName, 0)).intValue()); + kvInt.setValue(((Number)source.getOrDefault(valueCName, 0)).longValue()); } intValues.getValues().add(kvInt); } diff --git a/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/h2/dao/H2AggregationQueryDAO.java b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/h2/dao/H2AggregationQueryDAO.java index 5633f8a3b7..71376434b5 100644 --- a/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/h2/dao/H2AggregationQueryDAO.java +++ b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/h2/dao/H2AggregationQueryDAO.java @@ -102,7 +102,7 @@ public class H2AggregationQueryDAO implements IAggregationQueryDAO { while (resultSet.next()) { TopNEntity topNEntity = new TopNEntity(); topNEntity.setId(resultSet.getString(Indicator.ENTITY_ID)); - topNEntity.setValue(resultSet.getInt("value")); + topNEntity.setValue(resultSet.getLong("value")); topNEntities.add(topNEntity); } } catch (SQLException e) { diff --git a/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/h2/dao/H2MetadataQueryDAO.java b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/h2/dao/H2MetadataQueryDAO.java index ed344b0566..4f82a826f2 100644 --- a/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/h2/dao/H2MetadataQueryDAO.java +++ b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/h2/dao/H2MetadataQueryDAO.java @@ -55,6 +55,7 @@ public class H2MetadataQueryDAO implements IMetadataQueryDAO { List condition = new ArrayList<>(5); sql.append("select count(*) num from ").append(ServiceInventory.MODEL_NAME).append(" where "); setTimeRangeCondition(sql, condition, startTimestamp, endTimestamp); + sql.append(" and ").append(ServiceInventory.IS_ADDRESS).append("=0"); Connection connection = null; try { diff --git a/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/h2/dao/H2MetricQueryDAO.java b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/h2/dao/H2MetricQueryDAO.java index b49bef1650..a8093a6ba3 100644 --- a/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/h2/dao/H2MetricQueryDAO.java +++ b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/h2/dao/H2MetricQueryDAO.java @@ -103,7 +103,7 @@ public class H2MetricQueryDAO extends H2SQLExecutor implements IMetricQueryDAO { while (resultSet.next()) { KVInt kv = new KVInt(); kv.setId(resultSet.getString("id")); - kv.setValue(resultSet.getInt("value")); + kv.setValue(resultSet.getLong("value")); intValues.getValues().add(kv); } } @@ -136,7 +136,7 @@ public class H2MetricQueryDAO extends H2SQLExecutor implements IMetricQueryDAO { while (resultSet.next()) { KVInt kv = new KVInt(); kv.setId(resultSet.getString("id")); - kv.setValue(resultSet.getInt(valueCName)); + kv.setValue(resultSet.getLong(valueCName)); intValues.getValues().add(kv); } } -- GitLab