From fac4ddc9e88ce60d31e557def9c65c95ea592569 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E6=99=9F=20Wu=20Sheng?= Date: Tue, 5 May 2020 12:55:14 +0800 Subject: [PATCH] Fix two serious bugs. (#4741) --- .../server/core/analysis/worker/MetricsPersistentWorker.java | 1 + .../plugin/elasticsearch/query/TopNRecordsQueryEsDAO.java | 4 ++-- .../storage/plugin/influxdb/query/TopNRecordsQuery.java | 4 ++-- .../storage/plugin/jdbc/h2/dao/H2TopNRecordsQueryDAO.java | 4 ++-- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/worker/MetricsPersistentWorker.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/worker/MetricsPersistentWorker.java index a3cf58d0c2..9241f7a7c1 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/worker/MetricsPersistentWorker.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/worker/MetricsPersistentWorker.java @@ -169,6 +169,7 @@ public class MetricsPersistentWorker extends PersistenceWorker { nextExportWorker.ifPresent(exportEvenWorker -> exportEvenWorker.in( new ExportEvent(metrics, ExportEvent.EventType.INCREMENT))); } else { + metrics.calculate(); prepareRequests.add(metricsDAO.prepareBatchInsert(model, metrics)); nextWorker(metrics); } diff --git a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/TopNRecordsQueryEsDAO.java b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/TopNRecordsQueryEsDAO.java index f630a081bf..c18dc38318 100644 --- a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/TopNRecordsQueryEsDAO.java +++ b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/TopNRecordsQueryEsDAO.java @@ -50,8 +50,8 @@ public class TopNRecordsQueryEsDAO extends EsDAO implements ITopNRecordsQueryDAO SearchSourceBuilder sourceBuilder = SearchSourceBuilder.searchSource(); BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); boolQueryBuilder.must().add(QueryBuilders.rangeQuery(TopN.TIME_BUCKET) - .gte(duration.getStartTimeBucket()) - .lte(duration.getEndTimeBucket())); + .gte(duration.getStartTimeBucketInSec()) + .lte(duration.getEndTimeBucketInSec())); if (StringUtil.isNotEmpty(condition.getParentService())) { final String serviceId = IDManager.ServiceID.buildId(condition.getParentService(), condition.isNormal()); diff --git a/oap-server/server-storage-plugin/storage-influxdb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/influxdb/query/TopNRecordsQuery.java b/oap-server/server-storage-plugin/storage-influxdb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/influxdb/query/TopNRecordsQuery.java index 9608fd8f6d..0bc00f5775 100644 --- a/oap-server/server-storage-plugin/storage-influxdb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/influxdb/query/TopNRecordsQuery.java +++ b/oap-server/server-storage-plugin/storage-influxdb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/influxdb/query/TopNRecordsQuery.java @@ -68,8 +68,8 @@ public class TopNRecordsQuery implements ITopNRecordsQueryDAO { .column(TopN.TRACE_ID) .from(client.getDatabase(), condition.getName()) .where() - .and(gte(TopN.TIME_BUCKET, duration.getStartTimeBucket())) - .and(lte(TopN.TIME_BUCKET, duration.getEndTimeBucket())); + .and(gte(TopN.TIME_BUCKET, duration.getStartTimeBucketInSec())) + .and(lte(TopN.TIME_BUCKET, duration.getEndTimeBucketInSec())); if (StringUtil.isNotEmpty(condition.getParentService())) { final String serviceId = IDManager.ServiceID.buildId(condition.getParentService(), condition.isNormal()); 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/H2TopNRecordsQueryDAO.java b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/h2/dao/H2TopNRecordsQueryDAO.java index f1a9b8d9f2..058c544f2b 100644 --- a/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/h2/dao/H2TopNRecordsQueryDAO.java +++ b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/h2/dao/H2TopNRecordsQueryDAO.java @@ -55,9 +55,9 @@ public class H2TopNRecordsQueryDAO implements ITopNRecordsQueryDAO { } sql.append(" and ").append(TopN.TIME_BUCKET).append(" >= ?"); - parameters.add(duration.getStartTimeBucket()); + parameters.add(duration.getStartTimeBucketInSec()); sql.append(" and ").append(TopN.TIME_BUCKET).append(" <= ?"); - parameters.add(duration.getEndTimeBucket()); + parameters.add(duration.getEndTimeBucketInSec()); sql.append(" order by ").append(valueColumnName); if (condition.getOrder().equals(Order.DES)) { -- GitLab