testrule.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. package main
  2. import (
  3. //"flag"
  4. "fmt"
  5. "os"
  6. "math/rand"
  7. "git.wecise.com/wecise/common/etcd"
  8. "time"
  9. )
  10. func main() {
  11. //var ctx web.Context
  12. cli, err := etcd.Get()
  13. if err != nil {
  14. _, _ = fmt.Fprintf(os.Stderr, "get etcd client error: %v", err)
  15. os.Exit(1)
  16. }
  17. for i:=0 ; i<10000 ; i++ {
  18. rule := fmt.Sprintf(`--class = /matrix/test
  19. --parser = json
  20. --fields = DATA
  21. --ignore = false
  22. --stat_interval = 10
  23. --pool_size = 10
  24. memcache.load("NODES","mql","/m3event/entity/node", {{'ip'}},10)
  25. memcache.load("NODES1","mql","/m3event/entity/node", {{'ip'}},10)
  26. NUM_MAX_LEN = 10
  27. function digitsIntToString(int, len_max)
  28. -- 补0
  29. len_max = len_max or NUM_MAX_LEN
  30. local s = tostring(int)
  31. local zero_number = len_max - #s
  32. local s_zero = string.rep("0", zero_number)
  33. return table.concat({ s_zero, s })
  34. end
  35. local key = omni.join(DATA["Node"],DATA["oidGroupName"],DATA["ifName"],"current")
  36. setvar(key, 1, 10, '', false)
  37. if DATA["oidGroupName"] == "INTERFACE_TRAFFIC1" and string.match(DATA["ifName"],'eth%d') and _PREVIOUS ~= nil then
  38. log.info("loop ssnnmmpp ==> %d",json.string(DATA),json.string(_PREVIOUS),DATA["taskTime"]-_PREVIOUS["taskTime"],serverhostname())
  39. -- log.error(json.string(DATA),json.string(_PREVIOUS),DATA["taskTime"]-_PREVIOUS["taskTime"],serverhostname())
  40. log.info(DATA["ifHCInOctets"],_PREVIOUS["ifHCInOctets"])
  41. end
  42. -- DATA["a"] = 12345678901234567
  43. -- DATA["b"] = 12345678901234577
  44. -- local a = 12345678901234567
  45. -- local b = 12345678901234577
  46. -- local d = tostring(a)
  47. -- local e = digitsIntToString(a,10)
  48. -- local bb = "0"..DATA["b"]
  49. -- local aa = "0"..DATA["a"]
  50. -- log.info(a,b,aa,bb)
  51. -- local c = omni.bps(bb,aa,10)
  52. -- log.info(c,d,e,(DATA["b"]/10000-DATA["a"]/10000)*10000,"数值")
  53. if DATA.SerialNumber ~= nil then
  54. --log.debug(json.string(DATA))
  55. end
  56. if DATA.manager == "prometheus" then
  57. --log.debug(json.string(DATA))
  58. end
  59. --log.debug(DATA.returnStatus, DATA.message)
  60. --local res = relookup('test', {'key', 'val'}, DATA.message, true, false)
  61. --for i, o in pairs(res) do
  62. -- log.debug('relookup string:', i, o.msg)
  63. --end
  64. --local res2 = relookup(res, {'msg'}, 'testmsg5', true, false)
  65. --for i, o in pairs(res2) do
  66. -- log.debug('relookup table:', i, o.msg)
  67. --end
  68. if _PREVIOUS ~= nil then
  69. -- log.debug('PREVIOURS: ', json.string(_PREVIOUS))
  70. end
  71. -- local ret = rexplookup('trigger_vendor*', {monitortype='SNMP'}, true, false)
  72. -- local ret = rexplookup('trigger_new*', {monitortype='SNMP'}, true, false)
  73. -- log.info(ret)
  74. -- for k,v in pairs(ret) do
  75. -- for k1,v1 in pairs(v) do
  76. -- if k1=="indicator" then
  77. -- log.info(k1,v1)
  78. -- end
  79. -- end
  80. -- -- log.info( v.indicator)
  81. -- end
  82. --omni.include('/matrix/rules/test/include/include_rule1')
  83. --omni.include('/matrix/rules/test/include/include_rule2')
  84. --local ret = rexplookup('test*', {key='pping'}, true, true)
  85. --if ret ~= nil then
  86. -- for i, d in pairs(ret) do
  87. -- log.debug(d.msg, d.val)
  88. -- --log.debug(i, d)
  89. -- end
  90. --end
  91. --local ret = lookup('test', {key='ping'})
  92. --if ret ~= nil then
  93. -- for k, v in pairs(ret) do
  94. -- log.debug(k, v)
  95. -- end
  96. --end
  97. -- log.info("ssnnmmpp ==> %d")
  98. _IGNORE = true`, i,i)
  99. if err = cli.Put("/ootest/rules/snmpd_rule", rule);err != nil {
  100. fmt.Printf(err.Error())
  101. }
  102. fmt.Println("===========>", i)
  103. n := rand.Intn(100)*10
  104. time.Sleep( time.Duration(n) * time.Millisecond)
  105. }
  106. }