Add UseCase

This commit is contained in:
mckang
2019-05-23 14:19:47 +09:00
parent 37a60fc01d
commit eade3f83c6

View File

@ -2,6 +2,8 @@ package com.bdwise.prometheus.client;
import java.net.MalformedURLException; import java.net.MalformedURLException;
import java.net.URI; import java.net.URI;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.http.client.HttpClient; import org.apache.http.client.HttpClient;
import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.impl.client.HttpClientBuilder;
@ -20,6 +22,7 @@ import com.bdwise.prometheus.client.converter.am.DefaultAlertManagerResult;
import com.bdwise.prometheus.client.converter.label.DefaultLabelResult; import com.bdwise.prometheus.client.converter.label.DefaultLabelResult;
import com.bdwise.prometheus.client.converter.query.DefaultQueryResult; import com.bdwise.prometheus.client.converter.query.DefaultQueryResult;
import com.bdwise.prometheus.client.converter.query.MatrixData; import com.bdwise.prometheus.client.converter.query.MatrixData;
import com.bdwise.prometheus.client.converter.query.QueryResultItemValue;
import com.bdwise.prometheus.client.converter.query.VectorData; import com.bdwise.prometheus.client.converter.query.VectorData;
import com.bdwise.prometheus.client.converter.status.DefaultConfigResult; import com.bdwise.prometheus.client.converter.status.DefaultConfigResult;
import com.bdwise.prometheus.client.converter.target.DefaultTargetResult; import com.bdwise.prometheus.client.converter.target.DefaultTargetResult;
@ -27,7 +30,7 @@ import com.bdwise.prometheus.client.converter.target.DefaultTargetResult;
import junit.framework.TestCase; import junit.framework.TestCase;
public class PromqlTest extends TestCase { public class PromqlTest extends TestCase {
private final static String TARGET_SERVER = "http://52.192.4.59:30900"; private final static String TARGET_SERVER = "http://192.168.66.60:9090";
private RestTemplate template = null; private RestTemplate template = null;
@ -45,9 +48,14 @@ public class PromqlTest extends TestCase {
template = new RestTemplate(httpRequestFactory); template = new RestTemplate(httpRequestFactory);
} }
private static String ConvertEpocToFormattedDate(String format, double epocTime) {
SimpleDateFormat formatter = new SimpleDateFormat(format);
return formatter.format(new Date(Math.round(epocTime*1000)));
}
public void testSimpleRangeQuery() throws MalformedURLException { public void testSimpleRangeQuery() throws MalformedURLException {
RangeQueryBuilder rangeQueryBuilder = QueryBuilderType.RangeQuery.newInstance(TARGET_SERVER); RangeQueryBuilder rangeQueryBuilder = QueryBuilderType.RangeQuery.newInstance(TARGET_SERVER);
URI targetUri = rangeQueryBuilder.withQuery("irate(received_api_call_total[60s])") URI targetUri = rangeQueryBuilder.withQuery("100 - avg(rate(node_cpu{application=\"node_exporter\", mode=\"idle\"}[1m])) by (instance)*100")
.withStartEpochTime(System.currentTimeMillis() / 1000 - 60*10) .withStartEpochTime(System.currentTimeMillis() / 1000 - 60*10)
.withEndEpochTime(System.currentTimeMillis() / 1000) .withEndEpochTime(System.currentTimeMillis() / 1000)
.withStepTime("60s") .withStepTime("60s")
@ -62,13 +70,21 @@ public class PromqlTest extends TestCase {
DefaultQueryResult<MatrixData> result = ConvertUtil.convertQueryResultString(rtVal); DefaultQueryResult<MatrixData> result = ConvertUtil.convertQueryResultString(rtVal);
for(MatrixData matrixData : result.getResult()) {
System.out.println(String.format("%s", matrixData.getMetric().get("instance")));
for(QueryResultItemValue itemValue : matrixData.getDataValues()) {
System.out.println(String.format("%s %10.2f ",
ConvertEpocToFormattedDate("yyyy-MM-dd hh:mm:ss", itemValue.getTimestamp()),
itemValue.getValue()
));
}
}
System.out.println(result);
} }
public void testSimpleInstantQuery() throws MalformedURLException { public void testSimpleInstantQuery() throws MalformedURLException {
InstantQueryBuilder iqb = QueryBuilderType.InstantQuery.newInstance(TARGET_SERVER); InstantQueryBuilder iqb = QueryBuilderType.InstantQuery.newInstance(TARGET_SERVER);
URI targetUri = iqb.withQuery("irate(received_api_call_total[60s])").build(); URI targetUri = iqb.withQuery("100 - avg(rate(node_cpu{application=\"node_exporter\", mode=\"idle\"}[1m])) by (instance)*100").build();
System.out.println(targetUri.toURL().toString()); System.out.println(targetUri.toURL().toString());
@ -78,6 +94,13 @@ public class PromqlTest extends TestCase {
DefaultQueryResult<VectorData> result = ConvertUtil.convertQueryResultString(rtVal); DefaultQueryResult<VectorData> result = ConvertUtil.convertQueryResultString(rtVal);
for(VectorData vectorData : result.getResult()) {
System.out.println(String.format("%s %s %10.2f",
vectorData.getMetric().get("instance"),
vectorData.getFormattedTimestamps("yyyy-MM-dd hh:mm:ss"),
vectorData.getValue() ));
}
System.out.println(result); System.out.println(result);
} }