opentsdb的项目经验

  1. 首先官方并没有给出对应的Java api接口
  2. opentsdb官方地址
    opentsdb的项目经验_第1张图片
  3. 项目中我们采用http的方式对数据进行写入和读取

数据写入

public boolean addBDRecord(BDInfo record) {
		
		String addurl=opentsdburl+"api/put?details";
		long time = System.currentTimeMillis();
		JSONObject json=new JSONObject();
		json.put("metric", record.getYjjId()+".K11."+record.getDevno());
		json.put("timestamp", time);
		json.put("value", record.getLoctime());
		json.put("tags", JSONObject.toJSON(record));
		logger.info("opentsdb参数:{}",json.toJSONString());
		String result=httpClient.doPost(addurl, json);
		logger.info("opentsdb返回:{}",result);
		JSONObject resultobj=JSONObject.parseObject(result);
		if(resultobj.getInteger("success")>=1){
			return true;
		}
		return false;
	}

数据读取

public void getTLJRecordList(String yjjId, String typestr, Date startTime, Date endTime) {
		JSONObject json=new JSONObject();
		json.put("start",startTime.getTime());
		json.put("end", endTime.getTime());
		JSONArray queries=new JSONArray();
		JSONObject childjson=new JSONObject();
		json.put("queries", queries);
		queries.add(childjson);
		childjson.put("metric", yjjId+"."+typestr);
		childjson.put("aggregator", "sum");
		childjson.put("downsample", "5s-avg");
		childjson.put("rate", true);
		JSONObject tags=new JSONObject();
		childjson.put("tags", tags);
		tags.put("v1", "*");
		//tags.put("v2", "*");
		//tags.put("v3", "*");
		//tags.put("v4", "*");
		//tags.put("v5", "*");
		//String geturl=opentsdburl+"api/query";
		String geturl="http://47.99.194.20:4242/api/query";
		String result=httpClient.doPost(geturl, json);
		logger.info("返回数据:{}",result);
	}
  1. 可以在本机IP+:4242访问 官方提供的web界面
    如图
    opentsdb的项目经验_第2张图片
  2. But,官方提供的web界面并不直观。grafana 提供了更多更全面的数据展示

你可能感兴趣的:(opentsdb,Java,项目,http)