You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by wu...@apache.org on 2020/04/19 12:14:43 UTC
[skywalking] branch metrics updated: Fix trace query
This is an automated email from the ASF dual-hosted git repository.
wusheng pushed a commit to branch metrics
in repository https://gitbox.apache.org/repos/asf/skywalking.git
The following commit(s) were added to refs/heads/metrics by this push:
new 20299eb Fix trace query
20299eb is described below
commit 20299eb9f6a7f3df896d7a1abc2f44c9c55a90e9
Author: Wu Sheng <wu...@foxmail.com>
AuthorDate: Sun Apr 19 20:13:56 2020 +0800
Fix trace query
---
.../oap/server/core/query/input/Duration.java | 10 ++++-
.../core/storage/query/IMetadataQueryDAO.java | 7 ---
.../oap/query/graphql/resolver/LogQuery.java | 8 +---
.../oap/query/graphql/resolver/TraceQuery.java | 13 ++----
.../elasticsearch/query/MetadataQueryEsDAO.java | 46 +-------------------
.../elasticsearch7/query/MetadataQueryEs7DAO.java | 50 ----------------------
.../plugin/jdbc/h2/dao/H2MetadataQueryDAO.java | 46 +-------------------
7 files changed, 16 insertions(+), 164 deletions(-)
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/input/Duration.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/input/Duration.java
index f3895b3..88f0fe0 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/input/Duration.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/input/Duration.java
@@ -19,8 +19,8 @@
package org.apache.skywalking.oap.server.core.query.input;
import java.util.List;
-import org.apache.skywalking.oap.server.core.query.PointOfTime;
import org.apache.skywalking.oap.server.core.query.DurationUtils;
+import org.apache.skywalking.oap.server.core.query.PointOfTime;
import org.apache.skywalking.oap.server.core.query.enumeration.Step;
public class Duration {
@@ -42,6 +42,14 @@ public class Duration {
return DurationUtils.INSTANCE.convertToTimeBucket(end);
}
+ public long getStartTimeBucketInSec() {
+ return DurationUtils.INSTANCE.startTimeDurationToSecondTimeBucket(step, start);
+ }
+
+ public long getEndTimeBucketInSec() {
+ return DurationUtils.INSTANCE.endTimeDurationToSecondTimeBucket(step, start);
+ }
+
/**
* Assemble time point based on {@link #step} and {@link #start} / {@link #end}
*/
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/query/IMetadataQueryDAO.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/query/IMetadataQueryDAO.java
index e676cf0..9140031 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/query/IMetadataQueryDAO.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/query/IMetadataQueryDAO.java
@@ -27,13 +27,6 @@ import org.apache.skywalking.oap.server.core.query.type.ServiceInstance;
import org.apache.skywalking.oap.server.core.storage.DAO;
public interface IMetadataQueryDAO extends DAO {
-
- int numOfService(final long startTimestamp, final long endTimestamp) throws IOException;
-
- int numOfEndpoint() throws IOException;
-
- int numOfConjectural(final int nodeTypeValue) throws IOException;
-
List<Service> getAllServices(final long startTimestamp, final long endTimestamp) throws IOException;
List<Service> getAllBrowserServices(long startTimestamp, long endTimestamp) throws IOException;
diff --git a/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/resolver/LogQuery.java b/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/resolver/LogQuery.java
index cb9444e..06c5a8d 100644
--- a/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/resolver/LogQuery.java
+++ b/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/resolver/LogQuery.java
@@ -48,12 +48,8 @@ public class LogQuery implements GraphQLQueryResolver {
long startSecondTB = 0;
long endSecondTB = 0;
if (nonNull(condition.getQueryDuration())) {
- startSecondTB = DurationUtils.INSTANCE.startTimeDurationToSecondTimeBucket(condition.getQueryDuration()
- .getStep(), condition.getQueryDuration()
- .getStart());
- endSecondTB = DurationUtils.INSTANCE.endTimeDurationToSecondTimeBucket(condition.getQueryDuration()
- .getStep(), condition.getQueryDuration()
- .getEnd());
+ startSecondTB = condition.getQueryDuration().getStartTimeBucketInSec();
+ endSecondTB = condition.getQueryDuration().getEndTimeBucketInSec();
}
return getQueryService().queryLogs(condition.getMetricName(), condition.getServiceId(), condition.getServiceInstanceId(), condition
diff --git a/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/resolver/TraceQuery.java b/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/resolver/TraceQuery.java
index 8818d7e..804334e 100644
--- a/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/resolver/TraceQuery.java
+++ b/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/resolver/TraceQuery.java
@@ -21,12 +21,11 @@ package org.apache.skywalking.oap.query.graphql.resolver;
import com.coxautodev.graphql.tools.GraphQLQueryResolver;
import com.google.common.base.Strings;
import java.io.IOException;
-import org.apache.skywalking.oap.server.core.query.input.TraceQueryCondition;
import org.apache.skywalking.oap.server.core.Const;
import org.apache.skywalking.oap.server.core.CoreModule;
import org.apache.skywalking.oap.server.core.UnexpectedException;
-import org.apache.skywalking.oap.server.core.query.DurationUtils;
import org.apache.skywalking.oap.server.core.query.TraceQueryService;
+import org.apache.skywalking.oap.server.core.query.input.TraceQueryCondition;
import org.apache.skywalking.oap.server.core.query.type.Pagination;
import org.apache.skywalking.oap.server.core.query.type.QueryOrder;
import org.apache.skywalking.oap.server.core.query.type.Trace;
@@ -60,14 +59,8 @@ public class TraceQuery implements GraphQLQueryResolver {
if (!Strings.isNullOrEmpty(condition.getTraceId())) {
traceId = condition.getTraceId();
} else if (nonNull(condition.getQueryDuration())) {
- startSecondTB = DurationUtils.INSTANCE.startTimeDurationToSecondTimeBucket(
- condition.getQueryDuration()
- .getStep(), condition.getQueryDuration()
- .getStart());
- endSecondTB = DurationUtils.INSTANCE.endTimeDurationToSecondTimeBucket(
- condition.getQueryDuration()
- .getStep(), condition.getQueryDuration()
- .getEnd());
+ startSecondTB = condition.getQueryDuration().getStartTimeBucketInSec();
+ endSecondTB = condition.getQueryDuration().getEndTimeBucketInSec();
} else {
throw new UnexpectedException("The condition must contains either queryDuration or traceId.");
}
diff --git a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/MetadataQueryEsDAO.java b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/MetadataQueryEsDAO.java
index 5db1397..8f543d2 100644
--- a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/MetadataQueryEsDAO.java
+++ b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/MetadataQueryEsDAO.java
@@ -19,7 +19,6 @@
package org.apache.skywalking.oap.server.storage.plugin.elasticsearch.query;
import com.google.common.base.Strings;
-import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import java.io.IOException;
@@ -32,10 +31,10 @@ import org.apache.skywalking.oap.server.core.analysis.TimeBucket;
import org.apache.skywalking.oap.server.core.analysis.manual.endpoint.EndpointTraffic;
import org.apache.skywalking.oap.server.core.analysis.manual.instance.InstanceTraffic;
import org.apache.skywalking.oap.server.core.analysis.manual.service.ServiceTraffic;
+import org.apache.skywalking.oap.server.core.query.enumeration.Language;
import org.apache.skywalking.oap.server.core.query.type.Attribute;
import org.apache.skywalking.oap.server.core.query.type.Database;
import org.apache.skywalking.oap.server.core.query.type.Endpoint;
-import org.apache.skywalking.oap.server.core.query.enumeration.Language;
import org.apache.skywalking.oap.server.core.query.type.Service;
import org.apache.skywalking.oap.server.core.query.type.ServiceInstance;
import org.apache.skywalking.oap.server.core.storage.query.IMetadataQueryDAO;
@@ -52,8 +51,6 @@ import org.elasticsearch.search.builder.SearchSourceBuilder;
import static org.apache.skywalking.oap.server.core.analysis.manual.instance.InstanceTraffic.PropertyUtil.LANGUAGE;
public class MetadataQueryEsDAO extends EsDAO implements IMetadataQueryDAO {
- private static final Gson GSON = new Gson();
-
private final int queryMaxSize;
public MetadataQueryEsDAO(ElasticSearchClient client, int queryMaxSize) {
@@ -62,47 +59,6 @@ public class MetadataQueryEsDAO extends EsDAO implements IMetadataQueryDAO {
}
@Override
- public int numOfService(long startTimestamp, long endTimestamp) throws IOException {
- SearchSourceBuilder sourceBuilder = SearchSourceBuilder.searchSource();
-
- BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
- boolQueryBuilder.must().add(QueryBuilders.termQuery(ServiceTraffic.NODE_TYPE, NodeType.Normal.value()));
- sourceBuilder.query(boolQueryBuilder);
- sourceBuilder.size(0);
-
- SearchResponse response = getClient().search(ServiceTraffic.INDEX_NAME, sourceBuilder);
- return (int) response.getHits().getTotalHits();
- }
-
- /**
- * @since 7.0.0, as EndpointInventory has been replaced by EndpointTraffic. This is not an accurate number anymore.
- */
- @Override
- public int numOfEndpoint() throws IOException {
- SearchSourceBuilder sourceBuilder = SearchSourceBuilder.searchSource();
-
- BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
-
- sourceBuilder.query(boolQueryBuilder);
- sourceBuilder.size(0);
-
- SearchResponse response = getClient().search(EndpointTraffic.INDEX_NAME, sourceBuilder);
- return (int) response.getHits().getTotalHits();
- }
-
- @Override
- public int numOfConjectural(int nodeTypeValue) throws IOException {
- SearchSourceBuilder sourceBuilder = SearchSourceBuilder.searchSource();
-
- sourceBuilder.query(QueryBuilders.termQuery(ServiceTraffic.NODE_TYPE, nodeTypeValue));
- sourceBuilder.size(0);
-
- SearchResponse response = getClient().search(ServiceTraffic.INDEX_NAME, sourceBuilder);
-
- return (int) response.getHits().getTotalHits();
- }
-
- @Override
public List<Service> getAllServices(long startTimestamp, long endTimestamp) throws IOException {
SearchSourceBuilder sourceBuilder = SearchSourceBuilder.searchSource();
diff --git a/oap-server/server-storage-plugin/storage-elasticsearch7-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch7/query/MetadataQueryEs7DAO.java b/oap-server/server-storage-plugin/storage-elasticsearch7-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch7/query/MetadataQueryEs7DAO.java
index da0c278..89813d4 100644
--- a/oap-server/server-storage-plugin/storage-elasticsearch7-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch7/query/MetadataQueryEs7DAO.java
+++ b/oap-server/server-storage-plugin/storage-elasticsearch7-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch7/query/MetadataQueryEs7DAO.java
@@ -18,62 +18,12 @@
package org.apache.skywalking.oap.server.storage.plugin.elasticsearch7.query;
-import java.io.IOException;
-import org.apache.skywalking.oap.server.core.analysis.NodeType;
-import org.apache.skywalking.oap.server.core.analysis.manual.endpoint.EndpointTraffic;
-import org.apache.skywalking.oap.server.core.analysis.manual.service.ServiceTraffic;
import org.apache.skywalking.oap.server.library.client.elasticsearch.ElasticSearchClient;
import org.apache.skywalking.oap.server.storage.plugin.elasticsearch.query.MetadataQueryEsDAO;
-import org.elasticsearch.action.search.SearchResponse;
-import org.elasticsearch.index.query.BoolQueryBuilder;
-import org.elasticsearch.index.query.QueryBuilders;
-import org.elasticsearch.search.builder.SearchSourceBuilder;
public class MetadataQueryEs7DAO extends MetadataQueryEsDAO {
public MetadataQueryEs7DAO(final ElasticSearchClient client, final int queryMaxSize) {
super(client, queryMaxSize);
}
-
- @Override
- public int numOfService(long startTimestamp, long endTimestamp) throws IOException {
- SearchSourceBuilder sourceBuilder = SearchSourceBuilder.searchSource();
-
- BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
- boolQueryBuilder.must().add(QueryBuilders.termQuery(ServiceTraffic.NODE_TYPE, NodeType.Normal.value()));
- sourceBuilder.query(boolQueryBuilder);
- sourceBuilder.size(0);
-
- SearchResponse response = getClient().search(ServiceTraffic.INDEX_NAME, sourceBuilder);
- return (int) response.getHits().getTotalHits().value;
- }
-
- /**
- * @since 7.0.0, as EndpointInventory has been replaced by EndpointTraffic. This is not an accurate number anymore.
- */
- @Override
- public int numOfEndpoint() throws IOException {
- SearchSourceBuilder sourceBuilder = SearchSourceBuilder.searchSource();
-
- BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
-
- sourceBuilder.query(boolQueryBuilder);
- sourceBuilder.size(0);
-
- SearchResponse response = getClient().search(EndpointTraffic.INDEX_NAME, sourceBuilder);
- return (int) response.getHits().getTotalHits().value;
- }
-
- @Override
- public int numOfConjectural(int nodeTypeValue) throws IOException {
- SearchSourceBuilder sourceBuilder = SearchSourceBuilder.searchSource();
-
- sourceBuilder.query(QueryBuilders.termQuery(ServiceTraffic.NODE_TYPE, nodeTypeValue));
- sourceBuilder.size(0);
-
- SearchResponse response = getClient().search(ServiceTraffic.INDEX_NAME, sourceBuilder);
-
- return (int) response.getHits().getTotalHits().value;
- }
-
}
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 929e64b..2566ab2 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
@@ -34,10 +34,10 @@ import org.apache.skywalking.oap.server.core.analysis.TimeBucket;
import org.apache.skywalking.oap.server.core.analysis.manual.endpoint.EndpointTraffic;
import org.apache.skywalking.oap.server.core.analysis.manual.instance.InstanceTraffic;
import org.apache.skywalking.oap.server.core.analysis.manual.service.ServiceTraffic;
+import org.apache.skywalking.oap.server.core.query.enumeration.Language;
import org.apache.skywalking.oap.server.core.query.type.Attribute;
import org.apache.skywalking.oap.server.core.query.type.Database;
import org.apache.skywalking.oap.server.core.query.type.Endpoint;
-import org.apache.skywalking.oap.server.core.query.enumeration.Language;
import org.apache.skywalking.oap.server.core.query.type.Service;
import org.apache.skywalking.oap.server.core.query.type.ServiceInstance;
import org.apache.skywalking.oap.server.core.storage.query.IMetadataQueryDAO;
@@ -55,50 +55,6 @@ public class H2MetadataQueryDAO implements IMetadataQueryDAO {
}
@Override
- public int numOfService(long startTimestamp, long endTimestamp) throws IOException {
- StringBuilder sql = new StringBuilder();
- List<Object> condition = new ArrayList<>(5);
- sql.append("select count(1) num from ").append(ServiceTraffic.INDEX_NAME).append(" where ");
- sql.append(ServiceTraffic.NODE_TYPE).append("=" + NodeType.Normal.value());
-
- return getNum(sql, condition);
- }
-
- private Integer getNum(StringBuilder sql, List<Object> condition) throws IOException {
- try (Connection connection = h2Client.getConnection()) {
- try (ResultSet resultSet = h2Client.executeQuery(
- connection, sql.toString(), condition.toArray(new Object[0]))) {
- if (resultSet.next()) {
- return resultSet.getInt("num");
- }
- }
- } catch (SQLException e) {
- throw new IOException(e);
- }
- return 0;
- }
-
- @Override
- public int numOfEndpoint() throws IOException {
- StringBuilder sql = new StringBuilder();
- List<Object> condition = new ArrayList<>(5);
- sql.append("select count(*) num from ").append(EndpointTraffic.INDEX_NAME);
-
- return getNum(sql, condition);
- }
-
- @Override
- public int numOfConjectural(int nodeTypeValue) throws IOException {
- StringBuilder sql = new StringBuilder();
- List<Object> condition = new ArrayList<>(5);
- sql.append("select count(*) num from ").append(ServiceTraffic.INDEX_NAME).append(" where ");
- sql.append(ServiceTraffic.NODE_TYPE).append("=?");
- condition.add(nodeTypeValue);
-
- return getNum(sql, condition);
- }
-
- @Override
public List<Service> getAllServices(long startTimestamp, long endTimestamp) throws IOException {
StringBuilder sql = new StringBuilder();
List<Object> condition = new ArrayList<>(5);