数据源配置方法 #
驱动: prometheus 连接地址: http://ip:9090
查询方法 #
输入常规查询命令即可
   返回值为prometheus标准json, 你需要在图形编辑器中使用js处理数据
返回值为prometheus标准json, 你需要在图形编辑器中使用js处理数据
let dataset=__dataset__;
//获取返回值列表中的第一值
dataset = dataset.data.result[0].value;
print(dataset)
处理数据样列 #
如获得的数据
{
"status":"success",
"data":{
   "resultType":"vector",
   "result":[
        {"metric":{"__name__":"starrocks_fe_routine_load_jobs","group":"fe","instance":"xxx:8030","job":"StarRocks_Cluster01","state":"CANCELLED"},
          "value":[1671188429.573,"0"]
        }, 
        {"metric":{"__name__":"starrocks_fe_routine_load_jobs","group":"fe","instance":"xxx:8030","job":"StarRocks_Cluster01","state":"NEED_SCHEDULE"},
         "value":[1671188429.573,"2"]}
        ...
       ]
    }
}
图形中处理成smartchart标准格式
//处理prometheus
let df = __dataset__;
let result = df.data.result;
let dataset = [['instance','state','qty']]; //二维表头
for(let item of result){
    let pmetric = item.metric;
    let pvalue = item.value;
    dataset.push([pmetric.instance,pmetric.state,pvalue[1]]);
}
dataset = ds_pivot(dataset); //列转行
如果带时序的, 数据处理参考
let df = __dataset__;
let result = df.data.result;
let dataset = [['instance','seq','qty']]; //二维表头
for(let item of result){
    let pmetric = item.metric;
    let pvalues = item.values;
    let startv = pvalues[0][1]; //初始值
    for(let i=1; i<pvalues.length; i++){
        let pvalue = pvalues[i];
        dataset.push([i,pmetric.instance,pvalue[1]-startv]); //计算增长值
    }
}
dataset = ds_pivot(dataset); //列转行
你可能会用上的时间戳转文本格式
function getLocalTime(nS) {
 return new Date(nS * 1000).toLocaleString(); 
}
支持多段查询 #
使用分号(;)分隔查询
  