kairosdb client库

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执行的结果,是不是操作起来比较简单啊!先介绍到这吧!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值