bucket_strulogs.go 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. package bucket
  2. import (
  3. "fmt"
  4. "testing"
  5. "time"
  6. . "git.wecise.com/wecise/odbserver/odb"
  7. "git.wecise.com/wecise/odbserver/odb/test"
  8. "gitee.com/wecisecode/util/logger"
  9. "github.com/stretchr/testify/assert"
  10. "github.com/stretchr/testify/require"
  11. )
  12. type BucketStruLogsTests struct {
  13. Test *testing.T
  14. g *Gutil
  15. }
  16. func BucketStruLogsTest(t *testing.T) {
  17. g := test.TestG()
  18. t.Run("InitG", func(t *testing.T) {
  19. test := &BucketStruLogsTests{Test: t, g: g}
  20. test.InitG()
  21. })
  22. t.Run("Class", func(t *testing.T) {
  23. test := &BucketStruLogsTests{Test: t, g: g}
  24. test.Class()
  25. })
  26. t.Run("Data", func(t *testing.T) {
  27. test := &BucketStruLogsTests{Test: t, g: g}
  28. test.Data()
  29. })
  30. time.Sleep(time.Duration(1) * time.Second)
  31. t.Run("Valid", func(t *testing.T) {
  32. test := &BucketStruLogsTests{Test: t, g: g}
  33. test.Valid()
  34. })
  35. }
  36. func (t *BucketStruLogsTests) InitG() {
  37. require.NotNil(t.Test, t.g)
  38. }
  39. func (t *BucketStruLogsTests) Class() {
  40. _, _, err := t.g.Query(`
  41. create class if not exists /test/bucketstrulog (
  42. host varchar,
  43. bklog bucket {
  44. "type" : "bitlog",
  45. "files": ["*.log"],
  46. "sample" : ["2020-05-15 00:49:59,666666"],
  47. "ttl" : 365
  48. } 'full',
  49. keys(host),
  50. indexes(host)
  51. ) with key=manu, nickname='bucketstrulog'
  52. `)
  53. if err != nil {
  54. logger.Errorf("%v", err)
  55. }
  56. require.Nil(t.Test, err, fmt.Sprint(err))
  57. }
  58. func (t *BucketStruLogsTests) Data() {
  59. var err error
  60. _, _, err = t.g.Query(` insert into /test/bucketstrulog (id) values ("linux:wecise") `)
  61. if err != nil {
  62. logger.Errorf("%v", err)
  63. }
  64. require.Nil(t.Test, err, fmt.Sprint(err))
  65. _, _, err = t.g.Query(`
  66. insert into /test/bucketstrulog (id, bklog['file1.log']) values ('linux:wecise', ['[2021-06-16 00:00:00.608072][22264][2419] Level 0 :
  67. -----------------------------------------------------------
  68. 报文放置时间:[2021-06-16 00:00:00.560000] 报文读取时间:[2021-06-15 23:59:59.930309] 处理报文时间:[2021-06-16 00:00:00.574163] 处理报文耗时:[33.876000]ms
  69. 接收报文:
  70. {H:01102100099996IBPS0000 IBPS20210616000000XMLmaps.305.001.01 00200000000755039990002000000007550399903U XN}
  71. <?xml version="1.0" encoding="UTF-8"?>
  72. <Document xmlns="urn:cnaps:std:ibps:2010:tech:xsd:maps.305.001.01" xmlns:xs="http://www.w3.org/2001/XMLSchema"><TxStsReq><GrpHdr><MsgId>1021000999962021061671777836</MsgId><CreDtTm>2021-06-16T00:00:00</CreDtTm></GrpHdr><InstgPty>102100099996</InstgPty><InstdPty>0000</InstdPty><ActTxStsInf><OrgnlGrpInf><OrgnlSndrId>102100099996</OrgnlSndrId><OrgnlMsgId>1021000999962021061573825160</OrgnlMsgId></OrgnlGrpInf><OrgnlMsgTp>maps.301.001.01</OrgnlMsgTp><AcctInf><Acct>6222021001115891274</Acct><Tel>18701506942</Tel></AcctInf></ActTxStsInf><DgtSgntr>MEQCIB5I003cIktpaEuvgZD3rUwVciJEA8wT3T32UOEsiOPvAiAJSO/Hb66S3djGa3BV8Uw/A2oSG/CWJB/EO8xjFVnN9g==</DgtSgntr></TxStsReq></Document>
  73. 处理结果:
  74. ** IB1I0000[处理成功!] **
  75. [2021-06-16 00:00:00.641788][22264][1989] Level 0 :
  76. -----------------------------------------------------------
  77. 报文放置时间:[2021-06-16 00:00:00.560000] 报文读取时间:[2021-06-16 00:00:00.608745] 处理报文时间:[2021-06-16 00:00:00.611142] 处理报文耗时:[30.622000]ms
  78. 接收报文:
  79. {H:01102100099996IBPS0000 IBPS20210616000000XMLmaps.305.001.01 00250000000754136018002500000007541360183U XN}
  80. <?xml version="1.0" encoding="UTF-8"?>
  81. <Document xmlns="urn:cnaps:std:ibps:2010:tech:xsd:maps.305.001.01" xmlns:xs="http://www.w3.org/2001/XMLSchema"><TxStsReq><GrpHdr><MsgId>1021000999962021061685784366</MsgId><CreDtTm>2021-06-16T00:00:00</CreDtTm></GrpHdr><InstgPty>102100099996</InstgPty><InstdPty>0000</InstdPty><ActTxStsInf><OrgnlGrpInf><OrgnlSndrId>102100099996</OrgnlSndrId><OrgnlMsgId>1021000999962021061589128394</OrgnlMsgId></OrgnlGrpInf><OrgnlMsgTp>maps.301.001.01</OrgnlMsgTp><AcctInf><Acct>6212254200002880163</Acct><Tel>15584466023</Tel></AcctInf></ActTxStsInf><DgtSgntr>MEQCIHKi86xIMVUIG49/yJWagOZURxNXrtKsOaTVQJ1COXjLAiA0b9rvuS1sevfw0UlRw9zReAwJGwuUDuntSHJ0lj0HSA==</DgtSgntr></TxStsReq></Document>
  82. 处理结果:
  83. ** IB1I0000[处理成功!] **
  84. [2021-06-16 00:00:00.672518][22264][2025] Level 0 :
  85. -----------------------------------------------------------
  86. 报文放置时间:[2021-06-16 00:00:00.580000] 报文读取时间:[2021-06-16 00:00:00.642211] 处理报文时间:[2021-06-16 00:00:00.644378] 处理报文耗时:[28.115000]ms
  87. 接收报文:
  88. {H:01102100099996IBPS0000 IBPS20210616000000XMLmaps.305.001.01 00100000000755018043001000000007550180433U XN}
  89. <?xml version="1.0" encoding="UTF-8"?>
  90. <Document xmlns="urn:cnaps:std:ibps:2010:tech:xsd:maps.305.001.01" xmlns:xs="http://www.w3.org/2001/XMLSchema"><TxStsReq><GrpHdr><MsgId>1021000999962021061671777838</MsgId><CreDtTm>2021-06-16T00:00:00</CreDtTm></GrpHdr><InstgPty>102100099996</InstgPty><InstdPty>0000</InstdPty><ActTxStsInf><OrgnlGrpInf><OrgnlSndrId>102100099996</OrgnlSndrId><OrgnlMsgId>1021000999962021061578736719</OrgnlMsgId></OrgnlGrpInf><OrgnlMsgTp>maps.301.001.01</OrgnlMsgTp><AcctInf><Acct>6222033700004634556</Acct><Tel>18092609666</Tel></AcctInf></ActTxStsInf><DgtSgntr>MEQCIBQa1SoH2A6kQTf6gHPqzgPdj1FDJkEp7mNWYw1iF2DBAiAEkYFlcGF3ZU15Rsn2BygIr8F+D7O4Kv69QxM8yHIZeQ==</DgtSgntr></TxStsReq></Document>
  91. 处理结果:
  92. ** IB1I0000[处理成功!] **
  93. [2021-06-16 00:00:00.705166][22264][1882] Level 0 :
  94. -----------------------------------------------------------
  95. 报文放置时间:[2021-06-16 00:00:00.600000] 报文读取时间:[2021-06-16 00:00:00.673063] 处理报文时间:[2021-06-16 00:00:00.675444] 处理报文耗时:[29.698000]ms
  96. 接收报文:
  97. {H:01102100099996IBPS0000 IBPS20210616000000XMLmaps.305.001.01 00000000000755181076000000000007551810763U XN}
  98. <?xml version="1.0" encoding="UTF-8"?>
  99. <Document xmlns="urn:cnaps:std:ibps:2010:tech:xsd:maps.305.001.01" xmlns:xs="http://www.w3.org/2001/XMLSchema"><TxStsReq><GrpHdr><MsgId>1021000999962021061671691831</MsgId><CreDtTm>2021-06-16T00:00:00</CreDtTm></GrpHdr><InstgPty>102100099996</InstgPty><InstdPty>0000</InstdPty><ActTxStsInf><OrgnlGrpInf><OrgnlSndrId>102100099996</OrgnlSndrId><OrgnlMsgId>1021000999962021061578851069</OrgnlMsgId></OrgnlGrpInf><OrgnlMsgTp>maps.301.001.01</OrgnlMsgTp><AcctInf><Acct>6212260605002708135</Acct><Tel>18847619999</Tel></AcctInf></ActTxStsInf><DgtSgntr>MEYCIQDODwP7dc54nU5C+6B3GLeTg9YK748J5TONoxpfvt89xQIhALbbJqFk69lch5EHLVoDoYVRgjIw4tgCRmDC/IziTlOg</DgtSgntr></TxStsReq></Document>
  100. 处理结果:
  101. ** IB1I0000[处理成功!] **
  102. [2021-06-16 00:00:00.738067][22264][2027] Level 0 :
  103. -----------------------------------------------------------
  104. 报文放置时间:[2021-06-16 00:00:00.680000] 报文读取时间:[2021-06-16 00:00:00.705720] 处理报文时间:[2021-06-16 00:00:00.708032] 处理报文耗时:[30.018000]ms
  105. 接收报文:
  106. {H:01102100099996IBPS0000 IBPS20210616000000XMLmaps.305.001.01 00850000000753998020008500000007539980203U XN}
  107. <?xml version="1.0" encoding="UTF-8"?>
  108. <Document xmlns="urn:cnaps:std:ibps:2010:tech:xsd:maps.305.001.01" xmlns:xs="http://www.w3.org/2001/XMLSchema"><TxStsReq><GrpHdr><MsgId>1021000999962021061685765449</MsgId><CreDtTm>2021-06-16T00:00:00</CreDtTm></GrpHdr><InstgPty>102100099996</InstgPty><InstdPty>0000</InstdPty><ActTxStsInf><OrgnlGrpInf><OrgnlSndrId>102100099996</OrgnlSndrId><OrgnlMsgId>1021000999962021061390966177</OrgnlMsgId></OrgnlGrpInf><OrgnlMsgTp>maps.301.001.01</OrgnlMsgTp><AcctInf><Acct>6222030404000432452</Acct><Tel>13333339813</Tel></AcctInf></ActTxStsInf><DgtSgntr>MEUCIAmvoZqU4YmunXOZx+zs+DE9PFGaQ10uSes6v8ZNMKICAiEAhrfc0taUZyiQpSmY8M//IbxGetdv82EZaXGQiQI1kok=</DgtSgntr></TxStsReq></Document>
  109. 处理结果:
  110. ** IB1I0000[处理成功!] **
  111. ']) with split=/\n\n/
  112. `)
  113. if err != nil {
  114. logger.Errorf("%v", err)
  115. }
  116. require.Nil(t.Test, err, fmt.Sprint(err))
  117. }
  118. func (t *BucketStruLogsTests) Valid() {
  119. var err error
  120. _, _, err = t.g.Query(`select bklog FROM /test/bucketstrulog`)
  121. assert.Nil(t.Test, err)
  122. _, _, err = t.g.Query(`SELECT bklog.time('2020-04-22', '').inst() FROM /test/bucketstrulog`)
  123. assert.Nil(t.Test, err)
  124. _, _, err = t.g.Query(`SELECT bklog.date("2020-05-15").inst() FROM /test/bucketstrulog`)
  125. assert.Nil(t.Test, err)
  126. _, _, err = t.g.Query(`SELECT bklog["file*.log"{116669996670004, 116669996680008}] FROM /test/bucketstrulog`)
  127. assert.Nil(t.Test, err)
  128. _, _, err = t.g.Query(`SELECT bklog["file1.log"{1,3,6,7}].time('2020-05-15 00:49:59,667', '').find( "twcs skipping" ) FROM /test/bucketstrulog`)
  129. assert.Nil(t.Test, err)
  130. _, _, err = t.g.Query(`SELECT bklog.time('2020-06-23 14:50','2020-06-23 15:00').find('twcs'),id FROM /test/bucketstrulog`)
  131. assert.Nil(t.Test, err)
  132. _, _, err = t.g.Query(`SELECT id FROM /test/bucketstrulog where bklog.time("2020-05-01","").find("INFO").assert() `)
  133. assert.Nil(t.Test, err)
  134. }