kairosdb client库
2016-05-09 12:46
501 查看
The KairosDB client is a Java library that makes sending
metrics and querying the KairosDB server simple. The HttpClient class is used to push metrics or query the KairosDB server. The library uses the builder pattern to simplify the task of creating the JSON that is used by the client.
源码下载地址:https://github.com/kairosdb/kairosdb-client/
将源码集成到你的java项目中
红色部分就是源码部分。
我们建立一个class来测试操作
package kairosdb.client.demo;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URISyntaxException;
import org.kairosdb.client.HttpClient;
import org.kairosdb.client.builder.AggregatorFactory;
import org.kairosdb.client.builder.MetricBuilder;
import org.kairosdb.client.builder.QueryBuilder;
import org.kairosdb.client.builder.TimeUnit;
import org.kairosdb.client.response.GetResponse;
import org.kairosdb.client.response.QueryResponse;
import org.kairosdb.client.response.Response;
public class Metric {
// 获取metric的name集合
public static void getMetricNames() {
HttpClient client;
GetResponse response;
try {
client = new HttpClient("http://10.20.0.10:9090");
response = client.getMetricNames();
System.out.println("*********************MetricNames**********************");
System.out.println("Response Code =" + response.getStatusCode());
for (String name : response.getResults()) {
System.out.println(name);
}
client.shutdown();
} catch (IOException e) {
e.printStackTrace();
}
}
// 获取Tag的name集合
public static void getTagNames() {
HttpClient client;
GetResponse response;
try {
client = new HttpClient("http://10.20.0.10:9090");
response = client.getTagNames();
System.out.println("*********************TagNames**********************");
System.out.println("Response Code =" + response.getStatusCode());
for (String name : response.getResults()) {
System.out.println(name);
}
client.shutdown();
} catch (IOException e) {
e.printStackTrace();
}
}
// 获取Tag的值集合
public static void getTagValues() {
HttpClient client;
GetResponse response;
try {
client = new HttpClient("http://10.20.0.10:9090");
response = client.getTagValues();
System.out.println("*********************TagValues**********************");
System.out.println("Response Code =" + response.getStatusCode());
for (String name : response.getResults()) {
System.out.println(name);
}
client.shutdown();
} catch (IOException e) {
e.printStackTrace();
}
}
// pushMetric
public static void pushMetric() throws URISyntaxException, IOException {
MetricBuilder builder = MetricBuilder.getInstance();
builder.addMetric("proc.loadavg.1m").addTag("host", "kairosdb")
.addDataPoint(System.currentTimeMillis(), 10)
.addDataPoint(System.currentTimeMillis(), 30L);
HttpClient client = new HttpClient("http://10.20.0.10:9090");
Response response = client.pushMetrics(builder);
System.out.println("*********************Push Metric**********************");
System.out.println("Response Code =" + response.getStatusCode());
client.shutdown();
}
// 查询数据节点
public static void queryDataPoint() throws IOException, URISyntaxException {
QueryBuilder builder = QueryBuilder.getInstance();
builder.setStart(5, TimeUnit.MINUTES).setEnd(1, TimeUnit.MINUTES).addMetric("kairosdb.http.query_time")
.addAggregator(AggregatorFactory.createSumAggregator(1, TimeUnit.MINUTES));
HttpClient client = new HttpClient("http://10.20.0.10:9090");
QueryResponse response = client.query(builder);
String body = response.getBody();
System.out.println("*********************Query DataPoint**********************");
System.out.println("Response Code =" + response.getStatusCode());
System.out.println(body);
client.shutdown();
}
// 删除Metric中的数据点
public static void deleteMetric() throws IOException {
// MetricBuilder builder = MetricBuilder.getInstance();
HttpClient client = new HttpClient("http://10.20.0.10:9090");
Response response = client.deleteMetric("proc.loadavg.1m");
System.out.println("*********************Delete Metric**********************");
System.out.println("Response Code =" + response.getStatusCode());
client.shutdown();
}
/**
* 类描述:
*
* @author: blank
* @date: 日期:2016-5-9 时间:上午10:30:14
* @param args
* @version 1.0
* @throws IOException
* @throws URISyntaxException
*/
public static void main(String[] args) throws URISyntaxException, IOException {
getMetricNames();
getTagNames();
getTagValues();
pushMetric();
deleteMetric();
queryDataPoint();
}
}
执行结果为:
*********************MetricNames**********************
Response Code =200
kairosdb.datastore.query_time
kairosdb.protocol.telnet_request_count
kairosdb.http.ingest_count
kairosdb.datastore.query_row_count
kairosdb.http.ingest_time
kairosdb.protocol.http_request_count
kairosdb.jvm.thread_count
kairosdb.jvm.total_memory
kairosdb.jvm.max_memory
kairosdb.http.request_time
kairosdb.jvm.free_memory
kairosdb.datastore.query_sample_size
kairosdb.datastore.query_collisions
kairosdb.http.query_time
kairosdb.metric_counters
proc.loadavg.1m
*********************TagNames**********************
Response Code =200
method
metric_name
query_index
request
host
*********************TagValues**********************
Response Code =200
kairosdb
tagvalues
proc.loadavg.1m
query
kairosdb.datastore.query_time
kairosdb.protocol.telnet_request_count
datapoints
tagnames
put
tagsnames
1
2
controller0
/datapoints/query
kairosdb.http.request_time
kairosdb.jvm.total_memory
metricnames
version
kairosdb.jvm.free_memory
kairosdb.datastore.query_sample_size
tags
kairosdb.http.query_time
kairosdb.jvm.thread_count
kairosdb.datastore.query_collisions
kairosdb.jvm.max_memory
*********************Push Metric**********************
Response Code =204
*********************Delete Metric**********************
Response Code =204
*********************Query DataPoint**********************
Response Code =200
{"queries":[{"sample_size":0,"results":[{"name":"kairosdb.http.query_time","group_by":[{"name":"type","type":"number"}],"tags":{"host":["controller0","kairosdb"],"metric_name":["kairosdb.datastore.query_collisions","kairosdb.datastore.query_sample_size","kairosdb.datastore.query_time","kairosdb.http.query_time","kairosdb.http.request_time","kairosdb.jvm.free_memory","kairosdb.jvm.max_memory","kairosdb.jvm.thread_count","kairosdb.jvm.total_memory","kairosdb.protocol.telnet_request_count","proc.loadavg.1m"],"query_index":["1","2"],"request":["/datapoints/query"]},"values":[]}]}]}
以上就是kairosdb执行的结果,是不是操作起来比较简单啊!先介绍到这吧!
metrics and querying the KairosDB server simple. The HttpClient class is used to push metrics or query the KairosDB server. The library uses the builder pattern to simplify the task of creating the JSON that is used by the client.
源码下载地址:https://github.com/kairosdb/kairosdb-client/
将源码集成到你的java项目中
红色部分就是源码部分。
我们建立一个class来测试操作
package kairosdb.client.demo;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URISyntaxException;
import org.kairosdb.client.HttpClient;
import org.kairosdb.client.builder.AggregatorFactory;
import org.kairosdb.client.builder.MetricBuilder;
import org.kairosdb.client.builder.QueryBuilder;
import org.kairosdb.client.builder.TimeUnit;
import org.kairosdb.client.response.GetResponse;
import org.kairosdb.client.response.QueryResponse;
import org.kairosdb.client.response.Response;
public class Metric {
// 获取metric的name集合
public static void getMetricNames() {
HttpClient client;
GetResponse response;
try {
client = new HttpClient("http://10.20.0.10:9090");
response = client.getMetricNames();
System.out.println("*********************MetricNames**********************");
System.out.println("Response Code =" + response.getStatusCode());
for (String name : response.getResults()) {
System.out.println(name);
}
client.shutdown();
} catch (IOException e) {
e.printStackTrace();
}
}
// 获取Tag的name集合
public static void getTagNames() {
HttpClient client;
GetResponse response;
try {
client = new HttpClient("http://10.20.0.10:9090");
response = client.getTagNames();
System.out.println("*********************TagNames**********************");
System.out.println("Response Code =" + response.getStatusCode());
for (String name : response.getResults()) {
System.out.println(name);
}
client.shutdown();
} catch (IOException e) {
e.printStackTrace();
}
}
// 获取Tag的值集合
public static void getTagValues() {
HttpClient client;
GetResponse response;
try {
client = new HttpClient("http://10.20.0.10:9090");
response = client.getTagValues();
System.out.println("*********************TagValues**********************");
System.out.println("Response Code =" + response.getStatusCode());
for (String name : response.getResults()) {
System.out.println(name);
}
client.shutdown();
} catch (IOException e) {
e.printStackTrace();
}
}
// pushMetric
public static void pushMetric() throws URISyntaxException, IOException {
MetricBuilder builder = MetricBuilder.getInstance();
builder.addMetric("proc.loadavg.1m").addTag("host", "kairosdb")
.addDataPoint(System.currentTimeMillis(), 10)
.addDataPoint(System.currentTimeMillis(), 30L);
HttpClient client = new HttpClient("http://10.20.0.10:9090");
Response response = client.pushMetrics(builder);
System.out.println("*********************Push Metric**********************");
System.out.println("Response Code =" + response.getStatusCode());
client.shutdown();
}
// 查询数据节点
public static void queryDataPoint() throws IOException, URISyntaxException {
QueryBuilder builder = QueryBuilder.getInstance();
builder.setStart(5, TimeUnit.MINUTES).setEnd(1, TimeUnit.MINUTES).addMetric("kairosdb.http.query_time")
.addAggregator(AggregatorFactory.createSumAggregator(1, TimeUnit.MINUTES));
HttpClient client = new HttpClient("http://10.20.0.10:9090");
QueryResponse response = client.query(builder);
String body = response.getBody();
System.out.println("*********************Query DataPoint**********************");
System.out.println("Response Code =" + response.getStatusCode());
System.out.println(body);
client.shutdown();
}
// 删除Metric中的数据点
public static void deleteMetric() throws IOException {
// MetricBuilder builder = MetricBuilder.getInstance();
HttpClient client = new HttpClient("http://10.20.0.10:9090");
Response response = client.deleteMetric("proc.loadavg.1m");
System.out.println("*********************Delete Metric**********************");
System.out.println("Response Code =" + response.getStatusCode());
client.shutdown();
}
/**
* 类描述:
*
* @author: blank
* @date: 日期:2016-5-9 时间:上午10:30:14
* @param args
* @version 1.0
* @throws IOException
* @throws URISyntaxException
*/
public static void main(String[] args) throws URISyntaxException, IOException {
getMetricNames();
getTagNames();
getTagValues();
pushMetric();
deleteMetric();
queryDataPoint();
}
}
执行结果为:
*********************MetricNames**********************
Response Code =200
kairosdb.datastore.query_time
kairosdb.protocol.telnet_request_count
kairosdb.http.ingest_count
kairosdb.datastore.query_row_count
kairosdb.http.ingest_time
kairosdb.protocol.http_request_count
kairosdb.jvm.thread_count
kairosdb.jvm.total_memory
kairosdb.jvm.max_memory
kairosdb.http.request_time
kairosdb.jvm.free_memory
kairosdb.datastore.query_sample_size
kairosdb.datastore.query_collisions
kairosdb.http.query_time
kairosdb.metric_counters
proc.loadavg.1m
*********************TagNames**********************
Response Code =200
method
metric_name
query_index
request
host
*********************TagValues**********************
Response Code =200
kairosdb
tagvalues
proc.loadavg.1m
query
kairosdb.datastore.query_time
kairosdb.protocol.telnet_request_count
datapoints
tagnames
put
tagsnames
1
2
controller0
/datapoints/query
kairosdb.http.request_time
kairosdb.jvm.total_memory
metricnames
version
kairosdb.jvm.free_memory
kairosdb.datastore.query_sample_size
tags
kairosdb.http.query_time
kairosdb.jvm.thread_count
kairosdb.datastore.query_collisions
kairosdb.jvm.max_memory
*********************Push Metric**********************
Response Code =204
*********************Delete Metric**********************
Response Code =204
*********************Query DataPoint**********************
Response Code =200
{"queries":[{"sample_size":0,"results":[{"name":"kairosdb.http.query_time","group_by":[{"name":"type","type":"number"}],"tags":{"host":["controller0","kairosdb"],"metric_name":["kairosdb.datastore.query_collisions","kairosdb.datastore.query_sample_size","kairosdb.datastore.query_time","kairosdb.http.query_time","kairosdb.http.request_time","kairosdb.jvm.free_memory","kairosdb.jvm.max_memory","kairosdb.jvm.thread_count","kairosdb.jvm.total_memory","kairosdb.protocol.telnet_request_count","proc.loadavg.1m"],"query_index":["1","2"],"request":["/datapoints/query"]},"values":[]}]}]}
以上就是kairosdb执行的结果,是不是操作起来比较简单啊!先介绍到这吧!
相关文章推荐
- kairosdb Rest API
- Diagnostics: Exception from container-launch
- CALayer position contains NaN: [182.5 nan]
- failed to open file mysql,导入mysql数据库打不开的解决办法
- train_cascade 源码阅读之级联训练
- train _cascade 源码阅读之HOG特征
- train_cascade 源码阅读之LBP特征
- train_cascade 源码阅读之Haar特征
- 经验:人工智能威力初显,想养一只阿尔法狗帮我画图
- Entity Framework插入数据报错:Validation failed for one or more entities
- -XX:+PrintGCDetails 打印GC详细信息
- CDISC SDTM SU domain 学习笔记
- Ex2010-02 How to Reconnect a Disconnected Mailbox in 2010
- 11. Container With Most Wate
- Contains Duplicate
- juce中的BailOutChecker
- hdu3446 daizhenyang's chess 【一般图匹配】
- 利用Gensim训练关于英文维基百科的Word2Vec模型(Training Word2Vec Model on English Wikipedia by Gensim)
- Andorid总结 - AIDL
- shiro中的filterChainDefinitions