The time range expression for query the live instance between the start time and end time is incorrect.
This commit is contained in:
parent
9529a75bc9
commit
6fa179e18f
|
|
@ -106,10 +106,17 @@ public class InstanceEsUIDAO extends EsDAO implements IInstanceUIDAO {
|
|||
|
||||
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
|
||||
|
||||
//TODO second
|
||||
BoolQueryBuilder boolQuery1 = QueryBuilders.boolQuery();
|
||||
boolQuery1.must().add(QueryBuilders.rangeQuery(InstanceTable.COLUMN_HEARTBEAT_TIME).gte(endSecondTimeBucket));
|
||||
boolQuery1.must().add(QueryBuilders.rangeQuery(InstanceTable.COLUMN_REGISTER_TIME).lte(endSecondTimeBucket));
|
||||
|
||||
BoolQueryBuilder boolQuery2 = QueryBuilders.boolQuery();
|
||||
boolQuery2.must().add(QueryBuilders.rangeQuery(InstanceTable.COLUMN_REGISTER_TIME).lte(endSecondTimeBucket));
|
||||
boolQuery2.must().add(QueryBuilders.rangeQuery(InstanceTable.COLUMN_HEARTBEAT_TIME).gte(startSecondTimeBucket));
|
||||
|
||||
BoolQueryBuilder timeBoolQuery = QueryBuilders.boolQuery();
|
||||
timeBoolQuery.should().add(QueryBuilders.rangeQuery(InstanceTable.COLUMN_REGISTER_TIME).gte(startSecondTimeBucket).lte(endSecondTimeBucket));
|
||||
timeBoolQuery.should().add(QueryBuilders.rangeQuery(InstanceTable.COLUMN_HEARTBEAT_TIME).gte(startSecondTimeBucket).lte(endSecondTimeBucket));
|
||||
timeBoolQuery.should().add(boolQuery1);
|
||||
timeBoolQuery.should().add(boolQuery2);
|
||||
|
||||
boolQueryBuilder.must().add(timeBoolQuery);
|
||||
|
||||
|
|
@ -172,9 +179,17 @@ public class InstanceEsUIDAO extends EsDAO implements IInstanceUIDAO {
|
|||
}
|
||||
boolQuery.must().add(QueryBuilders.termQuery(InstanceTable.COLUMN_IS_ADDRESS, BooleanUtils.FALSE));
|
||||
|
||||
BoolQueryBuilder boolQuery1 = QueryBuilders.boolQuery();
|
||||
boolQuery1.must().add(QueryBuilders.rangeQuery(InstanceTable.COLUMN_HEARTBEAT_TIME).gte(endSecondTimeBucket));
|
||||
boolQuery1.must().add(QueryBuilders.rangeQuery(InstanceTable.COLUMN_REGISTER_TIME).lte(endSecondTimeBucket));
|
||||
|
||||
BoolQueryBuilder boolQuery2 = QueryBuilders.boolQuery();
|
||||
boolQuery2.must().add(QueryBuilders.rangeQuery(InstanceTable.COLUMN_REGISTER_TIME).lte(endSecondTimeBucket));
|
||||
boolQuery2.must().add(QueryBuilders.rangeQuery(InstanceTable.COLUMN_HEARTBEAT_TIME).gte(startSecondTimeBucket));
|
||||
|
||||
BoolQueryBuilder timeBoolQuery = QueryBuilders.boolQuery();
|
||||
timeBoolQuery.should().add(QueryBuilders.rangeQuery(InstanceTable.COLUMN_REGISTER_TIME).gte(startSecondTimeBucket).lte(endSecondTimeBucket));
|
||||
timeBoolQuery.should().add(QueryBuilders.rangeQuery(InstanceTable.COLUMN_HEARTBEAT_TIME).gte(startSecondTimeBucket).lte(endSecondTimeBucket));
|
||||
timeBoolQuery.should().add(boolQuery1);
|
||||
timeBoolQuery.should().add(boolQuery2);
|
||||
|
||||
boolQuery.must().add(timeBoolQuery);
|
||||
|
||||
|
|
@ -198,10 +213,17 @@ public class InstanceEsUIDAO extends EsDAO implements IInstanceUIDAO {
|
|||
boolQuery.must().add(QueryBuilders.termQuery(InstanceTable.COLUMN_APPLICATION_ID, applicationId));
|
||||
boolQuery.must().add(QueryBuilders.termQuery(InstanceTable.COLUMN_IS_ADDRESS, BooleanUtils.FALSE));
|
||||
|
||||
//TODO second
|
||||
BoolQueryBuilder boolQuery1 = QueryBuilders.boolQuery();
|
||||
boolQuery1.must().add(QueryBuilders.rangeQuery(InstanceTable.COLUMN_HEARTBEAT_TIME).gte(endSecondTimeBucket));
|
||||
boolQuery1.must().add(QueryBuilders.rangeQuery(InstanceTable.COLUMN_REGISTER_TIME).lte(endSecondTimeBucket));
|
||||
|
||||
BoolQueryBuilder boolQuery2 = QueryBuilders.boolQuery();
|
||||
boolQuery2.must().add(QueryBuilders.rangeQuery(InstanceTable.COLUMN_REGISTER_TIME).lte(endSecondTimeBucket));
|
||||
boolQuery2.must().add(QueryBuilders.rangeQuery(InstanceTable.COLUMN_HEARTBEAT_TIME).gte(startSecondTimeBucket));
|
||||
|
||||
BoolQueryBuilder timeBoolQuery = QueryBuilders.boolQuery();
|
||||
timeBoolQuery.should().add(QueryBuilders.rangeQuery(InstanceTable.COLUMN_REGISTER_TIME).gte(startSecondTimeBucket).lte(endSecondTimeBucket));
|
||||
timeBoolQuery.should().add(QueryBuilders.rangeQuery(InstanceTable.COLUMN_HEARTBEAT_TIME).gte(startSecondTimeBucket).lte(endSecondTimeBucket));
|
||||
timeBoolQuery.should().add(boolQuery1);
|
||||
timeBoolQuery.should().add(boolQuery2);
|
||||
|
||||
boolQuery.must().add(timeBoolQuery);
|
||||
searchRequestBuilder.setQuery(boolQuery);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,44 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
* (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
package org.apache.skywalking.apm.collector.ui.utils;
|
||||
|
||||
import org.junit.Assert;
|
||||
|
||||
/**
|
||||
* @author peng-yongsheng
|
||||
*/
|
||||
public class DurationTestCase {
|
||||
|
||||
@org.junit.Test
|
||||
public void test() {
|
||||
Assert.assertEquals(true, expression(80, 150));
|
||||
Assert.assertEquals(true, expression(80, 250));
|
||||
Assert.assertEquals(true, expression(150, 250));
|
||||
Assert.assertEquals(true, expression(120, 180));
|
||||
Assert.assertEquals(false, expression(70, 90));
|
||||
Assert.assertEquals(false, expression(250, 300));
|
||||
}
|
||||
|
||||
private boolean expression(int start, int end) {
|
||||
int register = 100;
|
||||
int heart = 200;
|
||||
|
||||
return (heart > end && register <= end) || (register <= end && heart >= start);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue