grafana+SimpleJson配置图表

package com.cn.hnust.controller;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

@Controller
@RequestMapping("/json")
public class JsonController {

	//设置数据源
	@RequestMapping()
	@ResponseBody
	public Map list(HttpServletRequest request,HttpServletResponse response) {
		response.setHeader("Access-Control-Allow-Headers", "accept, content-type");
        response.setHeader("Access-Control-Allow-Methods", "POST");
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Accept", "application/json");
        response.setHeader("Content-Type", "application/json");
        response.setHeader("Authorization", "Bearer eyJrIjoidGFIOW41aHRoMXZ5aTkxcDBNYUxteDk3TU9zVUhoSkUiLCJuIjoiZ3JhZmFuYV90ZXN0IiwiaWQiOjF9");
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("result", "200 ok");
        return map;
	}
	
	//设置参数
	@RequestMapping("/search")
	@ResponseBody
	public List search(HttpServletRequest request,HttpServletResponse response) {
		response.setHeader("Access-Control-Allow-Headers", "accept, content-type");
        response.setHeader("Access-Control-Allow-Methods", "POST");
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Accept", "application/json");
        response.setHeader("Content-Type", "application/json");
        response.setHeader("Authorization", "Bearer eyJrIjoidGFIOW41aHRoMXZ5aTkxcDBNYUxteDk3TU9zVUhoSkUiLCJuIjoiZ3JhZmFuYV90ZXN0IiwiaWQiOjF9");
        
        List<String> result = new ArrayList<String>();
        result.add("CPU");
        result.add("RAM");
        result.add("LOAD");
        result.add("SWAP");
        result.add("DISK");
        result.add("NET");
        return result;
	}
	
	//查询
	@RequestMapping("/query")
    @ResponseBody
    public List query(@RequestBody Map<String,Object>  params, HttpServletRequest request,HttpServletResponse response) {
		List<Map<String, Object>> result = new ArrayList<Map<String, Object>>() ;
        List<Map> targetList = (List) params.get("targets");
       for (Map targetMap : targetList){
            String target = (String)targetMap.get("target");
            //Map scopedVars = (Map) params.get("scopedVars");
            //Map IP = (Map) scopedVars.get("IP");
            //String nodeIP = (String) IP.get("text");
            if (target.equals("CPU")){
                result.add(strjson());//放入json数据
            }else if (target.equals("RAM")){
                result.add(null);//放入json数据
            }else if (target.equals("LOAD")) {
                result.add(null);
            }else if (target.equals("SWAP")){
                result.add(null);
            }else if(target.equals("DISK")){
                result.add(null);
            }else if (target.equals("NET")){
            	result.add(null);
            }
        }
        response.setHeader("Access-Control-Allow-Headers", "accept, content-type");
        response.setHeader("Access-Control-Allow-Methods", "POST");
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Accept", "application/json");
        response.setHeader("Content-Type", "application/json");
        response.setHeader("Authorization", "Bearer eyJrIjoidGFIOW41aHRoMXZ5aTkxcDBNYUxteDk3TU9zVUhoSkUiLCJuIjoiZ3JhZmFuYV90ZXN0IiwiaWQiOjF9");
        Collections.sort(result, new Comparator<Map<String, Object>>() {
            public int compare(Map<String, Object> o1, Map<String, Object> o2) {
                String name1 = String.valueOf(o1.get("target").toString()) ;
                String name2 = String.valueOf(o2.get("target").toString()) ; 
                return name1.compareTo(name2);
            }
        });
        return result;
    }
	
	
	private Map<String, Object> strjson() {
		//String str = "{\"A\":{\"tables\":[{\"columns\":[{\"text\":\"序列\",\"sort\":true,\"desc\":true,\"title\":\"序列\",\"style\":{\"alias\":\"\",\"colorMode\":null,\"colors\":[\"rgba(245, 54, 54, 0.9)\",\"rgba(237, 129, 40, 0.89)\",\"rgba(50, 172, 45, 0.97)\"],\"decimals\":2,\"pattern\":\"/.*/\",\"thresholds\":[],\"type\":\"number\",\"unit\":\"short\"},\"hidden\":false,\"$$hashKey\":\"object:644\"},{\"text\":\"水果名称12\",\"title\":\"水果名称12\",\"style\":{\"alias\":\"\",\"colorMode\":null,\"colors\":[\"rgba(245, 54, 54, 0.9)\",\"rgba(237, 129, 40, 0.89)\",\"rgba(50, 172, 45, 0.97)\"],\"decimals\":2,\"pattern\":\"/.*/\",\"thresholds\":[],\"type\":\"number\",\"unit\":\"short\"},\"hidden\":false,\"$$hashKey\":\"object:645\"},{\"text\":\"价钱\",\"title\":\"价钱\",\"style\":{\"alias\":\"\",\"colorMode\":null,\"colors\":[\"rgba(245, 54, 54, 0.9)\",\"rgba(237, 129, 40, 0.89)\",\"rgba(50, 172, 45, 0.97)\"],\"decimals\":2,\"pattern\":\"/.*/\",\"thresholds\":[],\"type\":\"number\",\"unit\":\"short\"},\"hidden\":false,\"$$hashKey\":\"object:646\"},{\"text\":\"重量(kg)\",\"title\":\"重量(kg)\",\"style\":{\"alias\":\"\",\"colorMode\":null,\"colors\":[\"rgba(245, 54, 54, 0.9)\",\"rgba(237, 129, 40, 0.89)\",\"rgba(50, 172, 45, 0.97)\"],\"decimals\":2,\"pattern\":\"/.*/\",\"thresholds\":[],\"type\":\"number\",\"unit\":\"short\"},\"hidden\":false,\"$$hashKey\":\"object:647\"},{\"text\":\"总价钱\",\"title\":\"总价钱\",\"style\":{\"alias\":\"\",\"colorMode\":null,\"colors\":[\"rgba(245, 54, 54, 0.9)\",\"rgba(237, 129, 40, 0.89)\",\"rgba(50, 172, 45, 0.97)\"],\"decimals\":2,\"pattern\":\"/.*/\",\"thresholds\":[],\"type\":\"number\",\"unit\":\"short\"},\"hidden\":false,\"$$hashKey\":\"object:648\"}],\"rows\":[[1,\"水果01\",4,2,8],[2,\"水果02\",5,2,10],[3,\"水果03\",6,2,12],[4,\"水果04\",7,2,14],[5,\"水果05\",8,2,16]]}]}}";
		Map<String, Object> map = new HashMap<>();
		JSONArray ja = new JSONArray();
		for (int i = 0; i < 10; i++) {
			JSONObject jb = new JSONObject();
			jb.put("num", 10*i);
			jb.put("createTime", "2019-05-09T"+(11+i)+":01:01");
			ja.add(jb);
		}
		map.put("reasult", ja);
		return map;
	}

	//添加注解
	@RequestMapping("/annotations")
    @ResponseBody
    public Map Annotations() {
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("result", "200 ok");
        return map;
    }
}

 

转载于:https://my.oschina.net/lisc2016/blog/3047585

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
simplejson是一个用于编码和解码JSON数据的Python模块。它是Python标准库模块中json的第三方替代品。simplejson在各种Python运行环境中都可以使用,包括CPython、Jython和IronPython等。它具有比内置的json模块更好的性能和更好的错误处理能力,支持自定义编码器和解码器,并且可以在处理JSON数据的过程中提供更多的控制选项。 以下是simplejson的一些常见用法: 1.将Python对象编码为JSON格式的字符串[^1]: ```python import simplejson as json data = {'name': 'Bob', 'age': 20} json_data = json.dumps(data) print(json_data) # 输出{"name": "Bob", "age": 20} ``` 2.将JSON格式的字符串解码为Python对象[^1]: ```python import simplejson as json json_data = '{"name": "Bob", "age": 20}' data = json.loads(json_data) print(data) # 输出{'name': 'Bob', 'age': 20} ``` 3.自定义编码器和解码器[^2]: ```python import simplejson as json class Person: def __init__(self, name, age): self.name = name self.age = age def encode_person(obj): if isinstance(obj, Person): return {'name': obj.name, 'age': obj.age} else: raise TypeError('Object is not a Person') def decode_person(json_dict): if 'name' in json_dict and 'age' in json_dict: return Person(json_dict['name'], json_dict['age']) else: return json_dict data = Person('Bob', 20) json_data = json.dumps(data, default=encode_person) print(json_data) # 输出{"name": "Bob", "age": 20} data = json.loads(json_data, object_hook=decode_person) print(data.name, data.age) # 输出Bob 20 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值