testhuge.go 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414
  1. package main
  2. import (
  3. //"fmt"
  4. "encoding/json"
  5. "git.wecise.com/wecise/odbserver/odb/test"
  6. "gitee.com/wecisecode/util/logger"
  7. )
  8. func main() {
  9. //options := map[string]interface{} {"cache":odb.CacheAll}
  10. //g,err:= odb.New( options )
  11. //option := &StoreOption{Cache:CacheAll}
  12. option := &Option{Cache: CacheAll, Keyspace: "eventbus", DisableInitialHostLookup: true}
  13. g, err := test.NewG(option)
  14. if err != nil {
  15. logger.Error(err.Error())
  16. } else {
  17. defer g.Close()
  18. }
  19. /*
  20. rst,err := g.Search(`/matrix/devops/log/:
  21. | id=8871587300017613452
  22. | top 2
  23. | within 3day| print vtime
  24. | sort vtime desc, severity desc
  25. `)
  26. */
  27. //rst,meta,err := g.Search(`#| host=wecise | value > 30 | value < 100 | sort value | nearest 1 day `)
  28. //rst,meta,err := g.Search(`/matrix/devops/test@tinycol=警告`)
  29. //rst,meta,err := g.Search(`/matrix/devops/test | 警告`)
  30. //rst,meta,err := g.Search(`/matrix/devops/event/:|ctime=2017-12-16 07:26:40.000`)
  31. //rst,meta,err := g.Search(`/matrix/devops/event/:|ctime=2017-12-16| print ctime`)
  32. //rst,meta,err := g.Search(`/matrix/devops/event/:|at 2017-12-16| print ctime`)
  33. //rst,meta,err := g.Search(`/matrix/devops/event/:|at 2017/12/15 11 for ctime| print ctime`)
  34. //rst,meta,err := g.Search(`/matrix/devops/performance/baseline/max: | sort vtime desc | top 1 | src=14977718774318726019 | nearest 1day for vtime`)
  35. //rst,meta,err := g.Search(`#/matrix/devops/event/: | manager=ALCATEL5529OA* | nearest 1 day for vtime `)
  36. //rst,meta,err := g.Search(`debug>/matrix/devops/performance/:, /matrix/devops/event/: | host=DB | top 5`)
  37. //rst,meta,err := g.Search(`debug>#/matrix/devops/log/: | nearest 1 day | top 200`)
  38. //rst,meta,err := g.Search(`debug>/matrix/devops/event/: | forward | join /matrix/devops/performance/ with host | app=app2 | top 3 `)
  39. //rst,meta,err := g.Search(`app=etcd`)
  40. //rst,meta,err := g.Search(`#/matrix/portal/tools |enname ~ Event`,map[string]interface{}{"meta":true})
  41. //rst,meta,err := g.Search(`#/matrix/devops/event/ | facet host as 服务器 `)
  42. // compile
  43. //rst,meta,err := g.Search(`/matrix/entity/linux | print class,id,name | id=linux:test1 `)
  44. //rst,meta,err := g.Search(`#/matrix/entity/cmdb_ci_instance_4,/matrix/entity/cmdb_ci_instance_5,/matrix/entity/cmdb_ci_instance_6,/matrix/entity/cmdb_ci_instance_7,/matrix/entity/cmdb_ci_instance_8,/matrix/entity/cmdb_ci_instance_9,/matrix/entity/cmdb_ci_instance_10,/matrix/entity/cmdb_ci_instance_11,/matrix/monitor/notify,/matrix/monitor/log/business_log,/matrix/monitor/log/device_log,/matrix/monitor/log/software_log | ~ 123`)
  45. //rst,meta,err := g.Search(`#/matrix/entity/cmdb_ci_instance_4,/matrix/entity/cmdb_ci_instance_5,/matrix/entity/cmdb_ci_instance_6,/matrix/entity/cmdb_ci_instance_7,/matrix/entity/cmdb_ci_instance_8,/matrix/entity/cmdb_ci_instance_9,/matrix/entity/cmdb_ci_instance_10,/matrix/entity/cmdb_ci_instance_11,/matrix/monitor/notify,/matrix/monitor/log/business_log,/matrix/monitor/log/device_log,/matrix/monitor/log/software_log | ~ 123`)
  46. //rst,meta,err := g.Search(`#/matrix/portal/tools/: | sort by seat asc`, map[string]interface{}{"meta":true})
  47. //rst,meta,err := g.Search(`#/matrix/devops/event/: | biz != null`, map[string]interface{}{"meta":true})
  48. ///wecise | facet severity{"critical":[5,],"warning":[,4]}
  49. //rst,meta,err := g.Search(`debug>#/matrix/devops/event/omnibus | status = 1;host != 2 | top 10`,map[string]interface{}{"meta":true})
  50. //rst,meta,err := g.Search(`debug>id=14531092434866036616 | sort vtime desc | nearest 1 hour for vtime | top 3000 `)
  51. //rst,meta,err := g.Search(`debug> id=cassandra:wecise | vtime=2018-02-08T07:23:41.848Z `)
  52. //rst,meta,err := g.Search(`debug> /matrix/system/kpi | thred.8 = '95' `)
  53. //rst,meta,err := g.Search(`debug>/matrix/devops/event/: | forward `)
  54. //rst,meta,err := g.Search(`debug>call tree {"ftype":"class", "parent":"/matrix/system/kpi","fields":["agent","catalog","name"]}`)
  55. //rst,meta,err := g.Search(`debug> #/matrix/portal/tools: | sort by seat asc`)
  56. /*if v, err:= g.ClassTree.Get("/matrix/jobs/cmdrun");v == nil {
  57. logger.Errorf("111===%v,%v", err, v)
  58. }else{
  59. logger.Errorf("2222===%v, %v", err,v)
  60. }*/
  61. //rst,meta,err := g.Search(`#/matrix/devops/performance:| at 2017-12-16 18:30:01 `)
  62. //rst,meta,err := g.Search(`#/matrix/entity/: | id=*linux:app2#Interface:eth0 | call graph {"level":3, "rels":["contain","depend","connect"]}`)
  63. //rst,meta,err := g.Search(`#/matrix/entity/ | id=linux:wecise | call graph {"level":2, "rels":["contain"]}`)
  64. //rst,meta,err := g.Search(`#/matrix/entity/: | id=biz:matrix | call graph {"level":3, "rels":["contain","depend"]}`)
  65. //rst,meta,err := g.Search(`#/matrix/entity/: | id=biz:统一数据平台 | call graph {level:1, rels:["contain"] }`)
  66. //rst,meta,err := g.Search(`#/matrix/entity/: | id=biz:统一数据平台 | call graph {"level":1, "rels":["contain","depend","connect","runon"] }`)
  67. //rst,meta,err := g.Search(`#/matrix/entity/: | id=biz:统一数据平台`)
  68. //rst,meta,err := g.Search(`#/matrix/entity/: | id=cluster:amq`)
  69. //rst,meta,err := g.Search(`/matrix/devops/ | wecise | severity=5 | sort by vtime | print +ctel`)
  70. //rst,meta,err := g.Search(`#/matrix/filesystem: | admin昨天上传的文档* | parent=/opt/knowledge*`)
  71. //rst,meta,err := g.Search(`#/matrix/devops/alert | class=/matrix/devops/alert`)
  72. //rst,meta,err := g.Search(`#/matrix/entity/: | *linux:172.26.38.248* | top 500`)
  73. rst, meta, err := g.Search(`
  74. #/matrix/devops/alert | z000000000006z03gLhZSjnsL1UThi5jM2fXa;z000000000006z03gLhZSjnsL1PTtfWHBVFh3;z000000000006z03gLhZSjnsL1B241T7XH5m6;z000000000006z03gLhZRSeGYLUThi5jM2fXa;z000000000006z03gLhZRSeGYLRYkfQr2jr65;z000000000006z03gLhZRSeGYLPTtfWHBVFh3;z000000000006z03gLhZRSeGYLPS3FfT59N3B;z000000000006z03gLhZQBUclfUThi5jM2fXa;z000000000006z03gLhZQBUclfPTtfWHBVFh3;z000000000006z03gLhZQBUclfPS3FfT59N3B;z000000000006z03gLhZQBUclfB241T7XH5m6;z000000000006z03gLhZOsL111UThi5jM2fXa;z000000000006z03gLhZOsL111PS3FfT59N3B;z000000000006z03gLhZOsL111B241T7XH5m6;z000000000006z03gLhZNbBNELUThi5jM2fXa;z000000000006z03gLhZNbBNELRYkfQr2jr65;z000000000006z03gLhZNbBNELPTtfWHBVFh3;z000000000006z03gLhZNbBNELPS3FfT59N3B;z000000000006z03gLhZNbBNELB241T7XH5m6;z000000000006z03gLhZMK1jRfUThi5jM2fXa;z000000000006z03gLhZMK1jRfRYkfQr2jr65;z000000000006z03gLhZMK1jRfPTtfWHBVFh3;z000000000006z03gLhZL2q7f1UThi5jM2fXa;z000000000006z03gLhZL2q7f1RYkfQr2jr65;z000000000006z03gLhZL2q7f1PS3FfT59N3B;z000000000006z03gLhZL2q7f1B241T7XH5m6;z000000000006z03gLhZJjgTsLUThi5jM2fXa;z000000000006z03gLhZJjgTsLPS3FfT59N3B;z000000000006z03gLhZJjgTsLB241T7XH5m6;z000000000006z03gLhZISWq7fUThi5jM2fXa;z000000000006z03gLhZISWq7fRYkfQr2jr65;z000000000006z03gLhZISWq7fPTtfWHBVFh3;z000000000006z03gLhZISWq7fPS3FfT59N3B;z000000000006z03gLhZHBNEL1UThi5jM2fXa;z000000000006z03gLhZHBNEL1RYkfQr2jr65;z000000000006z03gLhZHBNEL1PTtfWHBVFh3;z000000000006z03gLhZHBNEL1B241T7XH5m6;z000000000006z03gLhZFsDaYLPTtfWHBVFh3;z000000000006z03gLhZEb3wlfRYkfQr2jr65;z000000000006z03gLhZEb3wlfB241T7XH5m6;z000000000006z03gLhZDJsL11UThi5jM2fXa;z000000000006z03gLhZDJsL11PTtfWHBVFh3;z000000000006z03gLhZDJsL11PS3FfT59N3B;z000000000006z03gLhZC2ihELUThi5jM2fXa;z000000000006z03gLhZC2ihELRYkfQr2jr65;z000000000006z03gLhZC2ihELPTtfWHBVFh3;z000000000006z03gLhZC2ihELPS3FfT59N3B;z000000000006z03gLhZC2ihELB241T7XH5m6;z000000000006z03gLhZAjZ5RfUThi5jM2fXa;z000000000006z03gLhZAjZ5RfRYkfQr2jr65;z000000000006z03gLhZAjZ5RfPS3FfT59N3B;z000000000006z03gLhZAjZ5RfB241T7XH5m6;z000000000006z03gLhZ9SPRf1UThi5jM2fXa;z000000000006z03gLhZ9SPRf1RYkfQr2jr65;z000000000006z03gLhZ9SPRf1PTtfWHBVFh3;z000000000006z03gLhZ9SPRf1PS3FfT59N3B;z000000000006z03gLhZ9SPRf1B241T7XH5m6;z000000000006z03gLhZ8BFnsLUThi5jM2fXa;z000000000006z03gLhZ8BFnsLPTtfWHBVFh3;z000000000006z03gLhZ8BFnsLPS3FfT59N3B;z000000000006z03gLhZ8BFnsLB241T7XH5m6;z000000000006z03gLhZ6s6C7fUThi5jM2fXa;z000000000006z03gLhZ6s6C7fRYkfQr2jr65;z000000000006z03gLhZ6s6C7fPTtfWHBVFh3;z000000000006z03gLhZ6s6C7fPS3FfT59N3B;z000000000006z03gLhZ6s6C7fB241T7XH5m6;z000000000006z03gLhZ5auYL1RYkfQr2jr65;z000000000006z03gLhZ5auYL1PTtfWHBVFh3;z000000000006z03gLhZ5auYL1PS3FfT59N3B;z000000000006z03gLhZ5auYL1B241T7XH5m6;z000000000006z03gLhZ4JkuYLUThi5jM2fXa;z000000000006z03gLhZ4JkuYLRYkfQr2jr65;z000000000006z03gLhZ4JkuYLPTtfWHBVFh3;z000000000006z03gLhZ4JkuYLB241T7XH5m6;z000000000006z03gLhZ32bIlfUThi5jM2fXa;z000000000006z03gLhZ32bIlfRYkfQr2jr65;z000000000006z03gLhZ32bIlfPTtfWHBVFh3;z000000000006z03gLhZ32bIlfPS3FfT59N3B;z000000000006z03gLhZ32bIlfB241T7XH5m6;z000000000006z03gLhZ1jRf11UThi5jM2fXa;z000000000006z03gLhZ1jRf11RYkfQr2jr65;z000000000006z03gLhZ1jRf11PTtfWHBVFh3;z000000000006z03gLhZ1jRf11PS3FfT59N3B;z000000000006z03gLhZ1jRf11B241T7XH5m6;z000000000006z03gLhYySI3ELUThi5jM2fXa;z000000000006z03gLhYySI3ELRYkfQr2jr65;z000000000006z03gLhYySI3ELPTtfWHBVFh3;z000000000006z03gLhYySI3ELPS3FfT59N3B;z000000000006z03gLhYySI3ELB241T7XH5m6;z000000000006z03gLhYxB8PRfUThi5jM2fXa;z000000000006z03gLhYxB8PRfRYkfQr2jr65;z000000000006z03gLhYxB8PRfPTtfWHBVFh3;z000000000006z03gLhYxB8PRfPS3FfT59N3B;z000000000006z03gLhYxB8PRfB241T7XH5m6;z000000000006z03gLhYvrwlf1UThi5jM2fXa;z000000000006z03gLhYvrwlf1RYkfQr2jr65;z000000000006z03gLhYvrwlf1PS3FfT59N3B;z000000000006z03gLhYuan9sLRYkfQr2jr65;z000000000006z03gLhYuan9sLPTtfWHBVFh3;z000000000006z03gLhYuan9sLPS3FfT59N3B | entity!=null | status<12 | print id, biz, severity, entity | group with topo | top 1000`)
  75. //rst,meta,err := g.Search(`#/matrix/devops/alert_status | severity>0 | vtime = 2021-06-19 | top 5000`)
  76. //rst,meta,err := g.Search(`#/matrix/test/scollect | t_list = 'Hell*'`)
  77. //rst,meta,err := g.Search(`#/matrix/entity/: | id=biz:matrix | print id`)
  78. //rst,meta,err := g.Search(`app != syslog`)
  79. //rst,meta,err := g.Search(`call tree {"ftype":"class", "parent":"/matrix/entity","fields":["cid","name"]} `)
  80. //rst,meta,err := g.Search(`#/matrix/entity/: | id=biz:matrix`)
  81. //rst,meta,err := g.Search(`class=/matrix/`)
  82. //rst,meta,err := g.Search(`mxsvr201`)
  83. //rst,err := g.OnlySearch(`mxsvr201 | grep value>2.76`)
  84. //rst,err := g.OnlySearch(`cpu0| grep value=2.76|print value`)
  85. //rst,err := g.Search(`#/matrix/portal/tools: | sort by seat asc`)
  86. //rst,err := g.Search(`这是中文 这是中文2 aaaa|grep bbb|within 1 hour|top 10`)
  87. //rst,err := g.Search(`~这是中文 这是中文2 aaaa|grep ~bbb|print host|sort host|within 1 hour|top 10`)
  88. //rst,err := g.Search(`/matrix/devops/performance: | within 1day | top 10 | sort ctime asc | mxsvr201 or mxsvr231 | print name,id `)
  89. //rst,err := g.Search(`id=6619596727648121104 or id=4103214017054340550`,false)
  90. //rst,meta,err := g.Search(`#/matrix/ldap/: | parent=/系统组`)
  91. //rst,err := g.Search(`/matrix/entity/: | contain etcd | print name `,false)
  92. //
  93. //rst,err := g.Search(`#/matrix/devops/log/: | print id,name | sort vtime desc, severity desc `,false)
  94. /*
  95. rst,err := g.Search(`/matrix/devops/event/:
  96. | top 100
  97. | within 1day
  98. | lua severity=<lua> if severity == 'FATAL' then
  99. return "<kbd style='background-color:#000000;'>重大</kbd>"
  100. elseif severity == 'ERROR' or severity == '5' or severity == 'CRITICAL' then
  101. return "<kbd style='background-color:#FF0000;'>严重</kbd>"
  102. elseif severity == 'WARN' or severity == '4' or severity == 'MINOR' then
  103. return "<kbd style='background-color:#F0AD4E;'>警告</kbd>"
  104. elseif severity == '一般' or severity == '3' or severity == '2' or severity == '1' then
  105. return "<kbd style='background-color:#3BC303;'>一般</kbd>"
  106. elseif severity== '6' then
  107. return "<kbd style='background-color:#6BD2D2;'>未知</kbd>"
  108. end
  109. </lua>
  110. | lua msg=<lua>
  111. s = string.gsub(msg, "Failed", "<span style='background-color:#fae4ae;'>".."%1".."</span>")
  112. return s
  113. </lua>
  114. | lua msg=<lua>
  115. s = string.gsub(msg, "failed", "<span style='background-color:#fae4ae;'>".."%1".."</span>")
  116. return s
  117. </lua>
  118. | lua msg=<lua>
  119. s = string.gsub(msg, "error", "<span style='background-color:#fae4ae;'>".."%1".."</span>")
  120. return s
  121. </lua>
  122. | lua msg=<lua>
  123. s = string.gsub(msg, "matrix", "<span style='background-color:#fae4ae;'>".."%1".."</span>")
  124. return s
  125. </lua>
  126. | lua msg=<lua>
  127. s = string.gsub(msg, "Error", "<span style='background-color:#fae4ae;'>".."%1".."</span>")
  128. return s
  129. </lua>
  130. | lua msg=<lua>
  131. s = string.gsub(msg, host, "<span style='background-color:#fae4ae;'>".."%1".."</span>")
  132. return s
  133. </lua>
  134. | sort vtime desc, severity desc`,false)*/
  135. //rst,meta,err := g.Search(`#/matrix/devops/performance:| sort ctime desc, biz asc,host asc,app asc,inst asc,param asc,value asc`)
  136. /*rst,err := g.Search(`#/matrix/devops/log/: | top 100 | sort host desc, severity desc| print id,vtime,class,biz,host,app,inst,param,msg,severity,src,ctime
  137. | sort vtime desc, severity desc
  138. | lua severity=<lua> if severity == 'FATAL' then
  139. return "<kbd style='background-color:#000000;'>重大</kbd>"
  140. elseif severity == 'ERROR' or severity == '5' or severity == 'ERR' then
  141. return "<kbd style='background-color:#FF0000;'>严重</kbd>"
  142. elseif severity == 'WARN' or severity == '4' then
  143. return "<kbd style='background-color:#F0AD4E;'>警告</kbd>"
  144. elseif severity == 'INFO' or severity == '一般' or severity == '3' or severity == '2' or severity == '1' then
  145. return "<kbd style='background-color:#3BC303;'>一般</kbd>"
  146. elseif severity== '6' then
  147. return "<kbd style='background-color:#6BD2D2;'>未知</kbd>"
  148. end
  149. </lua>
  150. | lua msg=<lua>
  151. s = string.gsub(msg, host, "<span style='background-color:#fae4ae;'>".."%1".."</span>")
  152. return s
  153. </lua>
  154. | lua msg=<lua>
  155. if src=="shell" then
  156. return "<pre style='border:0px;'>"..string.gsub(msg, "UN", "<kbd style='background-color:#4AB93D;'>".."%1".."</kbd>").."</pre>"
  157. end
  158. </lua>
  159. | lua msg=<lua>
  160. if src=="shell" then
  161. return "<pre style='border:0px;'>"..string.gsub(msg, "DN", "<kbd style='background-color:#ff0000;'>".."%1".."</kbd>").."</pre>"
  162. end
  163. </lua>`)*/
  164. /*rst, meta, err := g.Search(`#/matrix/entity/hardware/: | print assetid,
  165. biz,
  166. class,
  167. company,
  168. config,
  169. contact,
  170. ctel,
  171. day,
  172. dc,
  173. department,
  174. files,
  175. host,
  176. id,
  177. ip,
  178. location,
  179. model,
  180. name,
  181. period,
  182. rack,
  183. region,
  184. room,
  185. sn,
  186. status,
  187. tel,
  188. type,
  189. unit,
  190. vtime | except id=*#*`)*/
  191. //rst,err := g.Search(`select * from /matrix/ldap where id = 16882012185573752086`)
  192. /*rst,err := g.Search(`#/matrix/devops/log/: | top 1000| print id,vtime,class,biz,host,app,inst,param,msg,severity,src
  193. | sort vtime desc, severity desc`) */
  194. /*
  195. rst,err := g.Search(`#/matrix/devops/performance/:| top 1000| lua value=<lua>
  196. return "hhh"
  197. </lua> | inst=cpu* | top 5`,false)
  198. */
  199. //rst,err := g.OnlySearch(`~mxsvr01|grep Matrix|print host|sort host|after '09:08'|top 10`)
  200. //rst,err := g.Search(`mxsvr01|print host,vtime|sort host|window "01:01" to "09:08"|top 10|count`)
  201. /*rst,err := g.OnlySearch(`/matrix/devops/performance/:
  202. | id=8042811419123646451
  203. | sort vtime asc
  204. | top 2880
  205. | within 8hour`)*/
  206. //rst,err := g.OnlySearch(`mxsvr201 | ERROR | contain @biz -> @host, @host -> @app, @app -> @inst`)
  207. //rst,meta, err := g.Search(`debug> /matrix/devops/event/: | mxsvr221 | tags="严重错误"`)
  208. //rst,meta, err := g.Search(`debug> /matrix/test | print class,id,name,value1,value2 | name=test|tags -'测试3'`)
  209. //rst,meta, err := g.Search(`debug>#/matrix/testgroup: | avg(v1) as name_avgv1,sum(v2) as name_sumv2 | group by g1 `)
  210. //rst,meta, err := g.Search(`debug> #/matrix/entity/: top 200`)
  211. //rst,meta, err := g.Search(`debug> /matrix/test | print class,id,name | name = test2 | tag +测试2`)
  212. //rst,meta, err := g.Search(`debug> /matrix/devops/event/: | mxsvr221 `)
  213. /*rst,err := g.OnlySearch(`#/matrix/devops/performance:
  214. | sort biz asc,host asc,app asc,inst asc,param asc,value asc,vtime desc
  215. | top 1000
  216. | except ip=null`)*/
  217. //rst,err := g.OnlySearch(`mxsvr201 | top2 | sed 's/mxsvr201/{{$.id}}附加说明/g' `)
  218. //rst,err := g.OnlySearch(`#/matrix/dashboard: | name=dashboard_1481167032 | delete `)
  219. //rst,err := g.OnlySearch(`mxsvr201 | top2 | sed 's/mxsvr201/{{.id}}附加说明/g' `)
  220. //rst,err := g.OnlySearch(`mxsvr201 | top2 | sed 's/mxsvr201/{{$.id}}附加说明/g' `)
  221. //rst,err := g.OnlySearch(`mxsvr201 | top2 | sed 's//{{$.id}}附加说明/g' `)
  222. //rst,err := g.OnlySearch(`# /matrix/devops/event/:`)
  223. //rst,err := g.Search(`mxsvr201 | top2 | sed s//(mx)(svr[\d]+)//${1}附加${2}//g `,false)
  224. //rst,err := g.Search(`mxsvr201 | top10 | print host, id | expr host:<s> "hello " + host + id </s> `,false)
  225. //rst,err := g.OnlySearch("# /matrix/devops/performance | print value, host | expr value=`\"ppp\"+value` , host=`\"pppp\"+host+\"444\"` ")
  226. //rst,err := g.OnlySearch(`# /matrix/devops/performance/ | print value, host | top 1 | lua host=<lua> return "pppp"..host.."444" </lua>`)
  227. /*rst,err := g.OnlySearch(`#/matrix/devops/performance/: | param = usedpercent
  228. | inst = cpu1
  229. | sort vtime desc, host
  230. | top 10
  231. | uniq host
  232. | print host,inst,param,value`)*/
  233. /*rst,err := g.OnlySearch(`/matrix/devops/performance/: | id=13722093446131916505
  234. | within 600 minutes
  235. | sort vtime asc
  236. | top 10`)*/
  237. //rst,err := g.OnlySearch(`mxsvr201 |error event | top 10 | id=-5062375036196941011`)
  238. //rst,err := g.OnlySearch(`id='13722093446131916505'`)
  239. //rst,err := g.OnlySearch(`ticketid='IM201701170004234' | update remark = 'tsoracle.bmc.com'`)
  240. //rst,err := g.OnlySearch(`error | print severity | lua severity=<lua>return "<kbd>"..severity.."</kbd>"</lua>`)
  241. /*rst,err := g.OnlySearch(`/matrix/devops/performance | sort vtime desc
  242. | top 10
  243. | 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>"
  244. </s>` )*/
  245. //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' `)
  246. //rst,err := g.OnlySearch(`# /matrix/devops/performance/:| print value | sed value:'i asdfasdfsadf' `)
  247. /*rst,err := g.OnlySearch(`# /matrix/devops/performance/:
  248. | sort biz asc,host asc,app asc,inst asc,param asc,value asc,vtime desc
  249. | top 1000| except ip=null
  250. | lua value=<lua>
  251. if param == 'usedpercent' then
  252. if value > 60 then
  253. return "<span class='pull-right' style='color:#FF0000;' title='超过阈值{60%}'><b>" .. string.format("%.2f",value) .. " %</b> <i class='fa fa-sort-up'></i></span>"
  254. else
  255. return "<span class='pull-right' style='color:#0088CC;'><b>" .. string.format("%.2f",value) .. " %</b></span>"
  256. end
  257. elseif param == 'cores' then
  258. return "<span class='pull-right' style='color:#0088CC;'><b>" .. value .. "</b></span>"
  259. else
  260. return "<span class='pull-right' style='color:#9999CC;'><b>" .. string.format("%.2f",value/1024/1024) .. " MB</b></span>"
  261. end
  262. </lua>`)*/
  263. //rst,err := g.OnlySearch(`#/matrix/devops/performance/: | inst=cpu1 | param=usedpercent`)
  264. //rst,err := g.OnlySearch(`# /matrix/devops/performance/: | value > 5000 | top 1000 `)
  265. /*
  266. rst,err := g.OnlySearch(`#/matrix/devops/performance:
  267. | sort biz asc,host asc,app asc,inst asc,param asc,value asc,ctime desc
  268. | top 1000
  269. | except ip=null`)
  270. */
  271. /*
  272. if fields, err := g.Query("select node,agent,summary from /matrix/event/tivoli where severity>=0 "); err != nil {
  273. fmt.Println(err.Error())
  274. }else{
  275. for i:=0 ; i< len(fields) ;i++ {
  276. fmt.Println(fields[i]["agent"].(string),fields[i]["summary"].(string))
  277. }
  278. }
  279. */
  280. /*
  281. if _, err := g.Query("truncate /matrix/event/open"); err != nil {
  282. fmt.Println(err.Error())
  283. }else{
  284. }
  285. */
  286. // 测试 Alter Table
  287. /*
  288. for i:=0 ; i<1000 ;i++ {
  289. sql := fmt.Sprintf(`ALTER TABLE object ADD H%d %s`,i,"text")
  290. logger.Debugf(sql)
  291. if err := g.GetSession().Query(sql).Consistency(gocql.Quorum).Exec(); err != nil {
  292. logger.Fatalf("ADD ERROR %v",err)
  293. }
  294. */
  295. /*
  296. for i:=0 ; i<1000 ;i++ {
  297. sql := fmt.Sprintf(`ALTER TABLE object DROP H%d `,i)
  298. logger.Debugf(sql)
  299. if err := g.GetSession().Query(sql).Consistency(gocql.Quorum).Exec(); err != nil {
  300. logger.Fatalf("DROP ERROR %v",err)
  301. }
  302. }
  303. */
  304. if err != nil {
  305. logger.Info("Query error:" + err.Error())
  306. } else {
  307. logger.Info("rst ===>", rst)
  308. // for graph
  309. if graph, err := json.Marshal(rst); err != nil {
  310. logger.Error(err.Error())
  311. } else {
  312. logger.Error("graph ===>", string(graph))
  313. }
  314. logger.Error("meta ===>", meta)
  315. if meta["trace"] != nil && len(meta["trace"].([]string)) > 0 {
  316. for _, msg := range meta["trace"].([]string) {
  317. logger.Error(msg)
  318. }
  319. }
  320. logger.Warn(meta["columns"])
  321. logger.Warn(meta["summary"])
  322. }
  323. }