| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- package main
- import (
- //"fmt"
- //"time"
- "gitee.com/wecisecode/util/logger"
- . "git.wecise.com/wecise/odbserver/odb"
- )
- // CGO_ENABLED=1 go run --ldflags '-linkmode external -extldflags "-static"' testdw.go
- // #cgo LDFLAGS: -L/opt/odbserver/sqlite -lsqlite -ldl
- // #include "/opt/odbserver/sqlite/sqlite.h"
- // #include <stdint.h>
- // #include <stdlib.h>
- // 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, DisableTask: true, DisableNotify: true }
- g,err:= test.NewG(option)
-
- if err != nil {
- logger.Error(err.Error())
- }else{
- defer g.Close()
- }
-
- //logger.SetRollingDaily("C:/test/zkcron/src/test", "test.log")
- logger.SetConsole(true)
- //logger.SetLevel(logger.DEBUG)
-
-
- //------------------------------------------
-
- //insert into datawindow(log_insert, '/matrix/test/bucketlog', 'bklog', 'file1.log') values( '{"id": "linux:wecise", "msg": "1-1--DEBUG [CompactionExecutor:584] 2020-07-25 00:49:59,666 TimeWindowCompactionStrategy.java:124 - TWCS skipping check for fully expired SSTables"}' )
-
- datawindow(log_insert).insert( "/matrix/test/bucketlog", "bklog", "file1.log", "linux:wecise", "msg": "1-1--DEBUG [CompactionExecutor:584] 2020-07-25 00:49:59,666 TimeWindowCompactionStrategy.java:124 - TWCS skipping check for fully expired SSTables" )
-
- // put(key, value) return => last_timestamp, total_size
- // get(key) return nano_timestamp, value
- // delete(key , nano_timestamp)
- // clear( size ) => 前几条, 或全部
- // https://github.com/hoisie/mustache
- // $size ,$timestamp
-
- //------------------------------------------
-
- rst,meta,err := g.Query(`
-
- CREATE DataWindow log_insert <$class, $bucket, $file>
- INPUT class, bucket, file, id, msg
- SCHEDULE AFTER INSERT
- COMMENT 'batch insert log'
- TIMEOUT 15 SECOND
- SIZE 1000
- WHEN fullsize or timeout THEN
- MQL `insert into {{$class}} (id, {{$bucket}}[ {{$file}} ]) values (?, ?)` , $id , join( msg, "\n")
- clear $size
- END
- `)
-
- rst,meta,err := g.Query(`
-
- CREATE DataWindow auto_closed <$class>
- INPUT class, status, eventid
- COMMENT 'auto close event'
- SCHEDULE BEFORE INSERT
- SLIDING 5 MINUTE
-
- WHEN status = 'open' and eventid = $eventid AS $serial THEN
-
- MQL `update {{class}} SET status='closed' WHERE id = ?` $eventid
- CANCEL
- DELETE $serial
-
- END
- `)
-
- rst,meta,err := g.Query(`
-
- CREATE DataWindow dyn_thred <$EventClass, $Field>
- INPUT EventClass, Field, host, param, value
- SCHEDULE BEFORE INSERT
- SLIDING 1 HOUR
-
- WHEN max(value) < $value THEN
-
- MQL `INSERT INTO {{ $EventClass}} (msg) VALUES (?) ` `in $Host, current $param value is {{ $value }} , too high .`
-
- END
- `)
-
- rst,meta,err := g.Query(`
-
- CREATE DataWindow chain <$transid>
- INPUT transid
- COMMENT 'chain log analysis'
- TIMEOUT 1 MINUTE
- SIZE 5
-
- WHEN fullsize THEN
- FORWARD "queue name" data
- clear
- END
-
- WHEN timeout THEN
- log info 'tmplate'
- clear
- END
-
- `)
-
- rst,meta,err := g.Query(`
-
- CREATE DataWindow chain <$transid>
- INPUT transid
- COMMENT 'chain log analysis'
- TIMEOUT 1 MINUTE
- SIZE 5
-
- WHEN fullsize THEN
- FORWARD "queue name" json(data)
- clear
- END
-
- WHEN timeout THEN
-
- foreach( data, $v => {
- $ts = gjson($v, "timestamp")
- log info `trans $transid isn’t complete . timestamp $ts`
- } )
-
- $timestamp = timestamp
-
- MQL `INSERT INTO /matrix/devops/alerts_stats (msg) VALUES (?)` `trans $transid isn’t complete .`
- clear
- END
-
- `)
-
-
- //rst,meta,err := g.Query(`update /matrix/test set name="test8" , test="test" WHERE test2 = "Test22"`)
-
-
- if err != nil {
- logger.Info("Query error:"+err.Error())
- logger.Warn(meta["type"])
- }else{
- logger.Info("rst ===>", rst)
- //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"])
- }
-
- }
|