Hi,
I'm currently using the below code to get avg value for every 30min from
current time stamp. How can I pass 2 joda DateTime in this range filter to
query between those timestamp ? Please let me know
public static Double searchAvgResultCPU(String esIndex, String esType,
List<String> ipList) {
String cpuMetricsQueryTime =
MessageTranslator.getMessage("es.cpu_metrics.query.time");
Iterator<String> i = ipList.iterator();
logger.debug(GOT_THE_IP_LIST_AS + ipList);
if (ipList.size() == 0) {
logger.info(THE_IP_LIST_GOT_AS_EMPTY);
return (double) 0;
}
else {
logger.info("opening a es client connection to query..");
Client client = ESClientFactory.getInstance();
BoolQueryBuilder bqb = QueryBuilders.boolQuery();
logger.info(MAKING_BOOL_QUERY_FOR_ALL_IP_LIST);
while (i.hasNext()) {
bqb.should(QueryBuilders.termQuery(ADDRESS, i.next()));
}
*FilterBuilder fb =
FilterBuilders.rangeFilter(TIMESTAMP).from( "now-" +
cpuMetricsQueryTime).to("now");*
SearchResponse response =
client.prepareSearch(esIndex).setTypes(esType).setQuery(
QueryBuilders.filteredQuery(bqb, fb)).setSize(20)
.addAggregation(
AggregationBuilders.avg(CPU_AVERAGE).field(VALUE))
.execute().actionGet();
Avg avg = response.getAggregations().get(CPU_AVERAGE);
Double averageValue = avg.getValue();
if (averageValue.isNaN()) {
logger.debug(THE_AVERAGE_VALUE_IS_RETURNED_AS
+ averageValue + RETURNING_0_AS_OUTPUT);
return (double) 0;
}
logger.info(THE_AVERAGE_VALUE_RETURNED_IS + averageValue);
return averageValue;
}
}
Thanks,
Subhadip
--
You received this message because you are subscribed to the Google Groups
"elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/elasticsearch/ae3ec5f5-9bb1-44e0-b913-e42657af4afc%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.