testoo.go 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548
  1. package main
  2. import (
  3. //"fmt"
  4. //"time"
  5. //"math"
  6. . "git.wecise.com/wecise/odbserver/odb"
  7. "git.wecise.com/wecise/odbserver/odb/test"
  8. "gitee.com/wecisecode/util/logger"
  9. //"gitee.com/wecisecode/util/set/strset"
  10. )
  11. // CGO_ENABLED=1 go run --ldflags '-linkmode external -extldflags "-static"' testoo.go
  12. // #cgo LDFLAGS: -L/opt/odbserver/sqlite -lsqlite -ldl
  13. // #include "/opt/odbserver/sqlite/sqlite.h"
  14. // #include <stdint.h>
  15. // #include <stdlib.h>
  16. // extern int64_t uhaha_seed;
  17. // extern int64_t uhaha_ts;
  18. // void uhaha_begin_reader();
  19. // void uhaha_end_reader();
  20. func main() {
  21. //options := map[string]interface{} {"cache":odb.CacheAll}
  22. //g,err:= odb.New( options )
  23. //option := &StoreOption{Cache:CacheAll}
  24. option := &Option{Cache: CacheAll, Keyspace: "ootest", DisableInitialHostLookup: true, DisableNotify: true}
  25. g, err := test.NewG(option)
  26. if err != nil {
  27. logger.Error(err.Error())
  28. } else {
  29. defer g.Close()
  30. }
  31. //logger.SetRollingDaily("C:/test/zkcron/src/test", "test.log")
  32. logger.SetConsole(true)
  33. //logger.SetLevel(logger.DEBUG)
  34. // 测试MQL
  35. //rst,meta,err := g.Query(`SELECT id,vtime,usname FROM /core/user/ WHERE usname prefix 'admin' && email like 'admin*' `)
  36. //rst,err := g.Query(`SELECT id,vtime,usname FROM /core/user `)
  37. //rst,err := g.Query(`SELECT * FROM /matrix/jobs/runinfo`)
  38. //rst,err := g.Query(`SELECT id,vtime,class FROM / WHERE class IN ('test') LIMIT 10`)
  39. //rst,err := g.Query(`SELECT id,vtime,class FROM / WHERE id = 1234567890 LIMIT 10`)
  40. //rst,err := g.Query(`SELECT type,id FROM /matrix/log/cassandra WHERE type =~ '^[C' limit 10`)
  41. //rst,err := g.Query(`SELECT id,vtime,class FROM /core/ `)
  42. //rst,err := g.Query(`SELECT id,vtime,class FROM /matrix/performance WHERE id='13722093446131916505' limit 10`, false)
  43. //rst,err := g.Query(`SELECT id,vtime,class FROM /matrix/performance WHERE id='13722093446131916505' limit 10`, false)
  44. //rst,err := g.Query(`SELECT id,vtime,class,kpi_code FROM /matrix/performance WHERE mydate daterange ('20150324','20150325') limit 10`)
  45. //rst,meta,err := g.Query(`match ("biz:数字国网","biz:开发测试")-[*]->() return name,status,.*`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false})
  46. //rst,err := g.Query(`select * from /matrix/jobs/jobrun where vtime > '2016-03-07 15:51:43.581'`,false)
  47. //rst,err := g.Query(`select host, inst, param, value, vtime from /matrix/devops/performance/ where vtime >= 1461054031485 order by host, vtime asc limit 10 with version`,false)
  48. //rst,err := g.Query(`select host, inst, param, value, vtime from /matrix/devops/performance/ where host='mxsvr201' with version`)
  49. //rst,meta,err := g.Query(`select id,connect from /matrix/entity/switch where id like 'switch:10[1-9]switch41' `,map[string]interface{}{"meta":true})
  50. //rst,meta,err := g.Query(`select name from /matrix/system/depot where branch = 'test1' and domian = 'cmd' limit 1`)
  51. //rst,meta,err := g.Query(`select count(id) from /matrix/filesystem`)
  52. //rst,meta,err := g.Query(`select * from /matrix/entity/ where id='sanstorage:sanstorage1'`)
  53. //rst,meta,err := g.Query(`select count(*) from /matrix/devops/event`,&QueryMeta{Return: ReturnAll, MinAsteriskField: true, KeepClassID: false})
  54. //rst, _,err := g.Query(`select node id from host:mxsvr201 with contain,depend`)
  55. //rst,meta,err := g.Query(`select entity from /matrix/devops/event e join ("linux:wecise")-[*]->(p:app) on e.entity=p.id`)
  56. //rst,meta,err := g.Query(`select id, host, entity from /matrix/devops/event e join (p:"app:cassandra1") on e.entity=p.id`)
  57. //rst,meta,err := g.Query(`select id, host, entity, p.name from /matrix/devops/event e join (p:/matrix/entity/app where id='app:app1') on e.entity=p.id`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  58. //rst,meta,err := g.Query(`select count(*) from /matrix/devops/event/ e join (p:/matrix/entity/switch where id = 'switch:switch1' or id='switch:switch2') on e.entity=p.id`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  59. //rst,meta,err := g.Query(`select value, ctime from /matrix/devops/performance where id = 'id1' and ctime >= 1555661943158 and ctime < 1555665543158 with version`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  60. // slow
  61. //rst,meta,err := g.Query(`select entity,msg,host,p.id,p.name from /matrix/devops/event/ e join (p:/matrix/entity/switch where id like 'switch:*') on e.entity=p.id limit 1 where entity like 'switch:*'`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  62. //bug
  63. //rst,meta,err := g.Query(`select entity,msg,host,p.id,p.name from /matrix/devops/event/ e join (p:/matrix/entity/db2) on e.entity=p.id limit -1`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  64. //bug
  65. //rst,meta,err := g.Query(`select entity,p.param as param from /matrix/devops/event/ e join (p:/matrix/devops/performance/ where entity like 'switch:*' and value>30) on e.entity=p.entity limit 1`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  66. //bug
  67. //rst,meta,err := g.Query(`select count(*) from /matrix/devops/event/ e join (i:/matrix/entity/switch where id='switch:switch1' and name='switch:switch2') on e.entity=i.id and e.entity=i.name limit -1 where entity like 'switch:*' `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  68. //bug !!!
  69. //rst,meta,err := g.Query(`SELECT max(value) FROM /matrix/devops/performance`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  70. //bug
  71. //rst,meta,err := g.Query(`SELECT max(severity) FROM /matrix/devops/event`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  72. //bug
  73. //rst,meta,err := g.Query(`select param from /matrix/devops/performance/ order by param asc`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  74. //bug
  75. //rst,meta,err := g.Query(`SELECT contain FROM /matrix/entity/biz where contain is not null`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  76. //bug
  77. /*rst,meta,err := g.Query(`create class if not exists /matrix/test/collect (
  78. v_varchar varchar,
  79. v_map map<varchar, varchar>,
  80. v_list list<varchar>,
  81. v_set set<varchar>,
  82. indexes(v_varchar, v_map, v_list, v_set),
  83. keys(v_varchar)
  84. )`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )*/
  85. /*rst,meta,err := g.Query(`select e.bk_inst_name as instName,
  86. i.name as serverName,
  87. i.park_id as parkId
  88. from /matrix/entity/physical_resource_obj/firewall e join (i:/matrix/entity/physical_resource_obj/server) on e.park_id=i.park_id
  89. where i.park_id = '133103'`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )*/
  90. /*rst,meta,err := g.Query(`select bk_inst_name
  91. from /matrix/entity/physical_resource_obj/firewall e left join (i:/matrix/entity/physical_resource_obj/server) on e.park_id=i.park_id
  92. where i.park_id = '133103'`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )*/
  93. //rst,meta,err := g.Query(`select id,e.name,p.id from /matrix/devops/event e join (p:pod) on e.entity = p.id`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  94. //rst,meta,err := g.Query(`select count(0) from /matrix/devops/event`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  95. //rst,meta,err := g.Query(`select e.id as id,e.name as name,e.severity,p.id,p.name as p_name from /matrix/devops/event e join (p:pod) on e.entity = p.id`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  96. //rst,meta,err := g.Query(` SELECT distinct e.biz,e.id,e.entity FROM /matrix/devops/event e `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  97. //rst,meta,err := g.Query(` SELECT bk2[0-2,3,4] as fff FROM /matrix/testbucket `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  98. //rst,meta,err := g.Query(` SELECT bk2[ 'iparam1', 'iparam2', 'fparam1', 'fparam2', 'sparam1'] FROM /matrix/testbucket `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  99. //rst,meta,err := g.Query(` SELECT bk2[-1,-2,-3,-4,-5] FROM /matrix/testbucket `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  100. //rst,meta,err := g.Query(` SELECT bk2 FROM /matrix/testbucket `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  101. //rst,meta,err := g.Query(` SELECT bk2[-1 - 1] FROM /matrix/testbucket `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  102. //rst,meta,err := g.Query(` SELECT bk2[1 - -1] FROM /matrix/testbucket `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  103. //rst,meta,err := g.Query(` SELECT bk2[ 4-3] FROM /matrix/testbucket `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  104. //rst,meta,err := g.Query(` SELECT bk2[ 'iparam1', 3-1, 4] FROM /matrix/testbucket `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  105. //rst,meta,err := g.Query(` SELECT bk2[ 'iparam1', 1-3, 4] FROM /matrix/testbucket `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  106. //rst,meta,err := g.Query(` SELECT bk2 FROM /matrix/testbucket `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  107. //rst,meta,err := g.Query(` SELECT bk2[ 'iparam1', 'iparam2', 2-3, 4 ].time('2020-04-22 08:10', '').(iparam1=1).count(iparam1) as iparam1 FROM /matrix/testbucket4 `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  108. //rst,meta,err := g.Query(` SELECT bk2[ 'iparam1', 'iparam2', 2-3, 4 ].time('2020-04-22 08:10', '').(iparam1=1).count(iparam1) as iparam1 FROM /matrix/testbucket4 `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  109. //rst,meta,err := g.Query(` SELECT bk2[ 'iparam1', 'iparam2', 2-3, 4 ].time().(iparam1=1) FROM /matrix/testbucket4 `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  110. //rst,meta,err := g.Query(` SELECT bk2[ 3-4, 5 ].time('2020-05-23 22:24:15', '').([1]=1).title() FROM /matrix/testbucket4 `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  111. /*rst,meta,err := g.Query(`SELECT
  112. id,logs.time('2020-05-30 04:36:24','2020-06-30 04:36:24')
  113. FROM
  114. /test/bucketlog`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )*/
  115. //rst,meta,err := g.Query(`SELECT id, disk[1].time(1580755071774, 1690755071774).limit(3) FROM /matrix/entity/it/it_linux`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  116. //rst,meta,err := g.Query(` SELECT bk2[ 'iparam1', 1-3, 4 ].time('2020-04-22', '').filter(fparam1 >= 0.992315).filter(iparam1 = 56).filter(fparam2 <> 0.418309) as iparam1 FROM /matrix/testbucket `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  117. //rst,meta,err := g.Query(` SELECT bk2.time('2020-04-22', '').filter(fparam1 >= 0.992315).filter(iparam1 = 56).filter(fparam2 <> 0.418309) as iparam1 FROM /matrix/testbucket `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  118. //rst,meta,err := g.Query(` SELECT bk2.time('2020-04-22', '').(fparam1 >= 0.992315).(iparam1 in [56,99]) FROM /matrix/testbucket4 `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  119. //rst,meta,err := g.Query(` SELECT bk2[-1 - 1].time('2020-04-22', '').find(fparam1 >= 0.992315).count(fparam1) as iparm1 FROM /matrix/testbucket4 `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  120. /*rst,meta,err := g.Query(` SELECT
  121. id, bk2
  122. FROM
  123. /matrix/testbucket7/`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )*/
  124. //rst,meta,err := g.Query(` SELECT bk2[-1 - 1].time('2020-04-22', '') FROM /matrix/testbucket4 `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  125. //rst,meta,err := g.Query(` SELECT bk2[-1 - 1].date('2020-05-23').find(fparam1=3.4) FROM /matrix/testbucket4 `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  126. //rst,meta,err := g.Query(` SELECT bk2 FROM /matrix/testbucket4 `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  127. //rst,meta,err := g.Query(` SELECT id,logs.time('2020-06-15','') FROM /matrix/ where id='linux:wecise' `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  128. //rst,meta,err := g.Query(` SELECT id, class FROM /matrix/ where id='linux:wecise' `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  129. //rst,meta,err := g.Query(` select values[0,2].time(1590231429,1590231439).find(pused='bbbbbbbbbbbbbbbbbbbb') from /test/donghuan/d `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  130. //rst,meta,err := g.Query(` select values.time(1590231429,1590231439).find(pused='bbbbbbbbbbbbbbbbbbbb') from /test/donghuan/d `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  131. //rst,meta,err := g.Query(` SELECT bklog FROM /matrix/testbucket5 `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  132. //rst,meta,err := g.Query(` SELECT bklog.time('2020-04-22', '').file() FROM /matrix/testbucket5 `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  133. //rst,meta,err := g.Query(` SELECT bk2.date("2020-05-15").file() FROM /matrix/testbucket5 `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  134. //rst,meta,err := g.Query(` SELECT bklog["file*.log"{116669996670004, 116669996680008}] FROM /matrix/testbucket5 `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  135. //rst,meta,err := g.Query(` SELECT id,logs["aaa.log"{142883909780000}]FROM /matrix/entity/it/it_aix where id='it_aix:192.168.190.175' `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  136. //rst,meta,err := g.Query(` SELECT bk2["file1.log"{1,3,6,7}].time('2020-05-15 00:49:59,667', '').find( "twcs skipping" ) FROM /matrix/testbucket5 `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  137. //rst,meta,err := g.Query(` SELECT bk2 FROM /matrix/testbucket5 `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  138. //rst,meta,err := g.Query(` SELECT bklog["file1.log"].time("2020-06-25","") FROM /matrix/testbucket5 `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  139. //rst,meta,err := g.Query(` select * from /matrix/portal/tools where id in('') and groups['group'] = null or groups['group'] = '' order by seat asc `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  140. //rst,meta,err := g.Query(` select * from /matrix/entity/hmc where host='wecise' and name='唯简'`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  141. //rst,meta,err := g.Query(` select * from /matrix/system/hostinfo where host='wecise' and name='9132822350366988138'`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  142. //rst,meta,err := g.Query(` select * from /matrix/entity/ where class='/matrix/entity/hmc' and host='wecise' and name='9132822350366988138'`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  143. //rst,meta,err := g.Query(` select * from /matrix/entity/ where class='/matrix/entity/hmc' `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  144. //rst,meta,err := g.Query(` select id,name,class,host,iplist,agentstatus,depot['文件系统检测'],config,zabbix['文件系统检测-1.0.0'] from /matrix/system/hostinfo where depot != null limit -1 `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  145. //rst,meta,err := g.Query(`select id, domain, creater from /matrix/tagdir where domain = 'script' and creater = '' and name = 'ORACLE' limit 1 `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  146. //rst,meta,err := g.Query(`select name, domain from /matrix/tagdir where domain = 'script' and creater = '' limit -1 `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false, User:"U/newadmin/lyt1" , Group:[]string{ "/newadmin"}} )
  147. //rst,meta,err := g.Query(`select count(severity) as num, max(severity) as maxsss, min(severity) as minsss from /matrix/devops/alert where severity > 2 group by biz limit -1 `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  148. /*rst,meta,err := g.Query(`SELECT
  149. id,status,host,vtime
  150. FROM
  151. /matrix/system/hostinfo where status = 1`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )*/
  152. /*rst,meta,err := g.Query(`SELECT
  153. count(*) , types
  154. FROM
  155. /matrix/entity/perbasisinfo group by types order by types limit 100000`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )*/
  156. /*rst,meta,err := g.Query(`SELECT
  157. name
  158. FROM
  159. /matrix/entity/aix where name=/aix:5ed617adaca22f8517f5e67[123]/` )*/
  160. //rst,meta,err := g.Query(`refresh /matrix/filesystem`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  161. //rst,meta,err := g.Query(`select name, _group from /matrix/tagdir where _group != "/testorg"`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  162. //rst,meta,err := g.Query(`select name, contain from /matrix/entity/cluster where contain != 'app:app2' and contain != 'app:Bapp2'`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  163. //rst,meta,err := g.Query(`SELECT id FROM /matrix/entity/aix where id != 'aix:tes*'`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  164. //rst,meta,err := g.Query(`refresh /matrix/filesystem`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  165. /*rst,meta,err := g.Query(`SELECT
  166. id,disk_perf.time('2021-04-01','2021-04-02').find("mount_point" = "/").title().min("free", "pfree").max("pfree").max("free").count().groupby("mount_point", 12h)
  167. FROM
  168. /matrix/entity/linux where id='linux:node3'`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )*/
  169. /*rst,meta,err := g.Query(`SELECT
  170. id, vtime, severity
  171. FROM
  172. /matrix/devops/alert where severity > 0 and vtime > '2021-03-23 23:35:18.992' and vtime < '2021-04-23 23:35:18.992'`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )*/
  173. /*rst,meta,err := g.Query(`SELECT
  174. assetid,biz,class,company,config,contact,ctel,day,dc,department,element,files,host,id,ip,location,model,mylist,mymap["key2"] as aaa,mymap["key1"] as bbb,myset,name,period,port,rack,region,room,sn,status,tags,tel,type,unit,vtime
  175. FROM
  176. /matrix/entity/mydevice`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )*/
  177. //rst,meta,err := g.Query(`SELECT v_varchar, v_text FROM /matrix/test/search where v_text like 'Cassandr*'`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  178. //rst,meta,err := g.Query(`insert into /matrix/test/buckettsdb (id, bk2[ 'iparam1', 'iparam2', 'fparam1', 'fparam2', 'sparam1', 'vparam1']) values ('linux:wecise', [1, nil, 3.3, 6.5, '1234567890', 'abcdefghhhhh'] ) at '2020-07-24 10:24:16'`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  179. //rst,meta,err := g.Query(`select bklog.time('2020-06-24','').limit(1000) FROM /matrix/test/bucketlog`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  180. //rst,meta,err := g.Query(`select id,logs.stats(3600) from /matrix/entity/linux where id = 'linux:node3' `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  181. //rst,meta,err := g.Query(`select id,logs.time('2021-01-01','2021-05-15').find("ssl_req").stats(3600) from /matrix/entity/`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  182. //rst,meta,err := g.Query(`SELECT id,ip,host,disk_perf.time('2018-07-27','2020-07-28').title().max("pfree","free") FROM /matrix/entity/it/it_aix`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  183. //rst,meta,err := g.Query(`select id from /matrix/test/oo/wheel where dim.length >= 100`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  184. //rst,meta,err := g.Query(`select id,wheel[*] from /matrix/entity/car/camry where wheel.rotations.time('2021-09-13 00:00:00','').sum(count).assert($1 > 12000)`, &QueryMeta{Return: ReturnAll} )
  185. //rst,meta,err := g.Query(`select id,wheel from /matrix/entity/car/camry where wheel.rotations.time('2021-09-13 00:00:00','').sum(count).assert($1 > 12000)`, &QueryMeta{Return: ReturnAll} )
  186. // rst,meta,err := g.Query(`select * from /matrix/entity/onewheelcar `, &QueryMeta{Return: ReturnAll} )
  187. //rst,meta,err := g.Query( `typedef CarMorph = Morph<Chair, Light>`, &QueryMeta{Return: ReturnAll, AsteriskNoRelation: true, AsteriskKeep: strset.New("class", "id")} )
  188. //rst,meta,err := g.Query( `typeundef CarMorph`, &QueryMeta{Return: ReturnAll, AsteriskNoRelation: true, AsteriskKeep: strset.New("class", "id")} )
  189. /*rst,meta,err := g.Query( `create class if not exists Wheel : /matrix/test/oo (
  190. dim Dimension,
  191. mymorph CarMorph[2],
  192. remark varchar,
  193. indexes(remark)
  194. ) with key=manu `, &QueryMeta{Return: ReturnAll, AsteriskNoRelation: true, AsteriskKeep: strset.New("class", "id")} )*/
  195. rst, meta, err := g.Query(` typedef CharacterizedProductDefinition = morph <
  196. Product_Definition
  197. Product_Definition_Relationship
  198. > `, &QueryMeta{Return: ReturnAll})
  199. /*rst,meta,err := g.Query( `CREATE CLASS IF NOT EXISTS ApplicationInstance(
  200. uuid text
  201. ) with alias = 'ApplicationInstance', nickname = 'ApplicationInstance', version = true;
  202. -- TYPE : ENTITY
  203. CREATE CLASS IF NOT EXISTS application_context : ApplicationInstance (
  204. application text
  205. ) with alias = 'ApplicationContext', nickname = 'ApplicationContext', version = true;
  206. -- TYPE : ENTITY
  207. CREATE CLASS IF NOT EXISTS application_context_element : ApplicationInstance (
  208. name text,
  209. frame_of_reference ApplicationContext
  210. ) with alias = 'ApplicationContextElement', nickname = 'ApplicationContextElement', version = true;
  211. -- TYPE : ENTITY
  212. CREATE CLASS IF NOT EXISTS product_context : ApplicationContextElement (
  213. discipline_type text
  214. ) with alias = 'ProductContext', nickname = 'ProductContext', version = true;
  215. -- TYPE : ENTITY
  216. CREATE CLASS IF NOT EXISTS product : ApplicationInstance (
  217. id text,
  218. name text,
  219. description text,
  220. frame_of_reference ProductContext[?]
  221. ) with alias = 'Product', nickname = 'Product', version = true;
  222. -- TYPE : ENTITY
  223. CREATE CLASS IF NOT EXISTS product_definition_formation : ApplicationInstance (
  224. id text,
  225. description text,
  226. of_product Product
  227. ) with alias = 'ProductDefinitionFormation', nickname = 'ProductDefinitionFormation', version = true;
  228. -- TYPE : ENTITY
  229. CREATE CLASS IF NOT EXISTS product_definition_context : ApplicationContextElement (
  230. life_cycle_stage text
  231. ) with alias = 'ProductDefinitionContext', nickname = 'ProductDefinitionContext', version = true;
  232. -- TYPE : ENTITY
  233. CREATE CLASS IF NOT EXISTS product_definition : ApplicationInstance (
  234. id text,
  235. description text,
  236. formation ProductDefinitionFormation,
  237. frame_of_reference ProductDefinitionContext
  238. ) with alias = 'ProductDefinition', nickname = 'ProductDefinition', version = true;
  239. -- TYPE : ENTITY
  240. CREATE CLASS IF NOT EXISTS product_definition_relationship : ApplicationInstance (
  241. id text,
  242. name text,
  243. description text,
  244. relating_product_definition ProductDefinition,
  245. related_product_definition ProductDefinition
  246. ) with alias = 'ProductDefinitionRelationship', nickname = 'ProductDefinitionRelationship', version = true;
  247. -- TYPE : SELECT
  248. typedef IF NOT EXISTS CharacterizedProductDefinition = morph <
  249. Product_Definition,
  250. Product_Definition_Relationship
  251. >;
  252. -- TYPE : ENTITY
  253. CREATE CLASS IF NOT EXISTS characterized_object : ApplicationInstance (
  254. name text,
  255. description text
  256. ) with alias = 'CharacterizedObject', nickname = 'CharacterizedObject', version = true;
  257. -- TYPE : ENTITY
  258. CREATE CLASS IF NOT EXISTS product_definition_shape : PropertyDefinition (
  259. ) with alias = 'ProductDefinitionShape', nickname = 'ProductDefinitionShape', version = true;
  260. -- TYPE : ENTITY
  261. CREATE CLASS IF NOT EXISTS shape_aspect : ApplicationInstance (
  262. name text,
  263. description text,
  264. of_shape ProductDefinitionShape,
  265. product_definitional boolean
  266. ) with alias = 'ShapeAspect', nickname = 'ShapeAspect', version = true;
  267. -- TYPE : ENTITY
  268. CREATE CLASS IF NOT EXISTS shape_aspect_relationship : ApplicationInstance (
  269. name text,
  270. description text,
  271. relating_shape_aspect ShapeAspect,
  272. related_shape_aspect ShapeAspect
  273. ) with alias = 'ShapeAspectRelationship', nickname = 'ShapeAspectRelationship', version = true;
  274. -- TYPE : SELECT
  275. typedef ShapeDefinition = morph <
  276. Product_Definition_Shape
  277. Shape_Aspect
  278. Shape_Aspect_Relationship
  279. >;
  280. -- TYPE : SELECT
  281. typedef CharacterizedDefinition = morph <
  282. Characterized_Object
  283. Characterized_Product_Definition
  284. Shape_Definition
  285. >;
  286. -- TYPE : ENTITY
  287. CREATE CLASS IF NOT EXISTS property_definition : ApplicationInstance (
  288. name text,
  289. description text,
  290. definition CharacterizedDefinition
  291. ) with alias = 'PropertyDefinition', nickname = 'PropertyDefinition', version = true;
  292. `, &QueryMeta{Return: ReturnAll, AsteriskNoRelation: true, AsteriskKeep: strset.New("class", "id")} )*/
  293. // rst,meta,err := g.Query(`select class from /matrix/test/ where id='5596563062509798226'`, &QueryMeta{Return: ReturnAll} )
  294. //rst,meta,err := g.Query(` SELECT bklog.time("2020-01-01", "").stats(3600) FROM /matrix/test/bucketlog `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  295. // rst,meta,err := g.Query(`select * from /matrix/test/collect where v_map = 'val3'`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  296. /*rst,meta,err := g.Query(`SELECT
  297. id,disk_perf.time('2019-01-01','2021-04-06').title().limit(50)
  298. FROM
  299. /matrix/entity/linux where id='linux:node3'`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )*/
  300. /*rst,meta,err := g.Query(`SELECT
  301. id,bkdata.time("2020-08-01","").find(vparam1 like '*jj*')
  302. FROM
  303. /matrix/testbucket4 `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )*/
  304. /*rst,meta,err := g.Query(`SELECT
  305. bklog.time('2020-06-23 14:50','2020-06-23 15:00').find('twcs'),id
  306. FROM
  307. /matrix/testbucket5 `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )*/
  308. /*rst,meta,err := g.Query(`SELECT
  309. id,disk_test.time('2020-07-27','')
  310. FROM
  311. /matrix/entity/it/it_aix `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )*/
  312. /*rst,meta,err := g.Query(`SELECT
  313. bkdata,class,day,host,id,name,real,status,tags,vtime
  314. FROM
  315. /matrix/testbucket4`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )*/
  316. /*rst,meta,err := g.Query(` SELECT
  317. id
  318. FROM
  319. /matrix/testbucket5/ where bklog.time("2020-05-01","").find("INFO") `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )*/
  320. //rst,meta,err := g.Query(`select name, pprefix, pmatch, _group from /matrix/perms/api where _group = '测试组' `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  321. //rst,meta,err := g.Query(` select depot['df302'] from /matrix/system/hostinfo `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  322. /*rst,meta,err := g.Query(`SELECT
  323. depot
  324. FROM
  325. /matrix/system/hostinfo where depot = nil`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )*/
  326. //rst,meta,err := g.Query(` SELECT bk2.time('2020-04-22 08:09', '').filter( "iparam1" <= 2 ) as iparam1 FROM /matrix/testbucket `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  327. //rst,meta,err := g.Query(` SELECT * FROM /matrix/filesystem `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  328. //rst,meta,err := g.Query(`select ip,host,msg,entity,severity from /matrix/devops/event e join ("biz:数字国网")-[*]->("app:*")-[*]->(h:linux) on e.entity = h.id where e.severity > 3`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  329. //rst,meta,err := g.Query(`select id, config["aa","bb"], email[0,2] from /matrix/ldap where id='8999302930065828009'`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  330. /*rst,meta,err := g.Query(` SELECT
  331. severity
  332. FROM
  333. /matrix/devops/alert `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  334. */
  335. //bug
  336. //rst,meta,err := g.Query(`select 1, "hello" as strcol, contain from "/matrix/devops/performance" where contain is null`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  337. //bug
  338. //rst,meta,err := g.Query(`select * from "/matrix/devops/performance" where host='123'`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  339. //bug
  340. //rst,meta,err := g.Query(`select g1, avg(v1) as avgv1 from "/matrix/testgroup" group by g1`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  341. //rst,meta,err := g.Query(`select avg(v1) as avgv1 from "/matrix/testgroup" `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  342. //bug
  343. ///rst,meta,err := g.Query(`select avg(v1) as avgv1 from "/matrix/testgroup" group by g1,g3`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  344. //t1 := time.Now()
  345. //rst,meta,err := g.Query(`select wecise FROM asdf/matrix/devops/event where host = "wecise"`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  346. /*rst,meta,err := g.Query(`SELECT
  347. app,biz,card,class,ctime,day,entity,hdware,host,id,inst,ip,msg,name,org,param,script,severity,src,status,tags,vtime
  348. FROM
  349. /matrix/devops/event where host in ('wecise') `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  350. logger.Warn("duration ==>", time.Now().Sub(t1))
  351. */
  352. //bug
  353. //rst,meta,err := g.Query(`select host,ip,h.name from /matrix/devops/event/omnibus o join ("biz:查账系统")-[*]->("esx:*")-[:connect*]->(h:switch) on o.entity = h.id where o.severity=5`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  354. //rst,meta,err := g.Query(`select id, host, entity, p.name from /matrix/devops/event e join (p:'app:app1') on e.entity=p.id`)
  355. //rst,meta,err := g.Query(`select id, host, entity from /matrix/devops/event e join (p:"app:app1") on e.host=p.host`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  356. //rst,meta,err := g.Query(`select host,msg,id,class from /matrix/devops/event where host='mxsvr221' facet severity{"critical":[3,],"warning":[,3]} `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  357. //rst,meta,err := g.Query(`select host,msg,id,class from /matrix/devops/event where host='wecise' facet severity{"critical":[3,],"warning":[,3]} `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  358. //rst,meta,err := g.Query(`select host,id,class,value,vtime from /matrix/devops/performance/ where host='wecise' facet value{"big":[4,],"small":[,3]} `, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  359. //rst,meta,err := g.Query(`select host,ip from /matrix/devops/event/omnibus o join ("biz:查账系统")-[*]->("esx:*")-[:connect*]->(h:switch) on o.entity = h.id where o.severity=5`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  360. //rst,meta,err := g.Query(`SELECT count(*) FROM /matrix/devops/event`)
  361. /*rst,meta,err := g.Query(`select * from /matrix/devops/event`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false})*/
  362. //rst,_,err := g.Query(`select * from /matrix/devops/中文测试`)
  363. //rst,meta,err := g.Query(`SELECT depot FROM /matrix/system/hostinfo where depot[key]='test''4'`)
  364. //rst,meta,err := g.Query(`SELECT * FROM /matrix/system/hostinfo where depot['111']='11'`)
  365. //rst,meta,err := g.Query(`Insert into /matrix/portal/tools name='对象管理' cnname='对象管理' enname='OMDB' icon='omdb.png' seat=10 selected=0 url='/janesware/omdb'`)
  366. //rst,meta,err := g.Query(`insert into /matrix/entity/linux (id, contain) values ('linux:wecise',["app:cassandra1"])`)
  367. //rst,meta,err := g.Query(`SELECT host as host2, class, app FROM /matrix/devops/event/ facet host2 as hello`, &QueryMeta{Return: ReturnAll, MinAsteriskField: true, KeepClassID: false, NotAddFields:true} )
  368. //rst,meta,err := g.Query(`select * from /matrix/devops/event/ facet vtime{"old":[,'-1 day'],"new":['-1 day',]}`, &QueryMeta{Return: ReturnAll, MinAsteriskField: true, KeepClassID: false} )
  369. //rst,meta,err := g.Query(`select * from /matrix/devops/performance facet value{"small":[,10],"big":[10,]}`, &QueryMeta{Return: ReturnAll, MinAsteriskField: true, KeepClassID: false} )
  370. if err != nil {
  371. logger.Info("Query error:" + err.Error())
  372. logger.Warn(meta["type"])
  373. } else {
  374. logger.Info("rst ===>", rst)
  375. //logger.Error("meta ===>", meta)
  376. if meta["trace"] != nil && len(meta["trace"].([]string)) > 0 {
  377. for _, msg := range meta["trace"].([]string) {
  378. logger.Error(msg)
  379. }
  380. }
  381. logger.Warn(meta["columns"])
  382. logger.Warn(meta["params"])
  383. }
  384. }