package main import ( //"fmt" "encoding/json" . "git.wecise.com/wecise/odbserver/odb" "git.wecise.com/wecise/odbserver/odb/test" "gitee.com/wecisecode/util/logger" ) // CGO_ENABLED=1 go run --ldflags '-linkmode external -extldflags "-static"' testauth.go // #cgo LDFLAGS: -L/opt/odbserver/sqlite -lsqlite -ldl // #include "/opt/odbserver/sqlite/sqlite.h" // #include // #include // extern int64_t uhaha_seed; // extern int64_t uhaha_ts; // void uhaha_begin_reader(); // void uhaha_end_reader(); func main() { //options := map[string]interface{} {"cache":odb.CacheAll} //g,err:= odb.New( options ) //option := &StoreOption{Cache:CacheAll} option := &Option{Cache: CacheAll, Keyspace: "matrix", DisableInitialHostLookup: true} g, err := test.NewG(option) if err != nil { logger.Error(err.Error()) } else { defer g.Close() } /* rst,err := g.Search(`/matrix/devops/log/: | id=8871587300017613452 | top 2 | within 3day| print vtime | sort vtime desc, severity desc `) */ //rst,meta,err := g.Search(`#| host=wecise | value > 30 | value < 100 | sort value | nearest 1 day `) //rst,meta,err := g.Search(`/matrix/devops/test@tinycol=警告`) //rst,meta,err := g.Search(`/matrix/devops/test | 警告`) //rst,meta,err := g.Search(`/matrix/devops/event/:|ctime=2017-12-16 07:26:40.000`) //rst,meta,err := g.Search(`/matrix/devops/event/:|ctime=2017-12-16| print ctime`) //rst,meta,err := g.Search(`/matrix/devops/event/:|at 2017-12-16| print ctime`) //rst,meta,err := g.Search(`/matrix/devops/event/:|at 2017/12/15 11 for ctime| print ctime`) //rst,meta,err := g.Search(`/matrix/devops/performance/baseline/max: | sort vtime desc | top 1 | src=14977718774318726019 | nearest 1day for vtime`) //rst,meta,err := g.Search(`#/matrix/devops/event/: | manager=ALCATEL5529OA* | nearest 1 day for vtime `) //rst,meta,err := g.Search(`debug>/matrix/devops/performance/:, /matrix/devops/event/: | host=DB | top 5`) //rst,meta,err := g.Search(`debug>#/matrix/devops/log/: | nearest 1 day | top 200`) //rst,meta,err := g.Search(`debug>/matrix/devops/event/: | forward | join /matrix/devops/performance/ with host | app=app2 | top 3 `) //rst,meta,err := g.Search(`app=etcd`) //rst,meta,err := g.Search(`#/matrix/portal/tools |enname ~ Event`,map[string]interface{}{"meta":true}) //rst,meta,err := g.Search(`#/matrix/devops/event/ | facet host as 服务器 `) // compile //rst,meta,err := g.Search(`/matrix/entity/linux | print class,id,name | id=linux:test1 `) //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`) //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`) //rst,meta,err := g.Search(`#/matrix/portal/tools/: | sort by seat asc`, map[string]interface{}{"meta":true}) //rst,meta,err := g.Search(`#/matrix/devops/event/: | biz != null`, map[string]interface{}{"meta":true}) ///wecise | facet severity{"critical":[5,],"warning":[,4]} //rst,meta,err := g.Search(`debug>#/matrix/devops/event/omnibus | status = 1;host != 2 | top 10`,map[string]interface{}{"meta":true}) //rst,meta,err := g.Search(`debug>id=14531092434866036616 | sort vtime desc | nearest 1 hour for vtime | top 3000 `) //rst,meta,err := g.Search(`debug> id=cassandra:wecise | vtime=2018-02-08T07:23:41.848Z `) //rst,meta,err := g.Search(`debug> /matrix/system/kpi | thred.8 = '95' `) //rst,meta,err := g.Search(`debug>/matrix/devops/event/: | forward `) //rst,meta,err := g.Search(`debug>call tree {"ftype":"class", "parent":"/matrix/system/kpi","fields":["agent","catalog","name"]}`) //rst,meta,err := g.Search(`debug> #/matrix/portal/tools: | sort by seat asc`) /*if v, err:= g.ClassTree.Get("/matrix/jobs/cmdrun");v == nil { logger.Errorf("111===%v,%v", err, v) }else{ logger.Errorf("2222===%v, %v", err,v) }*/ //rst,meta,err := g.Search(`#/matrix/devops/performance:| at 2017-12-16 18:30:01 `) //rst,meta,err := g.Search(`#/matrix/entity/: | id=*linux:app2#Interface:eth0 | call graph {"level":3, "rels":["contain","depend","connect"]}`) //rst,meta,err := g.Search(`#/matrix/entity/ | id=linux:wecise | call graph {"level":2, "rels":["contain"]}`) //rst,meta,err := g.Search(`#/matrix/entity/: | id=biz:matrix | call graph {"level":3, "rels":["contain","depend"]}`) //rst,meta,err := g.Search(`#/matrix/entity/: | id=biz:统一数据平台 | call graph {level:1, rels:["contain"] }`) //rst,meta,err := g.Search(`#/matrix/entity/: | id=biz:统一数据平台 | call graph {"level":1, "rels":["contain","depend","connect","runon"] }`) //rst,meta,err := g.Search(`#/matrix/entity/: | id=biz:统一数据平台`) //rst,meta,err := g.Search(`#/matrix/entity/: | id=cluster:amq`) //rst,meta,err := g.Search(`/matrix/devops/ | wecise | severity=5 | sort by vtime | print +ctel`) //rst,meta,err := g.Search(`#/matrix/filesystem: | admin昨天上传的文档* | parent=/opt/knowledge*`) //rst,meta,err := g.Search(`#/matrix/jobs/jobrun: | status < 9 | facet status as status_状态维度, class as class_类维度, tags as tags_标签维度,vtime as vtime_时间维度`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false , User:"U/testorg/sss/2" , Group:[]string{ "/testorg/sss"}} ) rst, meta, err := g.Search(`#/matrix/entity/node/ | tags=核心交换机 | top 500`, &QueryMeta{Return: ReturnAll, User: "U/测试部/test01"}) //rst,meta,err := g.Search(`#/matrix/entity/: | id=biz:matrix | print id`) //rst,meta,err := g.Search(`app != syslog`) //rst,meta,err := g.Search(`call tree {"ftype":"class", "parent":"/matrix/entity","fields":["cid","name"]} `) //rst,meta,err := g.Search(`#/matrix/entity/: | id=biz:matrix`) //rst,meta,err := g.Search(`class=/matrix/`) //rst,meta,err := g.Search(`mxsvr201`) //rst,err := g.OnlySearch(`mxsvr201 | grep value>2.76`) //rst,err := g.OnlySearch(`cpu0| grep value=2.76|print value`) //rst,err := g.Search(`#/matrix/portal/tools: | sort by seat asc`) //rst,err := g.Search(`这是中文 这是中文2 aaaa|grep bbb|within 1 hour|top 10`) //rst,err := g.Search(`~这是中文 这是中文2 aaaa|grep ~bbb|print host|sort host|within 1 hour|top 10`) //rst,err := g.Search(`/matrix/devops/performance: | within 1day | top 10 | sort ctime asc | mxsvr201 or mxsvr231 | print name,id `) //rst,err := g.Search(`id=6619596727648121104 or id=4103214017054340550`,false) //rst,meta,err := g.Search(`#/matrix/ldap/: | parent=/系统组`) //rst,err := g.Search(`/matrix/entity/: | contain etcd | print name `,false) // //rst,err := g.Search(`#/matrix/devops/log/: | print id,name | sort vtime desc, severity desc `,false) /* rst,err := g.Search(`/matrix/devops/event/: | top 100 | within 1day | lua severity= if severity == 'FATAL' then return "重大" elseif severity == 'ERROR' or severity == '5' or severity == 'CRITICAL' then return "严重" elseif severity == 'WARN' or severity == '4' or severity == 'MINOR' then return "警告" elseif severity == '一般' or severity == '3' or severity == '2' or severity == '1' then return "一般" elseif severity== '6' then return "未知" end | lua msg= s = string.gsub(msg, "Failed", "".."%1".."") return s | lua msg= s = string.gsub(msg, "failed", "".."%1".."") return s | lua msg= s = string.gsub(msg, "error", "".."%1".."") return s | lua msg= s = string.gsub(msg, "matrix", "".."%1".."") return s | lua msg= s = string.gsub(msg, "Error", "".."%1".."") return s | lua msg= s = string.gsub(msg, host, "".."%1".."") return s | sort vtime desc, severity desc`,false)*/ //rst,meta,err := g.Search(`#/matrix/devops/performance:| sort ctime desc, biz asc,host asc,app asc,inst asc,param asc,value asc`) /*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 | sort vtime desc, severity desc | lua severity= if severity == 'FATAL' then return "重大" elseif severity == 'ERROR' or severity == '5' or severity == 'ERR' then return "严重" elseif severity == 'WARN' or severity == '4' then return "警告" elseif severity == 'INFO' or severity == '一般' or severity == '3' or severity == '2' or severity == '1' then return "一般" elseif severity== '6' then return "未知" end | lua msg= s = string.gsub(msg, host, "".."%1".."") return s | lua msg= if src=="shell" then return "
"..string.gsub(msg, "UN", "".."%1".."").."
" end
| lua msg= if src=="shell" then return "
"..string.gsub(msg, "DN", "".."%1".."").."
" end
`)*/ /*rst, meta, err := g.Search(`#/matrix/entity/hardware/: | print assetid, biz, class, company, config, contact, ctel, day, dc, department, files, host, id, ip, location, model, name, period, rack, region, room, sn, status, tel, type, unit, vtime | except id=*#*`)*/ //rst,err := g.Search(`select * from /matrix/ldap where id = 16882012185573752086`) /*rst,err := g.Search(`#/matrix/devops/log/: | top 1000| print id,vtime,class,biz,host,app,inst,param,msg,severity,src | sort vtime desc, severity desc`) */ /* rst,err := g.Search(`#/matrix/devops/performance/:| top 1000| lua value= return "hhh" | inst=cpu* | top 5`,false) */ //rst,err := g.OnlySearch(`~mxsvr01|grep Matrix|print host|sort host|after '09:08'|top 10`) //rst,err := g.Search(`mxsvr01|print host,vtime|sort host|window "01:01" to "09:08"|top 10|count`) /*rst,err := g.OnlySearch(`/matrix/devops/performance/: | id=8042811419123646451 | sort vtime asc | top 2880 | within 8hour`)*/ //rst,err := g.OnlySearch(`mxsvr201 | ERROR | contain @biz -> @host, @host -> @app, @app -> @inst`) //rst,meta, err := g.Search(`debug> /matrix/devops/event/: | mxsvr221 | tags="严重错误"`) //rst,meta, err := g.Search(`debug> /matrix/test | print class,id,name,value1,value2 | name=test|tags -'测试3'`) //rst,meta, err := g.Search(`debug>#/matrix/testgroup: | avg(v1) as name_avgv1,sum(v2) as name_sumv2 | group by g1 `) //rst,meta, err := g.Search(`debug> #/matrix/entity/: top 200`) //rst,meta, err := g.Search(`debug> /matrix/test | print class,id,name | name = test2 | tag +测试2`) //rst,meta, err := g.Search(`debug> /matrix/devops/event/: | mxsvr221 `) /*rst,err := g.OnlySearch(`#/matrix/devops/performance: | sort biz asc,host asc,app asc,inst asc,param asc,value asc,vtime desc | top 1000 | except ip=null`)*/ //rst,err := g.OnlySearch(`mxsvr201 | top2 | sed 's/mxsvr201/{{$.id}}附加说明/g' `) //rst,err := g.OnlySearch(`#/matrix/dashboard: | name=dashboard_1481167032 | delete `) //rst,err := g.OnlySearch(`mxsvr201 | top2 | sed 's/mxsvr201/{{.id}}附加说明/g' `) //rst,err := g.OnlySearch(`mxsvr201 | top2 | sed 's/mxsvr201/{{$.id}}附加说明/g' `) //rst,err := g.OnlySearch(`mxsvr201 | top2 | sed 's//{{$.id}}附加说明/g' `) //rst,err := g.OnlySearch(`# /matrix/devops/event/:`) //rst,err := g.Search(`mxsvr201 | top2 | sed s//(mx)(svr[\d]+)//${1}附加${2}//g `,false) //rst,err := g.Search(`mxsvr201 | top10 | print host, id | expr host: "hello " + host + id `,false) //rst,err := g.OnlySearch("# /matrix/devops/performance | print value, host | expr value=`\"ppp\"+value` , host=`\"pppp\"+host+\"444\"` ") //rst,err := g.OnlySearch(`# /matrix/devops/performance/ | print value, host | top 1 | lua host= return "pppp"..host.."444" `) /*rst,err := g.OnlySearch(`#/matrix/devops/performance/: | param = usedpercent | inst = cpu1 | sort vtime desc, host | top 10 | uniq host | print host,inst,param,value`)*/ /*rst,err := g.OnlySearch(`/matrix/devops/performance/: | id=13722093446131916505 | within 600 minutes | sort vtime asc | top 10`)*/ //rst,err := g.OnlySearch(`mxsvr201 |error event | top 10 | id=-5062375036196941011`) //rst,err := g.OnlySearch(`id='13722093446131916505'`) //rst,err := g.OnlySearch(`ticketid='IM201701170004234' | update remark = 'tsoracle.bmc.com'`) //rst,err := g.OnlySearch(`error | print severity | lua severity=return ""..severity..""`) /*rst,err := g.OnlySearch(`/matrix/devops/performance | sort vtime desc | top 10 | lua value= if (value > 0 ) then return "" .. string.format("%.2f", value) .. "" end return "" .. string.format("%.2f", value) .. "" ` )*/ //rst,err := g.OnlySearch(`# /matrix/devops/performance/:| print value | sed value:'s//(.*)//${1}//g' `) //rst,err := g.OnlySearch(`# /matrix/devops/performance/:| print value | sed value:'i asdfasdfsadf' `) /*rst,err := g.OnlySearch(`# /matrix/devops/performance/: | sort biz asc,host asc,app asc,inst asc,param asc,value asc,vtime desc | top 1000| except ip=null | lua value= if param == 'usedpercent' then if value > 60 then return "" .. string.format("%.2f",value) .. " % " else return "" .. string.format("%.2f",value) .. " %" end elseif param == 'cores' then return "" .. value .. "" else return "" .. string.format("%.2f",value/1024/1024) .. " MB" end `)*/ //rst,err := g.OnlySearch(`#/matrix/devops/performance/: | inst=cpu1 | param=usedpercent`) //rst,err := g.OnlySearch(`# /matrix/devops/performance/: | value > 5000 | top 1000 `) /* rst,err := g.OnlySearch(`#/matrix/devops/performance: | sort biz asc,host asc,app asc,inst asc,param asc,value asc,ctime desc | top 1000 | except ip=null`) */ /* if fields, err := g.Query("select node,agent,summary from /matrix/event/tivoli where severity>=0 "); err != nil { fmt.Println(err.Error()) }else{ for i:=0 ; i< len(fields) ;i++ { fmt.Println(fields[i]["agent"].(string),fields[i]["summary"].(string)) } } */ /* if _, err := g.Query("truncate /matrix/event/open"); err != nil { fmt.Println(err.Error()) }else{ } */ // 测试 Alter Table /* for i:=0 ; i<1000 ;i++ { sql := fmt.Sprintf(`ALTER TABLE object ADD H%d %s`,i,"text") logger.Debugf(sql) if err := g.GetSession().Query(sql).Consistency(gocql.Quorum).Exec(); err != nil { logger.Fatalf("ADD ERROR %v",err) } */ /* for i:=0 ; i<1000 ;i++ { sql := fmt.Sprintf(`ALTER TABLE object DROP H%d `,i) logger.Debugf(sql) if err := g.GetSession().Query(sql).Consistency(gocql.Quorum).Exec(); err != nil { logger.Fatalf("DROP ERROR %v",err) } } */ if err != nil { logger.Info("Query error:" + err.Error()) } else { logger.Info("rst ===>", rst) // for graph if graph, err := json.Marshal(rst); err != nil { logger.Error(err.Error()) } else { logger.Error("graph ===>", string(graph)) } logger.Error("meta ===>", meta) if meta["trace"] != nil && len(meta["trace"].([]string)) > 0 { for _, msg := range meta["trace"].([]string) { logger.Error(msg) } } logger.Warn(meta["columns"]) logger.Warn(meta["summary"]) } }