testapi.go 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611
  1. package main
  2. import (
  3. //"fmt"
  4. "gitee.com/wecisecode/util/logger"
  5. "git.wecise.com/wecise/odbserver/odb/test"
  6. )
  7. func main() {
  8. //options := map[string]interface{} {"cache":odb.CacheAll}
  9. //g,err:= odb.New( options )
  10. //option := &StoreOption{Cache:CacheAll}
  11. option :test.NewG(option)ion)ion)he: CacheAll}
  12. g, err := test.NewG(option)
  13. if err != nil {
  14. logger.Error(err.Error())
  15. } else {
  16. defer g.Close()
  17. }
  18. //logger.SetRollingDaily("C:/test/zkcron/src/test", "test.log")
  19. logger.SetConsole(true)
  20. logger.SetLevel(logger.DEBUG)
  21. // 测试 返回树形结构
  22. /*
  23. str,err := g.GetClassChildren(-1)
  24. if err != nil {
  25. fmt.Println("GetClassChildren error:"+err.Error())
  26. }else{
  27. fmt.Println("Children:=>" + str)
  28. }
  29. */
  30. // 测试 删除类
  31. /*
  32. err := g.DeleteClass(8)
  33. if err != nil {
  34. fmt.Println("DeleteClass error:"+err.Error())
  35. }
  36. */
  37. // 测试 插入对象
  38. /*
  39. objsstr := `[ {"class":"test","id":11}, {"class":"test"}, {"class":"test2","vtime":"1970-01-01T00:00:00Z"}]`
  40. if err := g.CreateObjectsFromjson(objsstr,[]string{"class","aaa"}) ;err != nil {
  41. logger.Fatal(err.Error())
  42. }
  43. */
  44. /*
  45. objs := make([]map[string]interface{},3)
  46. objs[0] = map[string]interface{}{"class":"test","id" :"1234567890"}
  47. objs[1] = map[string]interface{}{"class":"test"}
  48. objs[2] = map[string]interface{}{"class":"test2","vtime":"1970-01-01T00:00:00Z"}
  49. if err := g.CreateObjectsFromMap(objs,[]string{"class","aaa"}) ;err != nil {
  50. logger.Fatal(err.Error())
  51. }
  52. */
  53. // 测试 返回对象名称
  54. /*
  55. if rtn,err := g.GetDisplayName([]string{"class","id"},"") ;err != nil {
  56. logger.Fatal(err.Error())
  57. }else{
  58. for k,v := range rtn {
  59. fmt.Printf(" %s :",k)
  60. for i:=0 ;i<len(v) ;i++ {
  61. fmt.Printf(" %s :",v)
  62. }
  63. fmt.Println()
  64. }
  65. }
  66. if rtn,err := g.GetDisplayName([]string{"class","id"},"1") ;err != nil {
  67. logger.Fatal(err.Error())
  68. }else{
  69. for k,v := range rtn {
  70. fmt.Printf(" %s :",k)
  71. for i:=0 ;i<len(v) ;i++ {
  72. fmt.Printf(" %s :",v)
  73. }
  74. fmt.Println()
  75. }
  76. }
  77. */
  78. // 测试MQL
  79. //rst,err := g.Query(`SELECT id,vtime,usname FROM /core/user/ WHERE usname prefix 'admin' && email like 'admin*' `)
  80. //rst,err := g.Query(`SELECT id,vtime,usname FROM /core/user `)
  81. //rst,err := g.Query(`SELECT * FROM /matrix/jobs/runinfo`)
  82. //rst,err := g.Query(`SELECT id,vtime,class FROM / WHERE class IN ('test') LIMIT 10`)
  83. //rst,err := g.Query(`SELECT id,vtime,class FROM / WHERE id = 1234567890 LIMIT 10`)
  84. //rst,err := g.Query(`SELECT type,id FROM /matrix/log/cassandra WHERE type =~ '^[C' limit 10`)
  85. //rst,err := g.Query(`SELECT id,vtime,class FROM /core/ `)
  86. //rst,err := g.Query(`SELECT id,vtime,class FROM /matrix/performance WHERE id='13722093446131916505' limit 10`, false)
  87. //rst,err := g.Query(`SELECT id,vtime,class FROM /matrix/performance WHERE id='13722093446131916505' limit 10`, false)
  88. //rst,err := g.Query(`SELECT id,vtime,class,kpi_code FROM /matrix/performance WHERE mydate daterange ('20150324','20150325') limit 10`)
  89. //rst,err := g.Query(`select name,jobstatus as status from /matrix/jobs/jobrun where jobstatus > 5 limit 10`,false)
  90. //rst,err := g.Query(`select * from /matrix/jobs/jobrun where vtime > '2016-03-07 15:51:43.581'`,false)
  91. //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)
  92. //rst,err := g.Query(`select host, inst, param, value, vtime from /matrix/devops/performance/ where host='mxsvr201' with version`)
  93. //rst,err := g.Query(`select parent, username, fullname, lft, rgt, type, day from /matrix/ldap where lft >= 2 and rgt <= 5 order by lft limit -1`,false)
  94. //rst,err := g.Query(`select id from /matrix/devops/ where id in ('43310595152101561')`,false)
  95. /*rst,err := g.Query(`select app,
  96. biz,
  97. card,
  98. class,
  99. ctime,
  100. hdware,
  101. host,
  102. id,
  103. inst,
  104. ip,
  105. name,
  106. org,
  107. param,
  108. src,
  109. tags,
  110. value,
  111. vtime from /matrix/devops/performance limit 200 with version`,false)*/
  112. //rst,err := g.Query(`select * from /matrix/jobs/jobrun order by vtime`,false)
  113. /*rst,err := g.Query(`create class /asdsd (
  114. aa text '中文11' '中文22',
  115. bb varchar ,
  116. biza varchar 'refdispname' 'refremedy',
  117. keys(aa,bb),
  118. indexes(aa{},bb),
  119. readonly(aa,bb)
  120. )`,false)*/
  121. /*
  122. rst,err := g.Query(`create class if not exists /matrix/devopstest (
  123. qqbiz varchar ,
  124. qqorg varchar ,
  125. qqhost varchar ,
  126. qqip varchar ,
  127. qqapp varchar ,
  128. qqinst varchar ,
  129. qqparam varchar ,
  130. qqhdware varchar ,
  131. qqcard varchar ,
  132. qqsrc varchar,
  133. qqscript text,
  134. keys(qqbiz,qqorg,qqip,qqapp,qqinst,qqparam,qqhdware,qqcard),
  135. indexes(qqbiz,qqorg,qqhost,qqip,qqapp,qqinst,qqparam,qqhdware,qqcard)
  136. );`)
  137. */
  138. /*rst,err := g.Query(`create class if not exists /matrix (
  139. &name ,
  140. status int '状态',
  141. indexes(name,status)
  142. );
  143. create class if not exists /matrix/tags (
  144. &name,
  145. keys(name)
  146. );
  147. create class if not exists /matrix/devops (
  148. biz varchar ,
  149. org varchar ,
  150. host varchar ,
  151. ip varchar ,
  152. app varchar ,
  153. inst varchar ,
  154. param varchar ,
  155. hdware varchar ,
  156. card varchar ,
  157. src varchar,
  158. script text,
  159. keys(biz,org,ip,app,inst,param,hdware,card),
  160. indexes(biz,org,host,ip,app,inst,param,hdware,card, src,script)
  161. );
  162. create class if not exists /matrix/jobs ();
  163. create class if not exists /matrix/jobs/jobrun (
  164. runid bigint,
  165. boxid bigint,
  166. dir text,
  167. cmds list<varchar>,
  168. jobstatus int,
  169. stime timestamp,
  170. etime timestamp,
  171. keys(dir,name),
  172. indexes(runid,boxid,name,dir,cmds,jobstatus,stime{"type":"date", "pattern":"yyyy/MM/dd HH:mm:ss.SSS"},etime{"type":"date", "pattern":"yyyy/MM/dd HH:mm:ss.SSS"})
  173. );
  174. create class if not exists /matrix/jobs/cmdrun (
  175. &runid,
  176. &boxid,
  177. &dir,
  178. &host,
  179. jobtype int,
  180. source text,
  181. cmd text,
  182. pid int,
  183. &jobstatus,
  184. &stime,
  185. &etime,
  186. code int,
  187. out text,
  188. err text,
  189. keys(dir,name,cmd),
  190. indexes(jobtype,source,cmd,pid,code,out,err)
  191. );
  192. create class if not exists /matrix/devops/performance (
  193. value float '性能值',
  194. ctime timestamp '采集时间',
  195. kpiid varchar,
  196. kpiencode varchar,
  197. indexes(param,value,ctime{"type":"date", "pattern":"yyyy/MM/dd HH:mm:ss.SSS"}, kpiid, kpiencode)
  198. );
  199. create class if not exists /matrix/devops/event (
  200. severity varchar '级别',
  201. msg text '摘要',
  202. eventstatus varchar '告警状态',
  203. &ctime '采集时间',
  204. &kpiid,
  205. &kpiencode,
  206. indexes(severity,eventstatus,msg, kpiid, kpiencode)
  207. );
  208. `,false)*/
  209. /*
  210. rst,err := g.Query(`
  211. create class if not exists /matrix/jobs/cmdrun (
  212. &runid,
  213. &boxid,
  214. &dir,
  215. &host,
  216. jobtype int,
  217. source text,
  218. cmd text,
  219. pid int,
  220. &jobstatus,
  221. &stime,
  222. &etime,
  223. code int,
  224. out text,
  225. err text,
  226. keys(dir,name,cmd),
  227. indexes(jobtype,source,cmd,pid,code,out,err)
  228. );
  229. `,false)*/
  230. /*
  231. rst,err := g.Query(`create class if not exists /matrix/flowmark/wfrun (
  232. &wfid,
  233. sid varchar,
  234. session map<varchar,varchar>,
  235. stage varchar,
  236. indexes(name, wfid, sid, session, stage),
  237. keys(wfid, sid)
  238. );`,false)
  239. */
  240. /*
  241. rst,err := g.Query(`create class /matrix/aaaaaa (
  242. aadir varchar,
  243. aacmds varchar,
  244. hello varchar,
  245. keys(aadir),
  246. indexes(aadir,aacmds,hello)
  247. );
  248. `)
  249. */
  250. /*
  251. rst,err := g.Query(`
  252. drop class /matrix/nnnn2;
  253. `,false)
  254. */
  255. //rst,err := g.Query(`drop class /matrix/ldapaa `,false)
  256. /*
  257. rst,err := g.Query(`create class if not exists /matrix/ldap (
  258. parent varchar,
  259. &name,
  260. fullname varchar,
  261. firstname varchar,
  262. lastname varchar,
  263. gender varchar,
  264. lft int,
  265. rgt int,
  266. &type,
  267. auth map<varchar, varchar>,
  268. email list<text>,
  269. tel varchar,
  270. mobile varchar,
  271. wechat varchar,
  272. photo blob,
  273. address text,
  274. &username,
  275. passwd varchar,
  276. &remark,
  277. usecustomavatar boolean,
  278. avatar text,
  279. rands text,
  280. salt text,
  281. isadmin boolean,
  282. isactive boolean,
  283. indexes(parent, name, fullname, firstname, lft, rgt, lastname, gender, type, email, tel, mobile, wechat, address, username, remark, rands, salt, avatar),
  284. keys(fullname)
  285. );`)
  286. */
  287. //rst,err := g.Query(`select * from /matrix/ldap where username='admin'`,false)
  288. //rst,err := g.Query(`select * from /matrix/ldap where username='admin'`,false)
  289. //rst,err := g.Query(`drop class /matrix/relations`,false)
  290. //rst,err := g.Query(`drop class /matrix`,false)
  291. //rst,err := g.Query(`delete from /matrix/performance where inst = 'disk_C'`,false)
  292. //rst,err := g.Query(`delete from /matrix/ldap where fullname in ('/测试组','/测试组/testuser')`,false)
  293. //rst,err := g.Query(`delete from /matrix/ldap where fullname in ('aaa','testuser')`,false)
  294. //rst,err := g.Query(`SELECT id,vtime,class FROM /matrix/ `,false)
  295. //rst,err := g.Query(`Insert into /matrix/flowmark/btndef script='return "hello" ',name='test',wfid=-1 `,false)
  296. //rst,err := g.Search(`call action {"name":"test", "wfid":"-1" }`,false)
  297. /*
  298. rst,err := g.Query(`
  299. Insert into /matrix/flowmark/btndef script='print("hello")',name='test1',wfid=-1 ;
  300. Insert into /matrix/flowmark/btndef script='print("hello")',name='test2',wfid=-1 ;
  301. Insert into /matrix/flowmark/btndef script='print("hello")',name='test3',wfid=-1 ;
  302. Insert into /matrix/flowmark/btndef script='print("hello")',name='test4',wfid=-1 ;
  303. Insert into /matrix/flowmark/btndef script='print("hello")',name='test5',wfid=-1 ;
  304. `,false)
  305. */
  306. /*
  307. rst,err := g.Search(`/matrix/devops/log/:
  308. | id=8871587300017613452
  309. | top 2
  310. | within 3day| print vtime
  311. | sort vtime desc, severity desc
  312. `)
  313. */
  314. //rst,err := g.Search(`#/matrix/devops/performance/: mxsvr201 | group by host,app,inst,param`)
  315. //rst,err := g.Search(`mxsvr201`)
  316. //rst,err := g.Query(`insert json '{"class":"/matrix/ldap","fullname":"/用户组/cnwangzd","config":"{\"seat\":130}" }' `,false)
  317. //rst,err := g.Query(`Insert json '{ "class":"/matrix/flowmark/btndef","script":"print(\"hello\")","name":"test","wfid":"-1"}' `,false)
  318. //rst,err := g.Query(`insert into /matrix/ldap fullname='wzd' config='{test: "test1", a: "1", c: "2"}'`,false)
  319. //rst,err := g.Query(`delete from /matrix/devops/performance where ip is null with version!;`)
  320. //rst,err := g.Query(`insert into /matrix/ldap
  321. /*fullname='/用户组/cnwangzd'
  322. auth='{"Fields":{"add":"","delete":"","update":"","view":["id","class","vtime","biz","host"]},"Conds":{"add":"","delete":"","update":"","view":[{"type":"match","field":"class","value":"/matrix"}]}}'
  323. `)*/
  324. //rst,err := g.Query(`delete from /matrix/flowmark/btndef`,false)
  325. //rst,err := g.Query(`select count(*) as countval from / where id = '16882012185573752086' and vtime >= '2016/07/20 14:00:00.000' and vtime < '2016/07/20 15:00:00.000' with version `)
  326. //rst,err := g.OnlySearch(`mxsvr201 | grep value>2.76`)
  327. //rst,err := g.OnlySearch(`cpu0| grep value=2.76|print value`)
  328. //rst,err := g.Search(`#/matrix/portal/tools: | sort by seat asc`)
  329. //rst,err := g.Search(`这是中文 这是中文2 aaaa|grep bbb|within 1 hour|top 10`)
  330. //rst,err := g.Search(`~这是中文 这是中文2 aaaa|grep ~bbb|print host|sort host|within 1 hour|top 10`)
  331. //rst,err := g.Search(`/matrix/devops/performance: | within 1day | top 10 | sort ctime asc | mxsvr201 or mxsvr231 | print name,id `)
  332. //rst,err := g.Search(`id=6619596727648121104 or id=4103214017054340550`,false)
  333. //rst,err := g.Search(`#/matrix/ldap/: | parent=/系统组`)
  334. //rst,err := g.Search(`/matrix/entity/: | contain etcd | print name `,false)
  335. //
  336. //rst,err := g.Search(`#/matrix/devops/log/: | print id,name | sort vtime desc, severity desc `,false)
  337. /*
  338. rst,err := g.Search(`/matrix/devops/event/:
  339. | top 100
  340. | within 1day
  341. | lua severity=<lua> if severity == 'FATAL' then
  342. return "<kbd style='background-color:#000000;'>重大</kbd>"
  343. elseif severity == 'ERROR' or severity == '5' or severity == 'CRITICAL' then
  344. return "<kbd style='background-color:#FF0000;'>严重</kbd>"
  345. elseif severity == 'WARN' or severity == '4' or severity == 'MINOR' then
  346. return "<kbd style='background-color:#F0AD4E;'>警告</kbd>"
  347. elseif severity == '一般' or severity == '3' or severity == '2' or severity == '1' then
  348. return "<kbd style='background-color:#3BC303;'>一般</kbd>"
  349. elseif severity== '6' then
  350. return "<kbd style='background-color:#6BD2D2;'>未知</kbd>"
  351. end
  352. </lua>
  353. | lua msg=<lua>
  354. s = string.gsub(msg, "Failed", "<span style='background-color:#fae4ae;'>".."%1".."</span>")
  355. return s
  356. </lua>
  357. | lua msg=<lua>
  358. s = string.gsub(msg, "failed", "<span style='background-color:#fae4ae;'>".."%1".."</span>")
  359. return s
  360. </lua>
  361. | lua msg=<lua>
  362. s = string.gsub(msg, "error", "<span style='background-color:#fae4ae;'>".."%1".."</span>")
  363. return s
  364. </lua>
  365. | lua msg=<lua>
  366. s = string.gsub(msg, "matrix", "<span style='background-color:#fae4ae;'>".."%1".."</span>")
  367. return s
  368. </lua>
  369. | lua msg=<lua>
  370. s = string.gsub(msg, "Error", "<span style='background-color:#fae4ae;'>".."%1".."</span>")
  371. return s
  372. </lua>
  373. | lua msg=<lua>
  374. s = string.gsub(msg, host, "<span style='background-color:#fae4ae;'>".."%1".."</span>")
  375. return s
  376. </lua>
  377. | sort vtime desc, severity desc`,false)*/
  378. rst, _, err := g.Search(`#/matrix/entity/biz: | top 5 | call graph {"level":1,"rels":["contain"],"reverse":false}`)
  379. //rst,err := g.Search(`select * from /matrix/ldap where id = 16882012185573752086`)
  380. /*rst,err := g.Search(`#/matrix/devops/log/: | top 1000| print id,vtime,class,biz,host,app,inst,param,msg,severity,src
  381. | sort vtime desc, severity desc`) */
  382. /*
  383. rst,err := g.Search(`#/matrix/devops/performance/:| top 1000| lua value=<lua>
  384. return "hhh"
  385. </lua> | inst=cpu* | top 5`,false)
  386. */
  387. //rst,err := g.OnlySearch(`~mxsvr01|grep Matrix|print host|sort host|after '09:08'|top 10`)
  388. //rst,err := g.Search(`mxsvr01|print host,vtime|sort host|window "01:01" to "09:08"|top 10|count`)
  389. /*rst,err := g.OnlySearch(`/matrix/devops/performance/:
  390. | id=8042811419123646451
  391. | sort vtime asc
  392. | top 2880
  393. | within 8hour`)*/
  394. //rst,err := g.OnlySearch(`mxsvr201 | ERROR | contain @biz -> @host, @host -> @app, @app -> @inst`)
  395. //rst,err := g.OnlySearch(`mxsvr201 | ERROR | tag "严重错误" `)
  396. /*rst,err := g.OnlySearch(`#/matrix/devops/performance:
  397. | sort biz asc,host asc,app asc,inst asc,param asc,value asc,vtime desc
  398. | top 1000
  399. | except ip=null`)*/
  400. //rst,err := g.OnlySearch(`mxsvr201 | top2 | sed 's/mxsvr201/{{$.id}}附加说明/g' `)
  401. //rst,err := g.OnlySearch(`#/matrix/dashboard: | name=dashboard_1481167032 | delete `)
  402. //rst,err := g.OnlySearch(`mxsvr201 | top2 | sed 's/mxsvr201/{{.id}}附加说明/g' `)
  403. //rst,err := g.OnlySearch(`mxsvr201 | top2 | sed 's/mxsvr201/{{$.id}}附加说明/g' `)
  404. //rst,err := g.OnlySearch(`mxsvr201 | top2 | sed 's//{{$.id}}附加说明/g' `)
  405. //rst,err := g.OnlySearch(`# /matrix/devops/event/:`)
  406. //rst,err := g.Search(`mxsvr201 | top2 | sed s//(mx)(svr[\d]+)//${1}附加${2}//g `,false)
  407. //rst,err := g.Search(`mxsvr201 | top10 | print host, id | expr host:<s> "hello " + host + id </s> `,false)
  408. //rst,err := g.OnlySearch("# /matrix/devops/performance | print value, host | expr value=`\"ppp\"+value` , host=`\"pppp\"+host+\"444\"` ")
  409. //rst,err := g.OnlySearch(`# /matrix/devops/performance/ | print value, host | top 1 | lua host=<lua> return "pppp"..host.."444" </lua>`)
  410. /*rst,err := g.OnlySearch(`#/matrix/devops/performance/: | param = usedpercent
  411. | inst = cpu1
  412. | sort vtime desc, host
  413. | top 10
  414. | uniq host
  415. | print host,inst,param,value`)*/
  416. /*rst,err := g.OnlySearch(`/matrix/devops/performance/: | id=13722093446131916505
  417. | within 600 minutes
  418. | sort vtime asc
  419. | top 10`)*/
  420. //rst,err := g.OnlySearch(`mxsvr201 |error event | top 10 | id=-5062375036196941011`)
  421. //rst,err := g.OnlySearch(`id='13722093446131916505'`)
  422. //rst,err := g.OnlySearch(`ticketid='IM201701170004234' | update remark = 'tsoracle.bmc.com'`)
  423. //rst,err := g.OnlySearch(`error | print severity | lua severity=<lua>return "<kbd>"..severity.."</kbd>"</lua>`)
  424. /*rst,err := g.OnlySearch(`/matrix/devops/performance | sort vtime desc
  425. | top 10
  426. | lua value=<s> if (value > 0 ) then return "<b><span class='pull-right' style='color:red;'>" .. string.format("%.2f", value) .. "</span></b>" end return "<span class='pull-right'>" .. string.format("%.2f", value) .. "</span>"
  427. </s>` )*/
  428. //rst,err := g.OnlySearch(`# /matrix/devops/performance/:| print value | sed value:'s//(.*)//${1}<i class="icon-caret-up icon-1x" style="color:red;"></i>//g' `)
  429. //rst,err := g.OnlySearch(`# /matrix/devops/performance/:| print value | sed value:'i asdfasdfsadf' `)
  430. /*rst,err := g.OnlySearch(`# /matrix/devops/performance/:
  431. | sort biz asc,host asc,app asc,inst asc,param asc,value asc,vtime desc
  432. | top 1000| except ip=null
  433. | lua value=<lua>
  434. if param == 'usedpercent' then
  435. if value > 60 then
  436. return "<span class='pull-right' style='color:#FF0000;' title='超过阈值{60%}'><b>" .. string.format("%.2f",value) .. " %</b> <i class='fa fa-sort-up'></i></span>"
  437. else
  438. return "<span class='pull-right' style='color:#0088CC;'><b>" .. string.format("%.2f",value) .. " %</b></span>"
  439. end
  440. elseif param == 'cores' then
  441. return "<span class='pull-right' style='color:#0088CC;'><b>" .. value .. "</b></span>"
  442. else
  443. return "<span class='pull-right' style='color:#9999CC;'><b>" .. string.format("%.2f",value/1024/1024) .. " MB</b></span>"
  444. end
  445. </lua>`)*/
  446. //rst,err := g.OnlySearch(`#/matrix/devops/performance/: | inst=cpu1 | param=usedpercent`)
  447. //rst,err := g.OnlySearch(`# /matrix/devops/performance/: | value > 5000 | top 1000 `)
  448. /*
  449. rst,err := g.OnlySearch(`#/matrix/devops/performance:
  450. | sort biz asc,host asc,app asc,inst asc,param asc,value asc,ctime desc
  451. | top 1000
  452. | except ip=null`)
  453. */
  454. /*
  455. if fields, err := g.Query("select node,agent,summary from /matrix/event/tivoli where severity>=0 "); err != nil {
  456. fmt.Println(err.Error())
  457. }else{
  458. for i:=0 ; i< len(fields) ;i++ {
  459. fmt.Println(fields[i]["agent"].(string),fields[i]["summary"].(string))
  460. }
  461. }
  462. */
  463. /*
  464. if _, err := g.Query("truncate /matrix/event/open"); err != nil {
  465. fmt.Println(err.Error())
  466. }else{
  467. }
  468. */
  469. // 测试 Alter Table
  470. /*
  471. for i:=0 ; i<1000 ;i++ {
  472. sql := fmt.Sprintf(`ALTER TABLE object ADD H%d %s`,i,"text")
  473. logger.Debugf(sql)
  474. if err := g.GetSession().Query(sql).Consistency(gocql.Quorum).Exec(); err != nil {
  475. logger.Fatalf("ADD ERROR %v",err)
  476. }
  477. */
  478. /*
  479. for i:=0 ; i<1000 ;i++ {
  480. sql := fmt.Sprintf(`ALTER TABLE object DROP H%d `,i)
  481. logger.Debugf(sql)
  482. if err := g.GetSession().Query(sql).Consistency(gocql.Quorum).Exec(); err != nil {
  483. logger.Fatalf("DROP ERROR %v",err)
  484. }
  485. }
  486. */
  487. if err != nil {
  488. logger.Info("Query error:" + err.Error())
  489. } else {
  490. logger.Info(rst)
  491. }
  492. }