| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- var input = JSON.parse(decodeURIComponent(INPUT));
- // 查出指定类的bucket属性
- var classKeysList = function(){
- try{
- var rtn = _.filter(_.map(odb.classfields(input.class),function(v){
- // 获取bucket属性
- // && !v.Name.match(/_baseline/)
- if(v.Btype == 'tsdb' && v.Name && v.Ftype == 'bucket'){
-
- var subKeys = [];
- var subKeysMql = "";
- // 获取子对象
- // 根据index查看是否有crc定义
- var item = v.Params[v['CRC']];
- if(!_.isEmpty(item)){
- // 子对象
- subKeys = getSubObj(v.Name, item.Name).result;
- // debug用
- subKeysMql = getSubObj(v.Name, item.Name).mql;
- }
-
- var params = _.filter(_.map(v.Params,function(val,idx){
- if(val.Type != 'string'){
- return {value: val.Name, label:val.Name, ftype:val.Type, unit: val.Unit?val.Unit:"" };
- }
-
- }),null);
-
- return {value: v.Name, label: v.Name, ftype: v.Ftype, children:params, subKeys: subKeys, trace: subKeysMql};
- }
- }),null);
- return rtn;
- } catch(err){
- return err;
- }
- };
- // 获取子对象
- // meta中定义的crc,指定了哪个bucket属性有子对象
- // SELECT id,disk1_perf[1].time('2020-06-01','').distinct() FROM /matrix/entity/it/it_aix where id='it_aix:192.168.190.175'
- var getSubObj = function(bucket,bucketKey){
-
- var mql = "";
-
- try{
- // 当月
- var current_month = new Date().toISOString().slice(0, 7);
-
- mql = "SELECT "+bucket+"['"+bucketKey+"'].time('"+current_month+"','').distinct() FROM "+input.class+" where id='"+input.entity+"'";
-
- var rtn = _.map(_.flatten(odb.mql(mql).data[0][bucket]),function(v){
- return {name:v, value: bucketKey+"='"+v+"'"};
- });
-
- return {result:rtn, mql:mql};
-
- } catch(err){
- return {result:[], mql:mql};;
- }
-
- }
- OUTPUT = classKeysList();
|