search_test.go 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package search_test
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "strings"
  6. "testing"
  7. "time"
  8. "git.wecise.com/wecise/odb-go/odb"
  9. mcfg "gitee.com/wecisecode/util/cfg"
  10. mlog "gitee.com/wecisecode/util/logger"
  11. "gitee.com/wecisecode/util/set/strset"
  12. "github.com/stretchr/testify/assert"
  13. )
  14. var config = mcfg.MConfig()
  15. var logger = mlog.New().WithConfig(config, "log")
  16. var ODBC odb.Client
  17. var ODBError error
  18. var debug bool
  19. func init() {
  20. logger.SetFormat("yyyy-MM-dd HH:mm:ss.SSSSSS [pid] [level] msg", "\n")
  21. odbpaths := strset.New(strings.Split(mcfg.CommandArgs.GetString("odb",
  22. strings.Join(mcfg.Environs.GetStrings("ODBPATH",
  23. config.GetStrings("odbc.odbpath", "127.0.0.1:11001")...), ",")), ",")...).List()
  24. keyspace := mcfg.CommandArgs.GetString("keyspace",
  25. mcfg.Environs.GetString("KEYSPACE", config.GetString("odbc.keyspace", "icbctest")))
  26. debug = mcfg.CommandArgs.GetBool("debug", false)
  27. ODBC, ODBError = odb.NewClient(&odb.Config{
  28. Keyspace: keyspace,
  29. Hosts: odbpaths,
  30. Debug: debug,
  31. })
  32. if ODBError != nil {
  33. fmt.Println(ODBError)
  34. }
  35. }
  36. func TestSearch(t *testing.T) {
  37. if !testing.Verbose() {
  38. assert.Nil(t, "run with arg -v for print info")
  39. return
  40. }
  41. if !assert.Nil(t, ODBError, ODBError) {
  42. return
  43. }
  44. if !assert.NotNil(t, ODBC) {
  45. return
  46. }
  47. for {
  48. // mql := `#/m3event/devops/alerts_status | entity!=null | print id, biz, severity, entity| group with topo | top 1000`
  49. // mql := `#/m3event/devops/alerts_status`
  50. // mql := `#/test/basic2 | limit 12,5`
  51. // mql := `class=/test/basic2 | limit 12,5`
  52. // mql := "#/m3event/devops/alerts_status | severity>0 | print id,severity | top 2000"
  53. mql := "#/m3event/devops/alerts_status | node "
  54. result, err := ODBC.Search(mql).Do()
  55. if !assert.Nil(t, err, err) {
  56. return
  57. }
  58. bs, _ := json.MarshalIndent(result, "", " ")
  59. fmt.Println(string(bs))
  60. if !assert.Greater(t, len(result.Data), 0) {
  61. return
  62. }
  63. if !assert.Greater(t, len(result.Data[0]), 0) {
  64. return
  65. }
  66. fmt.Println(time.Now(), "got data", len(result.Data))
  67. time.Sleep(1 * time.Second)
  68. }
  69. }