├── .gitignore ├── LICENSE ├── NOTICE ├── README.md ├── control ├── doc ├── doc.go ├── doc.pb.go └── doc.proto ├── g ├── cfg.go ├── db.go ├── g.go ├── git.go └── utils.go ├── gen_test_data.py ├── http ├── api_query.go └── http.go ├── index ├── build.go └── search.go ├── main.go ├── main_test.go └── test-metadata.json /.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled Object files, Static and Dynamic libs (Shared Objects) 2 | *.o 3 | *.a 4 | *.so 5 | 6 | # Folders 7 | _obj 8 | _test 9 | .test 10 | test/ 11 | 12 | 13 | # Architecture specific extensions/prefixes 14 | *.[568vq] 15 | [568vq].out 16 | 17 | *.cgo1.go 18 | *.cgo2.c 19 | _cgo_defun.c 20 | _cgo_gotypes.go 21 | _cgo_export.* 22 | 23 | _testmain.go 24 | 25 | *.exe 26 | *.test 27 | *.prof 28 | 29 | *.swp 30 | *.swo 31 | *.log 32 | *.temp 33 | 34 | .idea 35 | .DS_Store 36 | /var 37 | /falcon-index 38 | /cfg.json 39 | /test/*.go 40 | /test/build 41 | 42 | tmp 43 | cfg.json 44 | gitversion 45 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | 2 | Apache License 3 | Version 2.0, January 2004 4 | http://www.apache.org/licenses/ 5 | 6 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 7 | 8 | 1. Definitions. 9 | 10 | "License" shall mean the terms and conditions for use, reproduction, 11 | and distribution as defined by Sections 1 through 9 of this document. 12 | 13 | "Licensor" shall mean the copyright owner or entity authorized by 14 | the copyright owner that is granting the License. 15 | 16 | "Legal Entity" shall mean the union of the acting entity and all 17 | other entities that control, are controlled by, or are under common 18 | control with that entity. For the purposes of this definition, 19 | "control" means (i) the power, direct or indirect, to cause the 20 | direction or management of such entity, whether by contract or 21 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 22 | outstanding shares, or (iii) beneficial ownership of such entity. 23 | 24 | "You" (or "Your") shall mean an individual or Legal Entity 25 | exercising permissions granted by this License. 26 | 27 | "Source" form shall mean the preferred form for making modifications, 28 | including but not limited to software source code, documentation 29 | source, and configuration files. 30 | 31 | "Object" form shall mean any form resulting from mechanical 32 | transformation or translation of a Source form, including but 33 | not limited to compiled object code, generated documentation, 34 | and conversions to other media types. 35 | 36 | "Work" shall mean the work of authorship, whether in Source or 37 | Object form, made available under the License, as indicated by a 38 | copyright notice that is included in or attached to the work 39 | (an example is provided in the Appendix below). 40 | 41 | "Derivative Works" shall mean any work, whether in Source or Object 42 | form, that is based on (or derived from) the Work and for which the 43 | editorial revisions, annotations, elaborations, or other modifications 44 | represent, as a whole, an original work of authorship. For the purposes 45 | of this License, Derivative Works shall not include works that remain 46 | separable from, or merely link (or bind by name) to the interfaces of, 47 | the Work and Derivative Works thereof. 48 | 49 | "Contribution" shall mean any work of authorship, including 50 | the original version of the Work and any modifications or additions 51 | to that Work or Derivative Works thereof, that is intentionally 52 | submitted to Licensor for inclusion in the Work by the copyright owner 53 | or by an individual or Legal Entity authorized to submit on behalf of 54 | the copyright owner. For the purposes of this definition, "submitted" 55 | means any form of electronic, verbal, or written communication sent 56 | to the Licensor or its representatives, including but not limited to 57 | communication on electronic mailing lists, source code control systems, 58 | and issue tracking systems that are managed by, or on behalf of, the 59 | Licensor for the purpose of discussing and improving the Work, but 60 | excluding communication that is conspicuously marked or otherwise 61 | designated in writing by the copyright owner as "Not a Contribution." 62 | 63 | "Contributor" shall mean Licensor and any individual or Legal Entity 64 | on behalf of whom a Contribution has been received by Licensor and 65 | subsequently incorporated within the Work. 66 | 67 | 2. Grant of Copyright License. Subject to the terms and conditions of 68 | this License, each Contributor hereby grants to You a perpetual, 69 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 70 | copyright license to reproduce, prepare Derivative Works of, 71 | publicly display, publicly perform, sublicense, and distribute the 72 | Work and such Derivative Works in Source or Object form. 73 | 74 | 3. Grant of Patent License. Subject to the terms and conditions of 75 | this License, each Contributor hereby grants to You a perpetual, 76 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 77 | (except as stated in this section) patent license to make, have made, 78 | use, offer to sell, sell, import, and otherwise transfer the Work, 79 | where such license applies only to those patent claims licensable 80 | by such Contributor that are necessarily infringed by their 81 | Contribution(s) alone or by combination of their Contribution(s) 82 | with the Work to which such Contribution(s) was submitted. If You 83 | institute patent litigation against any entity (including a 84 | cross-claim or counterclaim in a lawsuit) alleging that the Work 85 | or a Contribution incorporated within the Work constitutes direct 86 | or contributory patent infringement, then any patent licenses 87 | granted to You under this License for that Work shall terminate 88 | as of the date such litigation is filed. 89 | 90 | 4. Redistribution. You may reproduce and distribute copies of the 91 | Work or Derivative Works thereof in any medium, with or without 92 | modifications, and in Source or Object form, provided that You 93 | meet the following conditions: 94 | 95 | (a) You must give any other recipients of the Work or 96 | Derivative Works a copy of this License; and 97 | 98 | (b) You must cause any modified files to carry prominent notices 99 | stating that You changed the files; and 100 | 101 | (c) You must retain, in the Source form of any Derivative Works 102 | that You distribute, all copyright, patent, trademark, and 103 | attribution notices from the Source form of the Work, 104 | excluding those notices that do not pertain to any part of 105 | the Derivative Works; and 106 | 107 | (d) If the Work includes a "NOTICE" text file as part of its 108 | distribution, then any Derivative Works that You distribute must 109 | include a readable copy of the attribution notices contained 110 | within such NOTICE file, excluding those notices that do not 111 | pertain to any part of the Derivative Works, in at least one 112 | of the following places: within a NOTICE text file distributed 113 | as part of the Derivative Works; within the Source form or 114 | documentation, if provided along with the Derivative Works; or, 115 | within a display generated by the Derivative Works, if and 116 | wherever such third-party notices normally appear. The contents 117 | of the NOTICE file are for informational purposes only and 118 | do not modify the License. You may add Your own attribution 119 | notices within Derivative Works that You distribute, alongside 120 | or as an addendum to the NOTICE text from the Work, provided 121 | that such additional attribution notices cannot be construed 122 | as modifying the License. 123 | 124 | You may add Your own copyright statement to Your modifications and 125 | may provide additional or different license terms and conditions 126 | for use, reproduction, or distribution of Your modifications, or 127 | for any such Derivative Works as a whole, provided Your use, 128 | reproduction, and distribution of the Work otherwise complies with 129 | the conditions stated in this License. 130 | 131 | 5. Submission of Contributions. Unless You explicitly state otherwise, 132 | any Contribution intentionally submitted for inclusion in the Work 133 | by You to the Licensor shall be under the terms and conditions of 134 | this License, without any additional terms or conditions. 135 | Notwithstanding the above, nothing herein shall supersede or modify 136 | the terms of any separate license agreement you may have executed 137 | with Licensor regarding such Contributions. 138 | 139 | 6. Trademarks. This License does not grant permission to use the trade 140 | names, trademarks, service marks, or product names of the Licensor, 141 | except as required for reasonable and customary use in describing the 142 | origin of the Work and reproducing the content of the NOTICE file. 143 | 144 | 7. Disclaimer of Warranty. Unless required by applicable law or 145 | agreed to in writing, Licensor provides the Work (and each 146 | Contributor provides its Contributions) on an "AS IS" BASIS, 147 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 148 | implied, including, without limitation, any warranties or conditions 149 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 150 | PARTICULAR PURPOSE. You are solely responsible for determining the 151 | appropriateness of using or redistributing the Work and assume any 152 | risks associated with Your exercise of permissions under this License. 153 | 154 | 8. Limitation of Liability. In no event and under no legal theory, 155 | whether in tort (including negligence), contract, or otherwise, 156 | unless required by applicable law (such as deliberate and grossly 157 | negligent acts) or agreed to in writing, shall any Contributor be 158 | liable to You for damages, including any direct, indirect, special, 159 | incidental, or consequential damages of any character arising as a 160 | result of this License or out of the use or inability to use the 161 | Work (including but not limited to damages for loss of goodwill, 162 | work stoppage, computer failure or malfunction, or any and all 163 | other commercial damages or losses), even if such Contributor 164 | has been advised of the possibility of such damages. 165 | 166 | 9. Accepting Warranty or Additional Liability. While redistributing 167 | the Work or Derivative Works thereof, You may choose to offer, 168 | and charge a fee for, acceptance of support, warranty, indemnity, 169 | or other liability obligations and/or rights consistent with this 170 | License. However, in accepting such obligations, You may act only 171 | on Your own behalf and on Your sole responsibility, not on behalf 172 | of any other Contributor, and only if You agree to indemnify, 173 | defend, and hold each Contributor harmless for any liability 174 | incurred by, or claims asserted against, such Contributor by reason 175 | of your accepting any such warranty or additional liability. 176 | 177 | END OF TERMS AND CONDITIONS 178 | 179 | APPENDIX: How to apply the Apache License to your work. 180 | 181 | To apply the Apache License to your work, attach the following 182 | boilerplate notice, with the fields enclosed by brackets "[]" 183 | replaced with your own identifying information. (Don't include 184 | the brackets!) The text should be enclosed in the appropriate 185 | comment syntax for the file format. We also recommend that a 186 | file or class name and description of purpose be included on the 187 | same "printed page" as the copyright notice for easier 188 | identification within third-party archives. 189 | 190 | Copyright [yyyy] [name of copyright owner] 191 | 192 | Licensed under the Apache License, Version 2.0 (the "License"); 193 | you may not use this file except in compliance with the License. 194 | You may obtain a copy of the License at 195 | 196 | http://www.apache.org/licenses/LICENSE-2.0 197 | 198 | Unless required by applicable law or agreed to in writing, software 199 | distributed under the License is distributed on an "AS IS" BASIS, 200 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 201 | See the License for the specific language governing permissions and 202 | limitations under the License. 203 | -------------------------------------------------------------------------------- /NOTICE: -------------------------------------------------------------------------------- 1 | Open-Falcon 2 | 3 | Copyright (c) 2014-2015 Xiaomi, Inc. All Rights Reserved. 4 | 5 | This product is licensed to you under the Apache License, Version 2.0 (the "License"). 6 | You may not use this product except in compliance with the License. 7 | 8 | This product may include a number of subcomponents with separate copyright notices 9 | and license terms. Your use of these subcomponents is subject to the terms and 10 | conditions of the subcomponent's license, as noted in the LICENSE file. 11 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | - 编译 2 | 3 | ``` 4 | go get ./... 5 | ./control build 6 | ``` 7 | 8 | - 生成1000个counter作为测试数据 9 | 10 | ``` 11 | python gen_test_data.py 1000 > test-metadata.json 12 | ``` 13 | 14 | - 建立索引文件 15 | 16 | ``` 17 | mkdir -p ./var/ && ./falcon-index &> buildindex.log 18 | ``` 19 | 20 | 建立好的索引文件就是 ./var/index.db 21 | 22 | 23 | - 本地测试一下 24 | 25 | ``` 26 | go test 27 | ``` 28 | 29 | 30 | - 跑一下benchmark 31 | 32 | ``` 33 | go test -bench="." 34 | ``` 35 | 36 | - 作为server端启动,提供http查询API 37 | 38 | ``` 39 | ./falcon-index -s 40 | ``` 41 | -------------------------------------------------------------------------------- /control: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | workspace=$(cd $(dirname $0) && pwd) 3 | cd $workspace 4 | 5 | module=index 6 | app=falcon-$module 7 | conf=cfg.json 8 | pidfile=var/app.pid 9 | logfile=var/app.log 10 | 11 | mkdir -p var &>/dev/null 12 | 13 | 14 | ## build & pack 15 | function build() { 16 | commit=$(git log -1 --pretty=%h) 17 | cat < ./g/git.go 18 | package g 19 | const ( 20 | COMMIT = "$commit" 21 | ) 22 | EOF 23 | go build -o $app main.go 24 | sc=$? 25 | if [ $sc -ne 0 ];then 26 | echo "build error" 27 | exit $sc 28 | else 29 | echo -n "build ok, vsn=" 30 | ./$app -v 31 | fi 32 | } 33 | 34 | function pack() { 35 | build 36 | git log -1 --pretty=%h > gitversion 37 | version=`./$app -v` 38 | tar zcvf $app-$version.tar.gz control $app cfg.example.json gitversion ./test/debug 39 | rm -f gitversion &>/dev/null 40 | } 41 | 42 | function packbin() { 43 | build 44 | git log -1 --pretty=%h > gitversion 45 | version=`./$app -v` 46 | tar zcvf $app-bin-$version.tar.gz $app gitversion 47 | rm -f gitversion &>/dev/null 48 | } 49 | 50 | ## opt 51 | function start() { 52 | check_pid 53 | running=$? 54 | if [ $running -gt 0 ];then 55 | echo -n "started, pid=" 56 | cat $pidfile 57 | return 1 58 | fi 59 | 60 | nohup ./$app -c $conf >>$logfile 2>&1 & 61 | echo $! > $pidfile 62 | echo "start ok, pid=$!" 63 | } 64 | 65 | function stop() { 66 | pid=`cat $pidfile` 67 | kill $pid 68 | echo "stoped" 69 | } 70 | 71 | function shutdown() { 72 | pid=`cat $pidfile` 73 | kill -9 $pid 74 | echo "stoped" 75 | } 76 | 77 | function restart() { 78 | stop 79 | sleep 1 80 | start 81 | } 82 | 83 | ## other 84 | function status() { 85 | check_pid 86 | running=$? 87 | if [ $running -gt 0 ];then 88 | echo -n "running, pid=" 89 | cat $pidfile 90 | else 91 | echo "stoped" 92 | fi 93 | } 94 | 95 | function version() { 96 | ./$app -vg 97 | } 98 | 99 | function tailf() { 100 | tail -f $logfile 101 | } 102 | 103 | ## internal 104 | function check_pid() { 105 | if [ -f $pidfile ];then 106 | pid=`cat $pidfile` 107 | if [ -n $pid ]; then 108 | running=`ps -p $pid|grep -v "PID TTY" |wc -l` 109 | return $running 110 | fi 111 | fi 112 | return 0 113 | } 114 | 115 | ## usage 116 | function usage() { 117 | echo "$0 build|pack|packbin|start|stop|restart|status|tail|version" 118 | } 119 | 120 | ## main 121 | action=$1 122 | case $action in 123 | ## build 124 | "build" ) 125 | build 126 | ;; 127 | "pack" ) 128 | pack 129 | ;; 130 | "packbin" ) 131 | packbin 132 | ;; 133 | ## opt 134 | "start" ) 135 | start 136 | ;; 137 | "stop" ) 138 | stop 139 | ;; 140 | "kill" ) 141 | shutdown 142 | ;; 143 | "restart" ) 144 | restart 145 | ;; 146 | ## other 147 | "status" ) 148 | status 149 | ;; 150 | "version" ) 151 | version 152 | ;; 153 | "tail" ) 154 | tailf 155 | ;; 156 | * ) 157 | usage 158 | ;; 159 | esac 160 | -------------------------------------------------------------------------------- /doc/doc.go: -------------------------------------------------------------------------------- 1 | package doc 2 | 3 | type Doc struct { 4 | ID string 5 | MetaDoc *MetaDoc 6 | } 7 | 8 | func (m *Doc) Terms() []string { 9 | terms := []string{} 10 | if m != nil && m.MetaDoc.Endpoint != nil { 11 | terms = append(terms, "endpoint="+*m.MetaDoc.Endpoint) 12 | } 13 | if m != nil && m.MetaDoc.Metric != nil { 14 | terms = append(terms, "metric="+*m.MetaDoc.Metric) 15 | } 16 | if m != nil { 17 | for _, p := range m.MetaDoc.Tags { 18 | terms = append(terms, *p.Key+"="+*p.Value) 19 | } 20 | } 21 | return terms 22 | } 23 | 24 | func (m *Doc) TermDict() map[string]string { 25 | rt := make(map[string]string) 26 | if m != nil && m.MetaDoc.Endpoint != nil { 27 | rt["endpoint"] = *m.MetaDoc.Endpoint 28 | } 29 | if m != nil && m.MetaDoc.Metric != nil { 30 | rt["metric"] = *m.MetaDoc.Metric 31 | } 32 | if m != nil { 33 | for _, p := range m.MetaDoc.Tags { 34 | rt[*p.Key] = *p.Value 35 | } 36 | } 37 | return rt 38 | } 39 | -------------------------------------------------------------------------------- /doc/doc.pb.go: -------------------------------------------------------------------------------- 1 | // Code generated by protoc-gen-gogo. 2 | // source: doc/doc.proto 3 | // DO NOT EDIT! 4 | 5 | /* 6 | Package doc is a generated protocol buffer package. 7 | 8 | It is generated from these files: 9 | doc/doc.proto 10 | 11 | It has these top-level messages: 12 | MetaDoc 13 | Pair 14 | */ 15 | package doc 16 | 17 | import proto "github.com/golang/protobuf/proto" 18 | import fmt "fmt" 19 | import math "math" 20 | 21 | import github_com_golang_protobuf_proto "github.com/golang/protobuf/proto" 22 | 23 | import io "io" 24 | 25 | // Reference imports to suppress errors if they are not otherwise used. 26 | var _ = proto.Marshal 27 | var _ = fmt.Errorf 28 | var _ = math.Inf 29 | 30 | // This is a compile-time assertion to ensure that this generated file 31 | // is compatible with the proto package it is being compiled against. 32 | // A compilation error at this line likely means your copy of the 33 | // proto package needs to be updated. 34 | const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package 35 | 36 | type MetaDoc struct { 37 | Endpoint *string `protobuf:"bytes,1,req,name=endpoint" json:"endpoint,omitempty"` 38 | Metric *string `protobuf:"bytes,2,req,name=metric" json:"metric,omitempty"` 39 | CounterType *string `protobuf:"bytes,3,req,name=counterType" json:"counterType,omitempty"` 40 | Step *int64 `protobuf:"varint,4,req,name=step" json:"step,omitempty"` 41 | Tags []*Pair `protobuf:"bytes,5,rep,name=tags" json:"tags,omitempty"` 42 | XXX_unrecognized []byte `json:"-"` 43 | } 44 | 45 | func (m *MetaDoc) Reset() { *m = MetaDoc{} } 46 | func (m *MetaDoc) String() string { return proto.CompactTextString(m) } 47 | func (*MetaDoc) ProtoMessage() {} 48 | func (*MetaDoc) Descriptor() ([]byte, []int) { return fileDescriptorDoc, []int{0} } 49 | 50 | func (m *MetaDoc) GetEndpoint() string { 51 | if m != nil && m.Endpoint != nil { 52 | return *m.Endpoint 53 | } 54 | return "" 55 | } 56 | 57 | func (m *MetaDoc) GetMetric() string { 58 | if m != nil && m.Metric != nil { 59 | return *m.Metric 60 | } 61 | return "" 62 | } 63 | 64 | func (m *MetaDoc) GetCounterType() string { 65 | if m != nil && m.CounterType != nil { 66 | return *m.CounterType 67 | } 68 | return "" 69 | } 70 | 71 | func (m *MetaDoc) GetStep() int64 { 72 | if m != nil && m.Step != nil { 73 | return *m.Step 74 | } 75 | return 0 76 | } 77 | 78 | func (m *MetaDoc) GetTags() []*Pair { 79 | if m != nil { 80 | return m.Tags 81 | } 82 | return nil 83 | } 84 | 85 | type Pair struct { 86 | Key *string `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"` 87 | Value *string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` 88 | XXX_unrecognized []byte `json:"-"` 89 | } 90 | 91 | func (m *Pair) Reset() { *m = Pair{} } 92 | func (m *Pair) String() string { return proto.CompactTextString(m) } 93 | func (*Pair) ProtoMessage() {} 94 | func (*Pair) Descriptor() ([]byte, []int) { return fileDescriptorDoc, []int{1} } 95 | 96 | func (m *Pair) GetKey() string { 97 | if m != nil && m.Key != nil { 98 | return *m.Key 99 | } 100 | return "" 101 | } 102 | 103 | func (m *Pair) GetValue() string { 104 | if m != nil && m.Value != nil { 105 | return *m.Value 106 | } 107 | return "" 108 | } 109 | 110 | func init() { 111 | proto.RegisterType((*MetaDoc)(nil), "doc.MetaDoc") 112 | proto.RegisterType((*Pair)(nil), "doc.Pair") 113 | } 114 | func (m *MetaDoc) Marshal() (data []byte, err error) { 115 | size := m.Size() 116 | data = make([]byte, size) 117 | n, err := m.MarshalTo(data) 118 | if err != nil { 119 | return nil, err 120 | } 121 | return data[:n], nil 122 | } 123 | 124 | func (m *MetaDoc) MarshalTo(data []byte) (int, error) { 125 | var i int 126 | _ = i 127 | var l int 128 | _ = l 129 | if m.Endpoint == nil { 130 | return 0, new(github_com_golang_protobuf_proto.RequiredNotSetError) 131 | } else { 132 | data[i] = 0xa 133 | i++ 134 | i = encodeVarintDoc(data, i, uint64(len(*m.Endpoint))) 135 | i += copy(data[i:], *m.Endpoint) 136 | } 137 | if m.Metric == nil { 138 | return 0, new(github_com_golang_protobuf_proto.RequiredNotSetError) 139 | } else { 140 | data[i] = 0x12 141 | i++ 142 | i = encodeVarintDoc(data, i, uint64(len(*m.Metric))) 143 | i += copy(data[i:], *m.Metric) 144 | } 145 | if m.CounterType == nil { 146 | return 0, new(github_com_golang_protobuf_proto.RequiredNotSetError) 147 | } else { 148 | data[i] = 0x1a 149 | i++ 150 | i = encodeVarintDoc(data, i, uint64(len(*m.CounterType))) 151 | i += copy(data[i:], *m.CounterType) 152 | } 153 | if m.Step == nil { 154 | return 0, new(github_com_golang_protobuf_proto.RequiredNotSetError) 155 | } else { 156 | data[i] = 0x20 157 | i++ 158 | i = encodeVarintDoc(data, i, uint64(*m.Step)) 159 | } 160 | if len(m.Tags) > 0 { 161 | for _, msg := range m.Tags { 162 | data[i] = 0x2a 163 | i++ 164 | i = encodeVarintDoc(data, i, uint64(msg.Size())) 165 | n, err := msg.MarshalTo(data[i:]) 166 | if err != nil { 167 | return 0, err 168 | } 169 | i += n 170 | } 171 | } 172 | if m.XXX_unrecognized != nil { 173 | i += copy(data[i:], m.XXX_unrecognized) 174 | } 175 | return i, nil 176 | } 177 | 178 | func (m *Pair) Marshal() (data []byte, err error) { 179 | size := m.Size() 180 | data = make([]byte, size) 181 | n, err := m.MarshalTo(data) 182 | if err != nil { 183 | return nil, err 184 | } 185 | return data[:n], nil 186 | } 187 | 188 | func (m *Pair) MarshalTo(data []byte) (int, error) { 189 | var i int 190 | _ = i 191 | var l int 192 | _ = l 193 | if m.Key != nil { 194 | data[i] = 0xa 195 | i++ 196 | i = encodeVarintDoc(data, i, uint64(len(*m.Key))) 197 | i += copy(data[i:], *m.Key) 198 | } 199 | if m.Value != nil { 200 | data[i] = 0x12 201 | i++ 202 | i = encodeVarintDoc(data, i, uint64(len(*m.Value))) 203 | i += copy(data[i:], *m.Value) 204 | } 205 | if m.XXX_unrecognized != nil { 206 | i += copy(data[i:], m.XXX_unrecognized) 207 | } 208 | return i, nil 209 | } 210 | 211 | func encodeFixed64Doc(data []byte, offset int, v uint64) int { 212 | data[offset] = uint8(v) 213 | data[offset+1] = uint8(v >> 8) 214 | data[offset+2] = uint8(v >> 16) 215 | data[offset+3] = uint8(v >> 24) 216 | data[offset+4] = uint8(v >> 32) 217 | data[offset+5] = uint8(v >> 40) 218 | data[offset+6] = uint8(v >> 48) 219 | data[offset+7] = uint8(v >> 56) 220 | return offset + 8 221 | } 222 | func encodeFixed32Doc(data []byte, offset int, v uint32) int { 223 | data[offset] = uint8(v) 224 | data[offset+1] = uint8(v >> 8) 225 | data[offset+2] = uint8(v >> 16) 226 | data[offset+3] = uint8(v >> 24) 227 | return offset + 4 228 | } 229 | func encodeVarintDoc(data []byte, offset int, v uint64) int { 230 | for v >= 1<<7 { 231 | data[offset] = uint8(v&0x7f | 0x80) 232 | v >>= 7 233 | offset++ 234 | } 235 | data[offset] = uint8(v) 236 | return offset + 1 237 | } 238 | func (m *MetaDoc) Size() (n int) { 239 | var l int 240 | _ = l 241 | if m.Endpoint != nil { 242 | l = len(*m.Endpoint) 243 | n += 1 + l + sovDoc(uint64(l)) 244 | } 245 | if m.Metric != nil { 246 | l = len(*m.Metric) 247 | n += 1 + l + sovDoc(uint64(l)) 248 | } 249 | if m.CounterType != nil { 250 | l = len(*m.CounterType) 251 | n += 1 + l + sovDoc(uint64(l)) 252 | } 253 | if m.Step != nil { 254 | n += 1 + sovDoc(uint64(*m.Step)) 255 | } 256 | if len(m.Tags) > 0 { 257 | for _, e := range m.Tags { 258 | l = e.Size() 259 | n += 1 + l + sovDoc(uint64(l)) 260 | } 261 | } 262 | if m.XXX_unrecognized != nil { 263 | n += len(m.XXX_unrecognized) 264 | } 265 | return n 266 | } 267 | 268 | func (m *Pair) Size() (n int) { 269 | var l int 270 | _ = l 271 | if m.Key != nil { 272 | l = len(*m.Key) 273 | n += 1 + l + sovDoc(uint64(l)) 274 | } 275 | if m.Value != nil { 276 | l = len(*m.Value) 277 | n += 1 + l + sovDoc(uint64(l)) 278 | } 279 | if m.XXX_unrecognized != nil { 280 | n += len(m.XXX_unrecognized) 281 | } 282 | return n 283 | } 284 | 285 | func sovDoc(x uint64) (n int) { 286 | for { 287 | n++ 288 | x >>= 7 289 | if x == 0 { 290 | break 291 | } 292 | } 293 | return n 294 | } 295 | func sozDoc(x uint64) (n int) { 296 | return sovDoc(uint64((x << 1) ^ uint64((int64(x) >> 63)))) 297 | } 298 | func (m *MetaDoc) Unmarshal(data []byte) error { 299 | var hasFields [1]uint64 300 | l := len(data) 301 | iNdEx := 0 302 | for iNdEx < l { 303 | preIndex := iNdEx 304 | var wire uint64 305 | for shift := uint(0); ; shift += 7 { 306 | if shift >= 64 { 307 | return ErrIntOverflowDoc 308 | } 309 | if iNdEx >= l { 310 | return io.ErrUnexpectedEOF 311 | } 312 | b := data[iNdEx] 313 | iNdEx++ 314 | wire |= (uint64(b) & 0x7F) << shift 315 | if b < 0x80 { 316 | break 317 | } 318 | } 319 | fieldNum := int32(wire >> 3) 320 | wireType := int(wire & 0x7) 321 | if wireType == 4 { 322 | return fmt.Errorf("proto: MetaDoc: wiretype end group for non-group") 323 | } 324 | if fieldNum <= 0 { 325 | return fmt.Errorf("proto: MetaDoc: illegal tag %d (wire type %d)", fieldNum, wire) 326 | } 327 | switch fieldNum { 328 | case 1: 329 | if wireType != 2 { 330 | return fmt.Errorf("proto: wrong wireType = %d for field Endpoint", wireType) 331 | } 332 | var stringLen uint64 333 | for shift := uint(0); ; shift += 7 { 334 | if shift >= 64 { 335 | return ErrIntOverflowDoc 336 | } 337 | if iNdEx >= l { 338 | return io.ErrUnexpectedEOF 339 | } 340 | b := data[iNdEx] 341 | iNdEx++ 342 | stringLen |= (uint64(b) & 0x7F) << shift 343 | if b < 0x80 { 344 | break 345 | } 346 | } 347 | intStringLen := int(stringLen) 348 | if intStringLen < 0 { 349 | return ErrInvalidLengthDoc 350 | } 351 | postIndex := iNdEx + intStringLen 352 | if postIndex > l { 353 | return io.ErrUnexpectedEOF 354 | } 355 | s := string(data[iNdEx:postIndex]) 356 | m.Endpoint = &s 357 | iNdEx = postIndex 358 | hasFields[0] |= uint64(0x00000001) 359 | case 2: 360 | if wireType != 2 { 361 | return fmt.Errorf("proto: wrong wireType = %d for field Metric", wireType) 362 | } 363 | var stringLen uint64 364 | for shift := uint(0); ; shift += 7 { 365 | if shift >= 64 { 366 | return ErrIntOverflowDoc 367 | } 368 | if iNdEx >= l { 369 | return io.ErrUnexpectedEOF 370 | } 371 | b := data[iNdEx] 372 | iNdEx++ 373 | stringLen |= (uint64(b) & 0x7F) << shift 374 | if b < 0x80 { 375 | break 376 | } 377 | } 378 | intStringLen := int(stringLen) 379 | if intStringLen < 0 { 380 | return ErrInvalidLengthDoc 381 | } 382 | postIndex := iNdEx + intStringLen 383 | if postIndex > l { 384 | return io.ErrUnexpectedEOF 385 | } 386 | s := string(data[iNdEx:postIndex]) 387 | m.Metric = &s 388 | iNdEx = postIndex 389 | hasFields[0] |= uint64(0x00000002) 390 | case 3: 391 | if wireType != 2 { 392 | return fmt.Errorf("proto: wrong wireType = %d for field CounterType", wireType) 393 | } 394 | var stringLen uint64 395 | for shift := uint(0); ; shift += 7 { 396 | if shift >= 64 { 397 | return ErrIntOverflowDoc 398 | } 399 | if iNdEx >= l { 400 | return io.ErrUnexpectedEOF 401 | } 402 | b := data[iNdEx] 403 | iNdEx++ 404 | stringLen |= (uint64(b) & 0x7F) << shift 405 | if b < 0x80 { 406 | break 407 | } 408 | } 409 | intStringLen := int(stringLen) 410 | if intStringLen < 0 { 411 | return ErrInvalidLengthDoc 412 | } 413 | postIndex := iNdEx + intStringLen 414 | if postIndex > l { 415 | return io.ErrUnexpectedEOF 416 | } 417 | s := string(data[iNdEx:postIndex]) 418 | m.CounterType = &s 419 | iNdEx = postIndex 420 | hasFields[0] |= uint64(0x00000004) 421 | case 4: 422 | if wireType != 0 { 423 | return fmt.Errorf("proto: wrong wireType = %d for field Step", wireType) 424 | } 425 | var v int64 426 | for shift := uint(0); ; shift += 7 { 427 | if shift >= 64 { 428 | return ErrIntOverflowDoc 429 | } 430 | if iNdEx >= l { 431 | return io.ErrUnexpectedEOF 432 | } 433 | b := data[iNdEx] 434 | iNdEx++ 435 | v |= (int64(b) & 0x7F) << shift 436 | if b < 0x80 { 437 | break 438 | } 439 | } 440 | m.Step = &v 441 | hasFields[0] |= uint64(0x00000008) 442 | case 5: 443 | if wireType != 2 { 444 | return fmt.Errorf("proto: wrong wireType = %d for field Tags", wireType) 445 | } 446 | var msglen int 447 | for shift := uint(0); ; shift += 7 { 448 | if shift >= 64 { 449 | return ErrIntOverflowDoc 450 | } 451 | if iNdEx >= l { 452 | return io.ErrUnexpectedEOF 453 | } 454 | b := data[iNdEx] 455 | iNdEx++ 456 | msglen |= (int(b) & 0x7F) << shift 457 | if b < 0x80 { 458 | break 459 | } 460 | } 461 | if msglen < 0 { 462 | return ErrInvalidLengthDoc 463 | } 464 | postIndex := iNdEx + msglen 465 | if postIndex > l { 466 | return io.ErrUnexpectedEOF 467 | } 468 | m.Tags = append(m.Tags, &Pair{}) 469 | if err := m.Tags[len(m.Tags)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { 470 | return err 471 | } 472 | iNdEx = postIndex 473 | default: 474 | iNdEx = preIndex 475 | skippy, err := skipDoc(data[iNdEx:]) 476 | if err != nil { 477 | return err 478 | } 479 | if skippy < 0 { 480 | return ErrInvalidLengthDoc 481 | } 482 | if (iNdEx + skippy) > l { 483 | return io.ErrUnexpectedEOF 484 | } 485 | m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) 486 | iNdEx += skippy 487 | } 488 | } 489 | if hasFields[0]&uint64(0x00000001) == 0 { 490 | return new(github_com_golang_protobuf_proto.RequiredNotSetError) 491 | } 492 | if hasFields[0]&uint64(0x00000002) == 0 { 493 | return new(github_com_golang_protobuf_proto.RequiredNotSetError) 494 | } 495 | if hasFields[0]&uint64(0x00000004) == 0 { 496 | return new(github_com_golang_protobuf_proto.RequiredNotSetError) 497 | } 498 | if hasFields[0]&uint64(0x00000008) == 0 { 499 | return new(github_com_golang_protobuf_proto.RequiredNotSetError) 500 | } 501 | 502 | if iNdEx > l { 503 | return io.ErrUnexpectedEOF 504 | } 505 | return nil 506 | } 507 | func (m *Pair) Unmarshal(data []byte) error { 508 | l := len(data) 509 | iNdEx := 0 510 | for iNdEx < l { 511 | preIndex := iNdEx 512 | var wire uint64 513 | for shift := uint(0); ; shift += 7 { 514 | if shift >= 64 { 515 | return ErrIntOverflowDoc 516 | } 517 | if iNdEx >= l { 518 | return io.ErrUnexpectedEOF 519 | } 520 | b := data[iNdEx] 521 | iNdEx++ 522 | wire |= (uint64(b) & 0x7F) << shift 523 | if b < 0x80 { 524 | break 525 | } 526 | } 527 | fieldNum := int32(wire >> 3) 528 | wireType := int(wire & 0x7) 529 | if wireType == 4 { 530 | return fmt.Errorf("proto: Pair: wiretype end group for non-group") 531 | } 532 | if fieldNum <= 0 { 533 | return fmt.Errorf("proto: Pair: illegal tag %d (wire type %d)", fieldNum, wire) 534 | } 535 | switch fieldNum { 536 | case 1: 537 | if wireType != 2 { 538 | return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) 539 | } 540 | var stringLen uint64 541 | for shift := uint(0); ; shift += 7 { 542 | if shift >= 64 { 543 | return ErrIntOverflowDoc 544 | } 545 | if iNdEx >= l { 546 | return io.ErrUnexpectedEOF 547 | } 548 | b := data[iNdEx] 549 | iNdEx++ 550 | stringLen |= (uint64(b) & 0x7F) << shift 551 | if b < 0x80 { 552 | break 553 | } 554 | } 555 | intStringLen := int(stringLen) 556 | if intStringLen < 0 { 557 | return ErrInvalidLengthDoc 558 | } 559 | postIndex := iNdEx + intStringLen 560 | if postIndex > l { 561 | return io.ErrUnexpectedEOF 562 | } 563 | s := string(data[iNdEx:postIndex]) 564 | m.Key = &s 565 | iNdEx = postIndex 566 | case 2: 567 | if wireType != 2 { 568 | return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) 569 | } 570 | var stringLen uint64 571 | for shift := uint(0); ; shift += 7 { 572 | if shift >= 64 { 573 | return ErrIntOverflowDoc 574 | } 575 | if iNdEx >= l { 576 | return io.ErrUnexpectedEOF 577 | } 578 | b := data[iNdEx] 579 | iNdEx++ 580 | stringLen |= (uint64(b) & 0x7F) << shift 581 | if b < 0x80 { 582 | break 583 | } 584 | } 585 | intStringLen := int(stringLen) 586 | if intStringLen < 0 { 587 | return ErrInvalidLengthDoc 588 | } 589 | postIndex := iNdEx + intStringLen 590 | if postIndex > l { 591 | return io.ErrUnexpectedEOF 592 | } 593 | s := string(data[iNdEx:postIndex]) 594 | m.Value = &s 595 | iNdEx = postIndex 596 | default: 597 | iNdEx = preIndex 598 | skippy, err := skipDoc(data[iNdEx:]) 599 | if err != nil { 600 | return err 601 | } 602 | if skippy < 0 { 603 | return ErrInvalidLengthDoc 604 | } 605 | if (iNdEx + skippy) > l { 606 | return io.ErrUnexpectedEOF 607 | } 608 | m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) 609 | iNdEx += skippy 610 | } 611 | } 612 | 613 | if iNdEx > l { 614 | return io.ErrUnexpectedEOF 615 | } 616 | return nil 617 | } 618 | func skipDoc(data []byte) (n int, err error) { 619 | l := len(data) 620 | iNdEx := 0 621 | for iNdEx < l { 622 | var wire uint64 623 | for shift := uint(0); ; shift += 7 { 624 | if shift >= 64 { 625 | return 0, ErrIntOverflowDoc 626 | } 627 | if iNdEx >= l { 628 | return 0, io.ErrUnexpectedEOF 629 | } 630 | b := data[iNdEx] 631 | iNdEx++ 632 | wire |= (uint64(b) & 0x7F) << shift 633 | if b < 0x80 { 634 | break 635 | } 636 | } 637 | wireType := int(wire & 0x7) 638 | switch wireType { 639 | case 0: 640 | for shift := uint(0); ; shift += 7 { 641 | if shift >= 64 { 642 | return 0, ErrIntOverflowDoc 643 | } 644 | if iNdEx >= l { 645 | return 0, io.ErrUnexpectedEOF 646 | } 647 | iNdEx++ 648 | if data[iNdEx-1] < 0x80 { 649 | break 650 | } 651 | } 652 | return iNdEx, nil 653 | case 1: 654 | iNdEx += 8 655 | return iNdEx, nil 656 | case 2: 657 | var length int 658 | for shift := uint(0); ; shift += 7 { 659 | if shift >= 64 { 660 | return 0, ErrIntOverflowDoc 661 | } 662 | if iNdEx >= l { 663 | return 0, io.ErrUnexpectedEOF 664 | } 665 | b := data[iNdEx] 666 | iNdEx++ 667 | length |= (int(b) & 0x7F) << shift 668 | if b < 0x80 { 669 | break 670 | } 671 | } 672 | iNdEx += length 673 | if length < 0 { 674 | return 0, ErrInvalidLengthDoc 675 | } 676 | return iNdEx, nil 677 | case 3: 678 | for { 679 | var innerWire uint64 680 | var start int = iNdEx 681 | for shift := uint(0); ; shift += 7 { 682 | if shift >= 64 { 683 | return 0, ErrIntOverflowDoc 684 | } 685 | if iNdEx >= l { 686 | return 0, io.ErrUnexpectedEOF 687 | } 688 | b := data[iNdEx] 689 | iNdEx++ 690 | innerWire |= (uint64(b) & 0x7F) << shift 691 | if b < 0x80 { 692 | break 693 | } 694 | } 695 | innerWireType := int(innerWire & 0x7) 696 | if innerWireType == 4 { 697 | break 698 | } 699 | next, err := skipDoc(data[start:]) 700 | if err != nil { 701 | return 0, err 702 | } 703 | iNdEx = start + next 704 | } 705 | return iNdEx, nil 706 | case 4: 707 | return iNdEx, nil 708 | case 5: 709 | iNdEx += 4 710 | return iNdEx, nil 711 | default: 712 | return 0, fmt.Errorf("proto: illegal wireType %d", wireType) 713 | } 714 | } 715 | panic("unreachable") 716 | } 717 | 718 | var ( 719 | ErrInvalidLengthDoc = fmt.Errorf("proto: negative length found during unmarshaling") 720 | ErrIntOverflowDoc = fmt.Errorf("proto: integer overflow") 721 | ) 722 | 723 | func init() { proto.RegisterFile("doc/doc.proto", fileDescriptorDoc) } 724 | 725 | var fileDescriptorDoc = []byte{ 726 | // 182 bytes of a gzipped FileDescriptorProto 727 | 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0xe2, 0x4d, 0xc9, 0x4f, 0xd6, 728 | 0x07, 0x62, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x66, 0x20, 0x53, 0x29, 0x9d, 0x8b, 0xdd, 729 | 0x37, 0xb5, 0x24, 0xd1, 0x25, 0x3f, 0x59, 0x48, 0x80, 0x8b, 0x23, 0x35, 0x2f, 0xa5, 0x20, 0x3f, 730 | 0x33, 0xaf, 0x44, 0x82, 0x51, 0x81, 0x49, 0x83, 0x53, 0x88, 0x8f, 0x8b, 0x2d, 0x37, 0xb5, 0xa4, 731 | 0x28, 0x33, 0x59, 0x82, 0x09, 0xcc, 0x17, 0xe6, 0xe2, 0x4e, 0xce, 0x2f, 0xcd, 0x2b, 0x49, 0x2d, 732 | 0x0a, 0xa9, 0x2c, 0x48, 0x95, 0x60, 0x06, 0x0b, 0xf2, 0x70, 0xb1, 0x14, 0x97, 0xa4, 0x16, 0x48, 733 | 0xb0, 0x00, 0x79, 0xcc, 0x42, 0xe2, 0x5c, 0x2c, 0x25, 0x89, 0xe9, 0xc5, 0x12, 0xac, 0x0a, 0xcc, 734 | 0x1a, 0xdc, 0x46, 0x9c, 0x7a, 0x20, 0xeb, 0x02, 0x12, 0x33, 0x8b, 0x94, 0x94, 0xb8, 0x58, 0x40, 735 | 0xb4, 0x10, 0x37, 0x17, 0x73, 0x76, 0x6a, 0x25, 0xd0, 0x02, 0x46, 0xa0, 0x5e, 0x5e, 0x2e, 0xd6, 736 | 0xb2, 0xc4, 0x9c, 0xd2, 0x54, 0xa0, 0xf9, 0x40, 0xae, 0x93, 0xc0, 0x89, 0x47, 0x72, 0x8c, 0x17, 737 | 0x80, 0xf8, 0x01, 0x10, 0xcf, 0x78, 0x2c, 0xc7, 0x00, 0x08, 0x00, 0x00, 0xff, 0xff, 0x0e, 0x15, 738 | 0x11, 0xe4, 0xb3, 0x00, 0x00, 0x00, 739 | } 740 | -------------------------------------------------------------------------------- /doc/doc.proto: -------------------------------------------------------------------------------- 1 | package doc; 2 | 3 | message MetaDoc 4 | { 5 | required string endpoint = 1; 6 | required string metric = 2; 7 | required string counterType = 3; 8 | required int64 step = 4; 9 | repeated Pair tags = 5; 10 | } 11 | 12 | message Pair 13 | { 14 | optional string key = 1; 15 | optional string value = 2; 16 | } 17 | -------------------------------------------------------------------------------- /g/cfg.go: -------------------------------------------------------------------------------- 1 | package g 2 | 3 | import ( 4 | "encoding/json" 5 | "log" 6 | "sync/atomic" 7 | "unsafe" 8 | 9 | "github.com/toolkits/file" 10 | ) 11 | 12 | type File struct { 13 | Filename string 14 | Body []byte 15 | } 16 | 17 | type HttpConfig struct { 18 | Enabled bool `json:"enabled"` 19 | Listen string `json:"listen"` 20 | } 21 | 22 | type GlobalConfig struct { 23 | Pid string `json:"pid"` 24 | Debug bool `json:"debug"` 25 | Http *HttpConfig `json:"http"` 26 | } 27 | 28 | var ( 29 | ConfigFile string 30 | ptr unsafe.Pointer 31 | ) 32 | 33 | func Config() *GlobalConfig { 34 | return (*GlobalConfig)(atomic.LoadPointer(&ptr)) 35 | } 36 | 37 | func ParseConfig(cfg string) { 38 | if cfg == "" { 39 | log.Fatalln("config file not specified: use -c $filename") 40 | } 41 | 42 | if !file.IsExist(cfg) { 43 | log.Fatalln("config file specified not found:", cfg) 44 | } 45 | 46 | ConfigFile = cfg 47 | 48 | configContent, err := file.ToTrimString(cfg) 49 | if err != nil { 50 | log.Fatalln("read config file", cfg, "error:", err.Error()) 51 | } 52 | 53 | var c GlobalConfig 54 | err = json.Unmarshal([]byte(configContent), &c) 55 | if err != nil { 56 | log.Fatalln("parse config file", cfg, "error:", err.Error()) 57 | } 58 | 59 | // set config 60 | atomic.StorePointer(&ptr, unsafe.Pointer(&c)) 61 | 62 | log.Println("g.ParseConfig ok, file", cfg) 63 | } 64 | -------------------------------------------------------------------------------- /g/db.go: -------------------------------------------------------------------------------- 1 | package g 2 | 3 | import ( 4 | "github.com/boltdb/bolt" 5 | "log" 6 | "time" 7 | ) 8 | 9 | var KVDB *bolt.DB 10 | 11 | func OpenDB() { 12 | path := "./var/index.db" 13 | var err error 14 | KVDB, err = bolt.Open(path, 0600, &bolt.Options{Timeout: 1 * time.Second}) 15 | if err != nil { 16 | log.Fatal(err) 17 | } 18 | log.Printf("kvdb:%v\n", KVDB) 19 | } 20 | 21 | func CloseDB() { 22 | if KVDB != nil { 23 | KVDB.Close() 24 | } 25 | log.Printf("db closed") 26 | } 27 | -------------------------------------------------------------------------------- /g/g.go: -------------------------------------------------------------------------------- 1 | package g 2 | 3 | import ( 4 | "log" 5 | "runtime" 6 | ) 7 | 8 | const ( 9 | VERSION = "0.1" 10 | SIZE_BUCKET = "_sz_" 11 | FIELDS_BUCKET = "_f_" 12 | FVALUE_BUCKET_PREFIX = "_v_" 13 | TERM_DOCS_BUCKET_PREFIX = "_t_" 14 | TERM_FIELDS_BUCKET = "_tf_" 15 | ) 16 | 17 | func init() { 18 | runtime.GOMAXPROCS(runtime.NumCPU()) 19 | log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile) 20 | } 21 | -------------------------------------------------------------------------------- /g/git.go: -------------------------------------------------------------------------------- 1 | package g 2 | const ( 3 | COMMIT = "6605a88" 4 | ) 5 | -------------------------------------------------------------------------------- /g/utils.go: -------------------------------------------------------------------------------- 1 | package g 2 | 3 | import ( 4 | "encoding/binary" 5 | ) 6 | 7 | func StringSliceIntersect(a, b []string) []string { 8 | rt := []string{} 9 | 10 | target := make(map[string]bool) 11 | for _, f := range a { 12 | target[f] = true 13 | } 14 | 15 | for _, f := range b { 16 | if _, ok := target[f]; ok { 17 | rt = append(rt, f) 18 | } 19 | } 20 | 21 | return rt 22 | } 23 | 24 | func BytesToInt64(buf []byte) int64 { 25 | return int64(binary.BigEndian.Uint64(buf)) 26 | } 27 | func Int64ToBytes(i int64) []byte { 28 | var buf = make([]byte, 8) 29 | binary.BigEndian.PutUint64(buf, uint64(i)) 30 | return buf 31 | } 32 | -------------------------------------------------------------------------------- /gen_test_data.py: -------------------------------------------------------------------------------- 1 | #!/env/bin/python 2 | 3 | import sys 4 | import json 5 | 6 | def gen(count): 7 | print "[", 8 | for x in range(0, count): 9 | d = { 10 | "endpoint": "laiwei-test%s" %(x,), 11 | "metric": "cpu.idle", 12 | "value": 1, 13 | "step": 30, 14 | "counterType": "GAUGE", 15 | "tags": "home=bj,srv=falcon", 16 | "timestamp": 1234567 17 | } 18 | print json.dumps(d), 19 | 20 | if x < count-1: 21 | print "," 22 | 23 | print "]" 24 | 25 | 26 | if __name__ == "__main__": 27 | gen(int(sys.argv[1])) 28 | -------------------------------------------------------------------------------- /http/api_query.go: -------------------------------------------------------------------------------- 1 | package http 2 | 3 | import ( 4 | "fmt" 5 | "github.com/gin-gonic/gin" 6 | "github.com/laiwei/falcon-index/index" 7 | "strconv" 8 | "strings" 9 | ) 10 | 11 | func configApiQueryRoutes() { 12 | router.GET("/ping", func(c *gin.Context) { 13 | c.JSON(200, gin.H{ 14 | "message": "pong", 15 | }) 16 | }) 17 | 18 | router.GET("/api/v1/fields", func(c *gin.Context) { 19 | q := c.DefaultQuery("q", "") 20 | start := c.DefaultQuery("start", "") 21 | limit, err := strconv.Atoi(c.DefaultQuery("limit", "10")) 22 | if err != nil { 23 | limit = 10 24 | } 25 | fmt.Printf("q:%s, start:%s, limit:%d\n", q, start, limit) 26 | rt, err := index.SearchField(q, start, limit) 27 | c.JSON(200, gin.H{ 28 | "value": rt, 29 | }) 30 | }) 31 | 32 | router.GET("/api/v1/fieldvalues/field/:f", func(c *gin.Context) { 33 | f := c.Param("f") 34 | q := c.DefaultQuery("q", "") 35 | start := c.DefaultQuery("start", "") 36 | limit, err := strconv.Atoi(c.DefaultQuery("limit", "10")) 37 | if err != nil { 38 | limit = 10 39 | } 40 | fmt.Printf("f:%s, q:%s, start:%s, limit:%d\n", f, q, start, limit) 41 | rt, err := index.SearchFieldValue(f, q, start, limit) 42 | c.JSON(200, gin.H{ 43 | "field": f, 44 | "value": rt, 45 | }) 46 | }) 47 | 48 | router.GET("/api/v1/fields/term/:t", func(c *gin.Context) { 49 | t := c.Param("t") 50 | rt, err := index.QueryFieldByTerm(t) 51 | if err != nil { 52 | c.JSON(500, gin.H{"msg": err.Error()}) 53 | } else { 54 | c.JSON(200, gin.H{ 55 | "value": rt, 56 | }) 57 | } 58 | }) 59 | 60 | router.GET("/api/v1/fields/terms/:ts", func(c *gin.Context) { 61 | ts := c.Param("ts") 62 | terms := strings.Split(ts, ",") 63 | rt, err := index.QueryFieldByTerms(terms) 64 | if err != nil { 65 | c.JSON(500, gin.H{"msg": err.Error()}) 66 | } else { 67 | c.JSON(200, gin.H{ 68 | "value": rt, 69 | }) 70 | } 71 | }) 72 | 73 | router.GET("/api/v1/fieldvalues/field/:f/terms/:ts", func(c *gin.Context) { 74 | f := c.Param("f") 75 | ts := c.Param("ts") 76 | terms := strings.Split(ts, ",") 77 | q := c.DefaultQuery("q", "") 78 | 79 | limit, err := strconv.Atoi(c.DefaultQuery("limit", "10")) 80 | if err != nil { 81 | limit = 10 82 | } 83 | 84 | offset_bucket := c.DefaultQuery("offset_bucket", "") 85 | offset_pos := c.DefaultQuery("offset_position", "") 86 | 87 | var offset *index.Offset 88 | if offset_bucket != "" && offset_pos != "" { 89 | offset = &index.Offset{ 90 | Bucket: []byte(offset_bucket), 91 | Position: []byte(offset_pos), 92 | } 93 | } 94 | 95 | rt, next_offset, err := index.QueryFieldValueByTerms(terms, offset, limit, f, q) 96 | if err != nil { 97 | c.JSON(500, gin.H{"msg": err.Error()}) 98 | } else { 99 | c.JSON(200, gin.H{ 100 | "value": rt, 101 | "offset_bucket": string(next_offset.Bucket), 102 | "offset_position": string(next_offset.Position), 103 | }) 104 | } 105 | }) 106 | 107 | router.GET("/api/v1/docs/term/:t", func(c *gin.Context) { 108 | t := c.Param("t") 109 | start := c.DefaultQuery("start", "") 110 | limit, err := strconv.Atoi(c.DefaultQuery("limit", "10")) 111 | if err != nil { 112 | limit = 10 113 | } 114 | rt, err := index.QueryDocByTerm(t, []byte(start), limit) 115 | if err != nil { 116 | c.JSON(500, gin.H{"msg": err.Error()}) 117 | } else { 118 | c.JSON(200, gin.H{ 119 | "value": rt, 120 | }) 121 | } 122 | }) 123 | 124 | router.GET("/api/v1/docs/terms/:ts", func(c *gin.Context) { 125 | ts := c.Param("ts") 126 | terms := strings.Split(ts, ",") 127 | 128 | offset_bucket := c.DefaultQuery("offset_bucket", "") 129 | offset_pos := c.DefaultQuery("offset_position", "") 130 | 131 | var offset *index.Offset 132 | if offset_bucket != "" && offset_pos != "" { 133 | offset = &index.Offset{ 134 | Bucket: []byte(offset_bucket), 135 | Position: []byte(offset_pos), 136 | } 137 | } 138 | 139 | limit, err := strconv.Atoi(c.DefaultQuery("limit", "10")) 140 | if err != nil { 141 | limit = 10 142 | } 143 | 144 | rt, next_offset, err := index.QueryDocByTerms(terms, offset, limit) 145 | if err != nil { 146 | c.JSON(500, gin.H{"msg": err.Error()}) 147 | } else { 148 | c.JSON(200, gin.H{ 149 | "value": rt, 150 | "offset_bucket": string(next_offset.Bucket), 151 | "offset_position": string(next_offset.Position), 152 | }) 153 | } 154 | }) 155 | } 156 | -------------------------------------------------------------------------------- /http/http.go: -------------------------------------------------------------------------------- 1 | package http 2 | 3 | import ( 4 | "log" 5 | _ "net/http/pprof" 6 | 7 | "github.com/gin-gonic/gin" 8 | "github.com/laiwei/falcon-index/g" 9 | ) 10 | 11 | var router *gin.Engine 12 | 13 | func init() { 14 | router = gin.Default() 15 | //gin.SetMode(gin.ReleaseMode) 16 | configApiQueryRoutes() 17 | } 18 | 19 | func Start() { 20 | if !g.Config().Http.Enabled { 21 | log.Println("http.Start warning, not enabled") 22 | return 23 | } 24 | 25 | addr := g.Config().Http.Listen 26 | if addr == "" { 27 | return 28 | } 29 | 30 | router.Run(addr) 31 | } 32 | -------------------------------------------------------------------------------- /index/build.go: -------------------------------------------------------------------------------- 1 | package index 2 | 3 | import ( 4 | "bytes" 5 | "encoding/json" 6 | "fmt" 7 | "github.com/boltdb/bolt" 8 | "github.com/golang/protobuf/proto" 9 | "github.com/laiwei/falcon-index/doc" 10 | "github.com/laiwei/falcon-index/g" 11 | cmodel "github.com/open-falcon/common/model" 12 | cutils "github.com/open-falcon/common/utils" 13 | "github.com/toolkits/file" 14 | "log" 15 | ) 16 | 17 | // each term as a bucket, for seek speedup, and save doc together 18 | func BuildIndex() { 19 | sz_bname := []byte(g.SIZE_BUCKET) 20 | field_bname := []byte(g.FIELDS_BUCKET) 21 | tf_bname := []byte(g.TERM_FIELDS_BUCKET) 22 | g.KVDB.Update(func(tx *bolt.Tx) error { 23 | tx.CreateBucketIfNotExists(sz_bname) 24 | tx.CreateBucketIfNotExists(field_bname) 25 | tx.CreateBucketIfNotExists(tf_bname) 26 | return nil 27 | }) 28 | 29 | testContent, err := file.ToTrimString("./test-metadata.json") 30 | if err != nil { 31 | log.Fatalln("read test data file error:", err.Error()) 32 | } 33 | 34 | var data []*cmodel.JsonMetaData 35 | err = json.Unmarshal([]byte(testContent), &data) 36 | if err != nil { 37 | log.Fatalln("parse test file error:", err.Error()) 38 | } 39 | 40 | for _, jmd := range data { 41 | d := &doc.MetaDoc{ 42 | Endpoint: proto.String(jmd.Endpoint), 43 | Metric: proto.String(jmd.Metric), 44 | CounterType: proto.String(jmd.CounterType), 45 | Step: proto.Int64(jmd.Step), 46 | Tags: []*doc.Pair{}, 47 | } 48 | tags := cutils.DictedTagstring(jmd.Tags) 49 | for tagk, tagv := range tags { 50 | p := &doc.Pair{ 51 | Key: proto.String(tagk), 52 | Value: proto.String(tagv), 53 | } 54 | d.Tags = append(d.Tags, p) 55 | } 56 | log.Printf("doc:%v\n", d) 57 | 58 | doc_id := cutils.Checksum(d.GetEndpoint(), d.GetMetric(), tags) // ps: counter的随机分布,当设置limit时 相近的counter不能在同一批返回 59 | doc_bytes, err := d.Marshal() 60 | if err != nil { 61 | log.Fatalln("marshal doc:%s", err) 62 | } 63 | 64 | g.KVDB.Update(func(tx *bolt.Tx) error { 65 | tags_ := tags 66 | tags_["metric"] = d.GetMetric() 67 | tags_["endpoint"] = d.GetEndpoint() 68 | 69 | sz_bucket := tx.Bucket(sz_bname) 70 | tf_bucket := tx.Bucket(tf_bname) 71 | var buf bytes.Buffer 72 | for k, v := range tags_ { 73 | buf.Reset() 74 | buf.WriteString(k) 75 | buf.WriteString("=") 76 | buf.WriteString(v) 77 | term := buf.Bytes() 78 | 79 | //term_bucket, _ => [doc_id:doc, doc_id:doc...] 80 | term_bname := append([]byte(g.TERM_DOCS_BUCKET_PREFIX), term...) 81 | term_bucket, err := tx.CreateBucketIfNotExists(term_bname) 82 | if err != nil { 83 | return fmt.Errorf("create-term-bucket:%s", err) 84 | } 85 | term_bucket.Put([]byte(doc_id), doc_bytes) 86 | 87 | //size_bucket, _ => [term1:size, term2:size] 88 | sz := sz_bucket.Get(term) 89 | if sz == nil || len(sz) == 0 { 90 | sz_bucket.Put(term, g.Int64ToBytes(1)) 91 | } else { 92 | new_sz := g.BytesToInt64(sz) + 1 93 | sz_bucket.Put(term, g.Int64ToBytes(new_sz)) 94 | } 95 | 96 | //fields_bucket, _ => [field1:"", field2:"", field3:""] 97 | f_bucket := tx.Bucket(field_bname) 98 | f_bucket.Put([]byte(k), []byte("")) 99 | 100 | //field_value_bucket, field => [value1:"", value2:"", value3:""] 101 | fv_bname := g.FVALUE_BUCKET_PREFIX + k 102 | fv_bucket, _ := tx.CreateBucketIfNotExists([]byte(fv_bname)) 103 | fv_bucket.Put([]byte(v), []byte("")) 104 | 105 | //term_fileds, _ => [term0x00field, term0x00field, ] 106 | for f, _ := range tags { 107 | buf.Reset() 108 | buf.Write(term) 109 | buf.WriteByte(30) 110 | buf.WriteString(f) 111 | tf_bucket.Put(buf.Bytes(), []byte("")) 112 | } 113 | } 114 | 115 | //secondary index with metric, used for query docs by terms 116 | metric_v := tags_["metric"] 117 | delete(tags, "metric") 118 | for k, v := range tags_ { 119 | buf.Reset() 120 | buf.WriteString("metric=") 121 | buf.WriteString(metric_v) 122 | buf.WriteString(",") 123 | buf.WriteString(k) 124 | buf.WriteString("=") 125 | buf.WriteString(v) 126 | term := buf.Bytes() 127 | 128 | //term_bucket, _ => [doc_id:doc, doc_id:doc...] 129 | term_bname := append([]byte(g.TERM_DOCS_BUCKET_PREFIX), term...) 130 | term_bucket, err := tx.CreateBucketIfNotExists(term_bname) 131 | if err != nil { 132 | return fmt.Errorf("create-term-bucket:%s", err) 133 | } 134 | term_bucket.Put([]byte(doc_id), doc_bytes) 135 | 136 | //size_bucket, _ => [term1:size, term2:size] 137 | sz := sz_bucket.Get(term) 138 | if sz == nil || len(sz) == 0 { 139 | sz_bucket.Put(term, g.Int64ToBytes(1)) 140 | } else { 141 | new_sz := g.BytesToInt64(sz) + 1 142 | sz_bucket.Put(term, g.Int64ToBytes(new_sz)) 143 | } 144 | } 145 | 146 | return nil 147 | }) 148 | } 149 | } 150 | -------------------------------------------------------------------------------- /index/search.go: -------------------------------------------------------------------------------- 1 | package index 2 | 3 | import ( 4 | "bytes" 5 | "fmt" 6 | "github.com/boltdb/bolt" 7 | "github.com/laiwei/falcon-index/doc" 8 | "github.com/laiwei/falcon-index/g" 9 | "log" 10 | "strings" 11 | ) 12 | 13 | type Offset struct { 14 | Bucket []byte 15 | Position []byte 16 | } 17 | 18 | func termsToDict(terms []string) map[string]string { 19 | rt := make(map[string]string) 20 | for _, t := range terms { 21 | fields := strings.SplitN(t, "=", 2) 22 | rt[fields[0]] = rt[fields[1]] 23 | } 24 | return rt 25 | } 26 | 27 | func findShortestTermDocBucket(terms []string) (string, error) { 28 | if len(terms) == 0 { 29 | return "", fmt.Errorf("empty_terms") 30 | } 31 | 32 | if len(terms) == 1 { 33 | return terms[0], nil 34 | } 35 | 36 | terms_dict := make(map[string]string) 37 | for _, t := range terms { 38 | terms_dict[t] = "" 39 | } 40 | 41 | metric_t := "" 42 | for _, t := range terms { 43 | if strings.HasPrefix(t, "metric=") { 44 | metric_t = t 45 | break 46 | } 47 | } 48 | 49 | terms_ := make([]string, 0) 50 | if metric_t != "" { 51 | delete(terms_dict, metric_t) 52 | for t, _ := range terms_dict { 53 | terms_ = append(terms_, metric_t+","+t) 54 | } 55 | } else { 56 | terms_ = terms 57 | } 58 | 59 | rt_bucket := "" 60 | var min_sz int64 = -1 61 | 62 | err := g.KVDB.View(func(tx *bolt.Tx) error { 63 | for _, term := range terms_ { 64 | term_bname := g.TERM_DOCS_BUCKET_PREFIX + term 65 | b := tx.Bucket([]byte(term_bname)) 66 | if b == nil { 67 | return fmt.Errorf("no_such_bucket:%s", term) 68 | } 69 | sb := tx.Bucket([]byte(g.SIZE_BUCKET)) 70 | if sb == nil { 71 | return fmt.Errorf("no_such_bucket_size:%s", term) 72 | } 73 | sz := sb.Get([]byte(term)) 74 | if sz == nil || len(sz) == 0 { 75 | return fmt.Errorf("empty_bucket:%s", term) 76 | } 77 | isz := g.BytesToInt64(sz) 78 | if min_sz < 0 || isz <= min_sz { 79 | min_sz = isz 80 | rt_bucket = term 81 | } 82 | } 83 | return nil 84 | }) 85 | 86 | if err != nil { 87 | return "", err 88 | } 89 | return rt_bucket, nil 90 | } 91 | 92 | func QueryDocByTerm(term string, start []byte, limit int) ([]*doc.Doc, error) { 93 | docs := make([]*doc.Doc, 0) 94 | 95 | err := g.KVDB.View(func(tx *bolt.Tx) error { 96 | i := 0 97 | 98 | td_bucket_key := g.TERM_DOCS_BUCKET_PREFIX + term 99 | b := tx.Bucket([]byte(td_bucket_key)) 100 | if b == nil { 101 | return fmt.Errorf("non-exists-bucket:%s", td_bucket_key) 102 | } 103 | c := b.Cursor() 104 | 105 | var k, v []byte 106 | if start == nil || len(start) == 0 { 107 | k, v = c.First() 108 | } else { 109 | c.Seek(start) 110 | k, v = c.Next() 111 | } 112 | for ; i < limit && k != nil; k, v = c.Next() { 113 | mdoc := &doc.MetaDoc{} 114 | err := mdoc.Unmarshal(v) 115 | //NOTICE: 116 | if err != nil { 117 | log.Printf("decode doc:%s fail:%s", v, err) 118 | continue 119 | } 120 | i++ 121 | doc_ := &doc.Doc{ 122 | ID: string(k), 123 | MetaDoc: mdoc, 124 | } 125 | docs = append(docs, doc_) 126 | } 127 | return nil 128 | }) 129 | 130 | if err != nil { 131 | log.Printf("search term_bucket fail:%s", err) 132 | return []*doc.Doc{}, err 133 | } 134 | 135 | return docs, nil 136 | } 137 | 138 | func QueryDocByTerms(terms []string, start *Offset, limit int) ([]*doc.Doc, *Offset, error) { 139 | var rt_offset *Offset 140 | var sterm string 141 | var start_pos []byte 142 | 143 | var err error 144 | docs := make([]*doc.Doc, 0) 145 | if start == nil { 146 | sterm, err = findShortestTermDocBucket(terms) 147 | if err != nil { 148 | return docs, nil, err 149 | } 150 | start_pos = nil 151 | } else { 152 | sterm = string(start.Bucket) 153 | start_pos = start.Position 154 | } 155 | 156 | n := 0 157 | terms_dict := termsToDict(terms) 158 | for { 159 | candidate_docs, err := QueryDocByTerm(sterm, start_pos, limit*2) 160 | if err != nil { 161 | return []*doc.Doc{}, nil, err 162 | } 163 | 164 | if len(candidate_docs) == 0 { 165 | break 166 | } 167 | 168 | for _, d := range candidate_docs { 169 | start_pos = []byte(d.ID) 170 | if n >= limit { 171 | goto END 172 | } 173 | 174 | hit := true 175 | d_dict := d.TermDict() 176 | for k, v := range terms_dict { 177 | if v2, ok := d_dict[k]; !(ok && v2 == v) { 178 | hit = false 179 | break 180 | } 181 | } 182 | if hit { 183 | n = n + 1 184 | docs = append(docs, d) 185 | } 186 | } 187 | } 188 | 189 | END: 190 | if !bytes.Equal(start_pos, nil) { 191 | rt_offset = &Offset{ 192 | Bucket: []byte(sterm), Position: start_pos, 193 | } 194 | } else { 195 | rt_offset = nil 196 | } 197 | 198 | return docs, rt_offset, nil 199 | } 200 | 201 | func QueryFieldByTerm(term string) ([]string, error) { 202 | rt := make([]string, 0) 203 | 204 | err := g.KVDB.View(func(tx *bolt.Tx) error { 205 | b := tx.Bucket([]byte(g.TERM_FIELDS_BUCKET)) 206 | if b == nil { 207 | return fmt.Errorf("non-exists-bucket:%s", g.TERM_FIELDS_BUCKET) 208 | } 209 | 210 | var buf bytes.Buffer 211 | var k []byte 212 | var prefix []byte 213 | 214 | c := b.Cursor() 215 | buf.WriteString(term) 216 | buf.WriteByte(30) 217 | prefix = buf.Bytes() 218 | k, _ = c.Seek(prefix) 219 | 220 | for ; k != nil && bytes.HasPrefix(k, prefix); k, _ = c.Next() { 221 | rt = append(rt, string(bytes.TrimPrefix(k, prefix))) 222 | } 223 | return nil 224 | }) 225 | 226 | if err != nil { 227 | return []string{}, err 228 | } 229 | 230 | return rt, nil 231 | } 232 | 233 | func QueryFieldByTerms(terms []string) ([]string, error) { 234 | rt := make([]string, 0) 235 | 236 | for _, t := range terms { 237 | fields, err := QueryFieldByTerm(t) 238 | if err != nil { 239 | return []string{}, err 240 | } 241 | 242 | if len(fields) == 0 { 243 | return []string{}, nil 244 | } 245 | 246 | if len(rt) == 0 { 247 | rt = fields 248 | } else { 249 | rt = g.StringSliceIntersect(rt, fields) 250 | if len(rt) == 0 { 251 | return []string{}, nil 252 | } 253 | } 254 | } 255 | 256 | return rt, nil 257 | } 258 | 259 | func SearchField(q, start string, limit int) ([]string, error) { 260 | rt := make([]string, 0) 261 | 262 | err := g.KVDB.View(func(tx *bolt.Tx) error { 263 | b := tx.Bucket([]byte(g.FIELDS_BUCKET)) 264 | if b == nil { 265 | return fmt.Errorf("non-exists-bucket:%s", g.FIELDS_BUCKET) 266 | } 267 | 268 | var buf bytes.Buffer 269 | buf.WriteString(q) 270 | prefix := buf.Bytes() 271 | 272 | i := 0 273 | c := b.Cursor() 274 | var k []byte 275 | if start == "" { 276 | k, _ = c.Seek(prefix) 277 | } else { 278 | c.Seek([]byte(start)) 279 | k, _ = c.Next() 280 | } 281 | 282 | for ; i < limit && k != nil && bytes.HasPrefix(k, prefix); k, _ = c.Next() { 283 | i++ 284 | rt = append(rt, string(k)) 285 | } 286 | return nil 287 | }) 288 | 289 | if err != nil { 290 | return []string{}, err 291 | } 292 | 293 | return rt, nil 294 | } 295 | 296 | func SearchFieldValue(f, q, start string, limit int) ([]string, error) { 297 | rt := make([]string, 0) 298 | 299 | err := g.KVDB.View(func(tx *bolt.Tx) error { 300 | bk := g.FVALUE_BUCKET_PREFIX + f 301 | b := tx.Bucket([]byte(bk)) 302 | if b == nil { 303 | return fmt.Errorf("non-exists-bucket:%s", bk) 304 | } 305 | 306 | var buf bytes.Buffer 307 | buf.WriteString(q) 308 | prefix := buf.Bytes() 309 | 310 | i := 0 311 | c := b.Cursor() 312 | var k []byte 313 | if start == "" { 314 | k, _ = c.Seek(prefix) 315 | } else { 316 | c.Seek([]byte(start)) 317 | k, _ = c.Next() 318 | } 319 | 320 | for ; i < limit && k != nil && bytes.HasPrefix(k, prefix); k, _ = c.Next() { 321 | i++ 322 | rt = append(rt, string(k)) 323 | } 324 | return nil 325 | }) 326 | 327 | if err != nil { 328 | return []string{}, err 329 | } 330 | 331 | return rt, nil 332 | } 333 | 334 | func QueryFieldValueByTerms(terms []string, start *Offset, limit int, f, q string) ([]string, *Offset, error) { 335 | rt := make([]string, 0) 336 | if f == "" { 337 | return rt, nil, fmt.Errorf("no_field") 338 | } 339 | if len(terms) == 0 { 340 | return rt, nil, fmt.Errorf("empty_terms") 341 | } 342 | 343 | var rt_offset *Offset 344 | for { 345 | docs, new_offset, err := QueryDocByTerms(terms, start, limit*2) 346 | if err != nil { 347 | return rt, nil, err 348 | } 349 | start = new_offset 350 | 351 | if len(docs) == 0 { 352 | break 353 | } 354 | for _, d := range docs { 355 | rt_offset = &Offset{ 356 | Bucket: new_offset.Bucket, 357 | Position: []byte(d.ID), 358 | } 359 | 360 | if len(rt) >= limit { 361 | goto END 362 | } 363 | 364 | f_dict := d.TermDict() 365 | if fv, ok := f_dict[f]; ok && strings.Contains(fv, q) { 366 | rt = append(rt, fv) 367 | } 368 | } 369 | } 370 | END: 371 | return rt, rt_offset, nil 372 | } 373 | -------------------------------------------------------------------------------- /main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "flag" 5 | "fmt" 6 | "log" 7 | "os" 8 | "os/signal" 9 | "syscall" 10 | 11 | "github.com/laiwei/falcon-index/g" 12 | "github.com/laiwei/falcon-index/http" 13 | "github.com/laiwei/falcon-index/index" 14 | ) 15 | 16 | func start_signal(pid int, cfg *g.GlobalConfig) { 17 | sigs := make(chan os.Signal, 1) 18 | log.Println(pid, "register signal notify") 19 | signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM, syscall.SIGQUIT) 20 | 21 | for { 22 | s := <-sigs 23 | log.Println("recv", s) 24 | 25 | switch s { 26 | case syscall.SIGINT, syscall.SIGTERM, syscall.SIGQUIT: 27 | log.Println("gracefull shut down") 28 | g.CloseDB() 29 | log.Println("db closed") 30 | log.Println(pid, "exit") 31 | os.Exit(0) 32 | } 33 | } 34 | } 35 | 36 | func main() { 37 | cfg := flag.String("c", "cfg.json", "specify config file") 38 | version := flag.Bool("v", false, "show version") 39 | versionGit := flag.Bool("vg", false, "show version and git commit log") 40 | server := flag.Bool("s", false, "run as server or build client tool") 41 | flag.Parse() 42 | 43 | if *version { 44 | fmt.Println(g.VERSION) 45 | os.Exit(0) 46 | } 47 | if *versionGit { 48 | fmt.Println(g.VERSION, g.COMMIT) 49 | os.Exit(0) 50 | } 51 | 52 | g.ParseConfig(*cfg) 53 | if *server { 54 | //run as server 55 | g.OpenDB() 56 | go http.Start() 57 | start_signal(os.Getpid(), g.Config()) 58 | } else { 59 | //build index tool 60 | g.OpenDB() 61 | defer g.CloseDB() 62 | index.BuildIndex() 63 | } 64 | 65 | } 66 | -------------------------------------------------------------------------------- /main_test.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import "testing" 4 | import "fmt" 5 | import "github.com/laiwei/falcon-index/g" 6 | import "github.com/laiwei/falcon-index/index" 7 | 8 | func init() { 9 | g.OpenDB() 10 | } 11 | 12 | func BenchmarkQueryDocByTerm(b *testing.B) { 13 | for i := 0; i < b.N; i++ { 14 | index.QueryDocByTerm("home=bj", []byte(""), 50) 15 | } 16 | } 17 | 18 | func BenchmarkQueryDocByTerms(b *testing.B) { 19 | for i := 0; i < b.N; i++ { 20 | index.QueryDocByTerms([]string{"home=bj", "metric=cpu.idle"}, nil, 5) 21 | } 22 | } 23 | 24 | func BenchmarkQueryFieldByTerm(b *testing.B) { 25 | for i := 0; i < b.N; i++ { 26 | index.QueryFieldByTerm("home=bj") 27 | } 28 | } 29 | 30 | func BenchmarkQueryFieldByTerms(b *testing.B) { 31 | for i := 0; i < b.N; i++ { 32 | index.QueryFieldByTerms([]string{"home=bj", "metric=cpu.idle"}) 33 | } 34 | } 35 | 36 | func TestQueryDocByTerm(t *testing.T) { 37 | docs, err := index.QueryDocByTerm("home=bj", []byte(""), 2) 38 | for _, doc := range docs { 39 | fmt.Printf("%v, %v\n", doc, err) 40 | } 41 | } 42 | func TestQueryDocByTerms(t *testing.T) { 43 | offset := &index.Offset{ 44 | Bucket: []byte("endpoint=laiwei-test1"), 45 | Position: []byte("5bd9dee871d734fc94aaf7ebbe40610f"), 46 | } 47 | docs, offset, err := index.QueryDocByTerms([]string{"home=bj", "endpoint=laiwei-test1"}, nil, 10) 48 | if err != nil { 49 | t.Fatal(err) 50 | } 51 | if len(docs) != 1 { 52 | t.Fatal(fmt.Errorf("return docs size not match 1")) 53 | } 54 | fmt.Printf("---TestQueryDocByTerms %#v %v %v, %v\n", docs, string(offset.Bucket), string(offset.Position), err) 55 | } 56 | 57 | func TestQueryFieldByTerm(t *testing.T) { 58 | rt, err := index.QueryFieldByTerm("home=bj") 59 | fmt.Printf("%s, %v\n", rt, err) 60 | } 61 | 62 | func TestQueryFieldByTerms(t *testing.T) { 63 | rt, err := index.QueryFieldByTerms([]string{"home=bj", "metric=cpu.idle"}) 64 | fmt.Printf("%s, %v\n", rt, err) 65 | } 66 | 67 | func TestSearchField(t *testing.T) { 68 | rt, err := index.SearchField("", "", 100) 69 | fmt.Printf("%s, %v\n", rt, err) 70 | } 71 | 72 | func TestSearchFieldValue(t *testing.T) { 73 | rt, err := index.SearchFieldValue("endpoint", "laiwei", "", 10) 74 | fmt.Printf("%s, %v\n", rt, err) 75 | } 76 | 77 | func TestQueryFieldValueByTerms(t *testing.T) { 78 | start := &index.Offset{ 79 | Bucket: []byte("metric=cpu.idle"), Position: []byte("007274a9c1dd1701eb6450ebd4e521e8"), 80 | } 81 | rt, offset, err := index.QueryFieldValueByTerms([]string{"home=bj", "metric=cpu.idle"}, start, 2, "endpoint", "1") 82 | if err != nil { 83 | t.Fatal(err) 84 | } 85 | if len(rt) != 2 { 86 | t.Fatal(fmt.Errorf("result size not match")) 87 | } 88 | if offset == nil { 89 | t.Fatal(fmt.Errorf("return offset is nil")) 90 | } 91 | if string(offset.Position) != "0172b9796501674f61e1d3548b52104c" { 92 | t.Fatal(fmt.Errorf("return position not match 0172b9796501674f61e1d3548b52104c")) 93 | } 94 | fmt.Printf("-----TestQueryFieldValueByTerms: %s, %s, %s, %v\n", rt, offset.Bucket, offset.Position, err) 95 | } 96 | -------------------------------------------------------------------------------- /test-metadata.json: -------------------------------------------------------------------------------- 1 | [ 2 | {"endpoint": "laiwei-test0", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 3 | , 4 | {"endpoint": "laiwei-test1", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 5 | , 6 | {"endpoint": "laiwei-test2", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 7 | , 8 | {"endpoint": "laiwei-test3", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 9 | , 10 | {"endpoint": "laiwei-test4", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 11 | , 12 | {"endpoint": "laiwei-test5", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 13 | , 14 | {"endpoint": "laiwei-test6", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 15 | , 16 | {"endpoint": "laiwei-test7", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 17 | , 18 | {"endpoint": "laiwei-test8", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 19 | , 20 | {"endpoint": "laiwei-test9", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 21 | , 22 | {"endpoint": "laiwei-test10", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 23 | , 24 | {"endpoint": "laiwei-test11", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 25 | , 26 | {"endpoint": "laiwei-test12", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 27 | , 28 | {"endpoint": "laiwei-test13", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 29 | , 30 | {"endpoint": "laiwei-test14", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 31 | , 32 | {"endpoint": "laiwei-test15", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 33 | , 34 | {"endpoint": "laiwei-test16", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 35 | , 36 | {"endpoint": "laiwei-test17", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 37 | , 38 | {"endpoint": "laiwei-test18", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 39 | , 40 | {"endpoint": "laiwei-test19", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 41 | , 42 | {"endpoint": "laiwei-test20", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 43 | , 44 | {"endpoint": "laiwei-test21", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 45 | , 46 | {"endpoint": "laiwei-test22", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 47 | , 48 | {"endpoint": "laiwei-test23", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 49 | , 50 | {"endpoint": "laiwei-test24", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 51 | , 52 | {"endpoint": "laiwei-test25", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 53 | , 54 | {"endpoint": "laiwei-test26", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 55 | , 56 | {"endpoint": "laiwei-test27", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 57 | , 58 | {"endpoint": "laiwei-test28", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 59 | , 60 | {"endpoint": "laiwei-test29", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 61 | , 62 | {"endpoint": "laiwei-test30", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 63 | , 64 | {"endpoint": "laiwei-test31", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 65 | , 66 | {"endpoint": "laiwei-test32", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 67 | , 68 | {"endpoint": "laiwei-test33", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 69 | , 70 | {"endpoint": "laiwei-test34", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 71 | , 72 | {"endpoint": "laiwei-test35", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 73 | , 74 | {"endpoint": "laiwei-test36", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 75 | , 76 | {"endpoint": "laiwei-test37", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 77 | , 78 | {"endpoint": "laiwei-test38", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 79 | , 80 | {"endpoint": "laiwei-test39", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 81 | , 82 | {"endpoint": "laiwei-test40", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 83 | , 84 | {"endpoint": "laiwei-test41", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 85 | , 86 | {"endpoint": "laiwei-test42", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 87 | , 88 | {"endpoint": "laiwei-test43", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 89 | , 90 | {"endpoint": "laiwei-test44", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 91 | , 92 | {"endpoint": "laiwei-test45", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 93 | , 94 | {"endpoint": "laiwei-test46", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 95 | , 96 | {"endpoint": "laiwei-test47", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 97 | , 98 | {"endpoint": "laiwei-test48", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 99 | , 100 | {"endpoint": "laiwei-test49", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 101 | , 102 | {"endpoint": "laiwei-test50", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 103 | , 104 | {"endpoint": "laiwei-test51", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 105 | , 106 | {"endpoint": "laiwei-test52", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 107 | , 108 | {"endpoint": "laiwei-test53", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 109 | , 110 | {"endpoint": "laiwei-test54", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 111 | , 112 | {"endpoint": "laiwei-test55", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 113 | , 114 | {"endpoint": "laiwei-test56", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 115 | , 116 | {"endpoint": "laiwei-test57", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 117 | , 118 | {"endpoint": "laiwei-test58", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 119 | , 120 | {"endpoint": "laiwei-test59", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 121 | , 122 | {"endpoint": "laiwei-test60", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 123 | , 124 | {"endpoint": "laiwei-test61", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 125 | , 126 | {"endpoint": "laiwei-test62", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 127 | , 128 | {"endpoint": "laiwei-test63", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 129 | , 130 | {"endpoint": "laiwei-test64", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 131 | , 132 | {"endpoint": "laiwei-test65", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 133 | , 134 | {"endpoint": "laiwei-test66", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 135 | , 136 | {"endpoint": "laiwei-test67", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 137 | , 138 | {"endpoint": "laiwei-test68", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 139 | , 140 | {"endpoint": "laiwei-test69", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 141 | , 142 | {"endpoint": "laiwei-test70", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 143 | , 144 | {"endpoint": "laiwei-test71", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 145 | , 146 | {"endpoint": "laiwei-test72", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 147 | , 148 | {"endpoint": "laiwei-test73", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 149 | , 150 | {"endpoint": "laiwei-test74", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 151 | , 152 | {"endpoint": "laiwei-test75", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 153 | , 154 | {"endpoint": "laiwei-test76", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 155 | , 156 | {"endpoint": "laiwei-test77", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 157 | , 158 | {"endpoint": "laiwei-test78", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 159 | , 160 | {"endpoint": "laiwei-test79", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 161 | , 162 | {"endpoint": "laiwei-test80", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 163 | , 164 | {"endpoint": "laiwei-test81", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 165 | , 166 | {"endpoint": "laiwei-test82", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 167 | , 168 | {"endpoint": "laiwei-test83", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 169 | , 170 | {"endpoint": "laiwei-test84", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 171 | , 172 | {"endpoint": "laiwei-test85", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 173 | , 174 | {"endpoint": "laiwei-test86", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 175 | , 176 | {"endpoint": "laiwei-test87", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 177 | , 178 | {"endpoint": "laiwei-test88", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 179 | , 180 | {"endpoint": "laiwei-test89", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 181 | , 182 | {"endpoint": "laiwei-test90", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 183 | , 184 | {"endpoint": "laiwei-test91", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 185 | , 186 | {"endpoint": "laiwei-test92", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 187 | , 188 | {"endpoint": "laiwei-test93", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 189 | , 190 | {"endpoint": "laiwei-test94", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 191 | , 192 | {"endpoint": "laiwei-test95", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 193 | , 194 | {"endpoint": "laiwei-test96", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 195 | , 196 | {"endpoint": "laiwei-test97", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 197 | , 198 | {"endpoint": "laiwei-test98", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 199 | , 200 | {"endpoint": "laiwei-test99", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 201 | , 202 | {"endpoint": "laiwei-test100", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 203 | , 204 | {"endpoint": "laiwei-test101", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 205 | , 206 | {"endpoint": "laiwei-test102", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 207 | , 208 | {"endpoint": "laiwei-test103", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 209 | , 210 | {"endpoint": "laiwei-test104", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 211 | , 212 | {"endpoint": "laiwei-test105", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 213 | , 214 | {"endpoint": "laiwei-test106", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 215 | , 216 | {"endpoint": "laiwei-test107", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 217 | , 218 | {"endpoint": "laiwei-test108", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 219 | , 220 | {"endpoint": "laiwei-test109", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 221 | , 222 | {"endpoint": "laiwei-test110", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 223 | , 224 | {"endpoint": "laiwei-test111", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 225 | , 226 | {"endpoint": "laiwei-test112", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 227 | , 228 | {"endpoint": "laiwei-test113", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 229 | , 230 | {"endpoint": "laiwei-test114", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 231 | , 232 | {"endpoint": "laiwei-test115", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 233 | , 234 | {"endpoint": "laiwei-test116", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 235 | , 236 | {"endpoint": "laiwei-test117", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 237 | , 238 | {"endpoint": "laiwei-test118", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 239 | , 240 | {"endpoint": "laiwei-test119", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 241 | , 242 | {"endpoint": "laiwei-test120", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 243 | , 244 | {"endpoint": "laiwei-test121", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 245 | , 246 | {"endpoint": "laiwei-test122", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 247 | , 248 | {"endpoint": "laiwei-test123", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 249 | , 250 | {"endpoint": "laiwei-test124", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 251 | , 252 | {"endpoint": "laiwei-test125", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 253 | , 254 | {"endpoint": "laiwei-test126", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 255 | , 256 | {"endpoint": "laiwei-test127", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 257 | , 258 | {"endpoint": "laiwei-test128", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 259 | , 260 | {"endpoint": "laiwei-test129", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 261 | , 262 | {"endpoint": "laiwei-test130", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 263 | , 264 | {"endpoint": "laiwei-test131", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 265 | , 266 | {"endpoint": "laiwei-test132", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 267 | , 268 | {"endpoint": "laiwei-test133", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 269 | , 270 | {"endpoint": "laiwei-test134", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 271 | , 272 | {"endpoint": "laiwei-test135", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 273 | , 274 | {"endpoint": "laiwei-test136", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 275 | , 276 | {"endpoint": "laiwei-test137", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 277 | , 278 | {"endpoint": "laiwei-test138", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 279 | , 280 | {"endpoint": "laiwei-test139", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 281 | , 282 | {"endpoint": "laiwei-test140", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 283 | , 284 | {"endpoint": "laiwei-test141", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 285 | , 286 | {"endpoint": "laiwei-test142", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 287 | , 288 | {"endpoint": "laiwei-test143", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 289 | , 290 | {"endpoint": "laiwei-test144", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 291 | , 292 | {"endpoint": "laiwei-test145", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 293 | , 294 | {"endpoint": "laiwei-test146", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 295 | , 296 | {"endpoint": "laiwei-test147", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 297 | , 298 | {"endpoint": "laiwei-test148", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 299 | , 300 | {"endpoint": "laiwei-test149", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 301 | , 302 | {"endpoint": "laiwei-test150", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 303 | , 304 | {"endpoint": "laiwei-test151", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 305 | , 306 | {"endpoint": "laiwei-test152", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 307 | , 308 | {"endpoint": "laiwei-test153", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 309 | , 310 | {"endpoint": "laiwei-test154", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 311 | , 312 | {"endpoint": "laiwei-test155", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 313 | , 314 | {"endpoint": "laiwei-test156", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 315 | , 316 | {"endpoint": "laiwei-test157", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 317 | , 318 | {"endpoint": "laiwei-test158", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 319 | , 320 | {"endpoint": "laiwei-test159", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 321 | , 322 | {"endpoint": "laiwei-test160", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 323 | , 324 | {"endpoint": "laiwei-test161", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 325 | , 326 | {"endpoint": "laiwei-test162", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 327 | , 328 | {"endpoint": "laiwei-test163", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 329 | , 330 | {"endpoint": "laiwei-test164", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 331 | , 332 | {"endpoint": "laiwei-test165", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 333 | , 334 | {"endpoint": "laiwei-test166", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 335 | , 336 | {"endpoint": "laiwei-test167", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 337 | , 338 | {"endpoint": "laiwei-test168", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 339 | , 340 | {"endpoint": "laiwei-test169", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 341 | , 342 | {"endpoint": "laiwei-test170", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 343 | , 344 | {"endpoint": "laiwei-test171", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 345 | , 346 | {"endpoint": "laiwei-test172", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 347 | , 348 | {"endpoint": "laiwei-test173", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 349 | , 350 | {"endpoint": "laiwei-test174", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 351 | , 352 | {"endpoint": "laiwei-test175", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 353 | , 354 | {"endpoint": "laiwei-test176", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 355 | , 356 | {"endpoint": "laiwei-test177", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 357 | , 358 | {"endpoint": "laiwei-test178", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 359 | , 360 | {"endpoint": "laiwei-test179", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 361 | , 362 | {"endpoint": "laiwei-test180", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 363 | , 364 | {"endpoint": "laiwei-test181", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 365 | , 366 | {"endpoint": "laiwei-test182", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 367 | , 368 | {"endpoint": "laiwei-test183", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 369 | , 370 | {"endpoint": "laiwei-test184", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 371 | , 372 | {"endpoint": "laiwei-test185", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 373 | , 374 | {"endpoint": "laiwei-test186", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 375 | , 376 | {"endpoint": "laiwei-test187", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 377 | , 378 | {"endpoint": "laiwei-test188", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 379 | , 380 | {"endpoint": "laiwei-test189", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 381 | , 382 | {"endpoint": "laiwei-test190", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 383 | , 384 | {"endpoint": "laiwei-test191", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 385 | , 386 | {"endpoint": "laiwei-test192", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 387 | , 388 | {"endpoint": "laiwei-test193", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 389 | , 390 | {"endpoint": "laiwei-test194", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 391 | , 392 | {"endpoint": "laiwei-test195", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 393 | , 394 | {"endpoint": "laiwei-test196", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 395 | , 396 | {"endpoint": "laiwei-test197", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 397 | , 398 | {"endpoint": "laiwei-test198", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 399 | , 400 | {"endpoint": "laiwei-test199", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 401 | , 402 | {"endpoint": "laiwei-test200", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 403 | , 404 | {"endpoint": "laiwei-test201", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 405 | , 406 | {"endpoint": "laiwei-test202", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 407 | , 408 | {"endpoint": "laiwei-test203", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 409 | , 410 | {"endpoint": "laiwei-test204", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 411 | , 412 | {"endpoint": "laiwei-test205", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 413 | , 414 | {"endpoint": "laiwei-test206", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 415 | , 416 | {"endpoint": "laiwei-test207", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 417 | , 418 | {"endpoint": "laiwei-test208", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 419 | , 420 | {"endpoint": "laiwei-test209", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 421 | , 422 | {"endpoint": "laiwei-test210", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 423 | , 424 | {"endpoint": "laiwei-test211", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 425 | , 426 | {"endpoint": "laiwei-test212", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 427 | , 428 | {"endpoint": "laiwei-test213", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 429 | , 430 | {"endpoint": "laiwei-test214", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 431 | , 432 | {"endpoint": "laiwei-test215", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 433 | , 434 | {"endpoint": "laiwei-test216", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 435 | , 436 | {"endpoint": "laiwei-test217", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 437 | , 438 | {"endpoint": "laiwei-test218", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 439 | , 440 | {"endpoint": "laiwei-test219", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 441 | , 442 | {"endpoint": "laiwei-test220", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 443 | , 444 | {"endpoint": "laiwei-test221", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 445 | , 446 | {"endpoint": "laiwei-test222", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 447 | , 448 | {"endpoint": "laiwei-test223", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 449 | , 450 | {"endpoint": "laiwei-test224", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 451 | , 452 | {"endpoint": "laiwei-test225", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 453 | , 454 | {"endpoint": "laiwei-test226", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 455 | , 456 | {"endpoint": "laiwei-test227", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 457 | , 458 | {"endpoint": "laiwei-test228", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 459 | , 460 | {"endpoint": "laiwei-test229", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 461 | , 462 | {"endpoint": "laiwei-test230", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 463 | , 464 | {"endpoint": "laiwei-test231", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 465 | , 466 | {"endpoint": "laiwei-test232", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 467 | , 468 | {"endpoint": "laiwei-test233", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 469 | , 470 | {"endpoint": "laiwei-test234", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 471 | , 472 | {"endpoint": "laiwei-test235", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 473 | , 474 | {"endpoint": "laiwei-test236", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 475 | , 476 | {"endpoint": "laiwei-test237", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 477 | , 478 | {"endpoint": "laiwei-test238", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 479 | , 480 | {"endpoint": "laiwei-test239", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 481 | , 482 | {"endpoint": "laiwei-test240", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 483 | , 484 | {"endpoint": "laiwei-test241", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 485 | , 486 | {"endpoint": "laiwei-test242", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 487 | , 488 | {"endpoint": "laiwei-test243", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 489 | , 490 | {"endpoint": "laiwei-test244", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 491 | , 492 | {"endpoint": "laiwei-test245", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 493 | , 494 | {"endpoint": "laiwei-test246", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 495 | , 496 | {"endpoint": "laiwei-test247", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 497 | , 498 | {"endpoint": "laiwei-test248", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 499 | , 500 | {"endpoint": "laiwei-test249", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 501 | , 502 | {"endpoint": "laiwei-test250", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 503 | , 504 | {"endpoint": "laiwei-test251", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 505 | , 506 | {"endpoint": "laiwei-test252", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 507 | , 508 | {"endpoint": "laiwei-test253", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 509 | , 510 | {"endpoint": "laiwei-test254", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 511 | , 512 | {"endpoint": "laiwei-test255", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 513 | , 514 | {"endpoint": "laiwei-test256", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 515 | , 516 | {"endpoint": "laiwei-test257", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 517 | , 518 | {"endpoint": "laiwei-test258", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 519 | , 520 | {"endpoint": "laiwei-test259", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 521 | , 522 | {"endpoint": "laiwei-test260", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 523 | , 524 | {"endpoint": "laiwei-test261", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 525 | , 526 | {"endpoint": "laiwei-test262", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 527 | , 528 | {"endpoint": "laiwei-test263", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 529 | , 530 | {"endpoint": "laiwei-test264", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 531 | , 532 | {"endpoint": "laiwei-test265", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 533 | , 534 | {"endpoint": "laiwei-test266", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 535 | , 536 | {"endpoint": "laiwei-test267", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 537 | , 538 | {"endpoint": "laiwei-test268", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 539 | , 540 | {"endpoint": "laiwei-test269", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 541 | , 542 | {"endpoint": "laiwei-test270", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 543 | , 544 | {"endpoint": "laiwei-test271", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 545 | , 546 | {"endpoint": "laiwei-test272", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 547 | , 548 | {"endpoint": "laiwei-test273", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 549 | , 550 | {"endpoint": "laiwei-test274", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 551 | , 552 | {"endpoint": "laiwei-test275", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 553 | , 554 | {"endpoint": "laiwei-test276", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 555 | , 556 | {"endpoint": "laiwei-test277", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 557 | , 558 | {"endpoint": "laiwei-test278", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 559 | , 560 | {"endpoint": "laiwei-test279", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 561 | , 562 | {"endpoint": "laiwei-test280", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 563 | , 564 | {"endpoint": "laiwei-test281", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 565 | , 566 | {"endpoint": "laiwei-test282", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 567 | , 568 | {"endpoint": "laiwei-test283", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 569 | , 570 | {"endpoint": "laiwei-test284", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 571 | , 572 | {"endpoint": "laiwei-test285", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 573 | , 574 | {"endpoint": "laiwei-test286", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 575 | , 576 | {"endpoint": "laiwei-test287", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 577 | , 578 | {"endpoint": "laiwei-test288", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 579 | , 580 | {"endpoint": "laiwei-test289", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 581 | , 582 | {"endpoint": "laiwei-test290", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 583 | , 584 | {"endpoint": "laiwei-test291", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 585 | , 586 | {"endpoint": "laiwei-test292", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 587 | , 588 | {"endpoint": "laiwei-test293", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 589 | , 590 | {"endpoint": "laiwei-test294", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 591 | , 592 | {"endpoint": "laiwei-test295", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 593 | , 594 | {"endpoint": "laiwei-test296", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 595 | , 596 | {"endpoint": "laiwei-test297", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 597 | , 598 | {"endpoint": "laiwei-test298", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 599 | , 600 | {"endpoint": "laiwei-test299", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 601 | , 602 | {"endpoint": "laiwei-test300", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 603 | , 604 | {"endpoint": "laiwei-test301", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 605 | , 606 | {"endpoint": "laiwei-test302", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 607 | , 608 | {"endpoint": "laiwei-test303", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 609 | , 610 | {"endpoint": "laiwei-test304", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 611 | , 612 | {"endpoint": "laiwei-test305", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 613 | , 614 | {"endpoint": "laiwei-test306", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 615 | , 616 | {"endpoint": "laiwei-test307", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 617 | , 618 | {"endpoint": "laiwei-test308", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 619 | , 620 | {"endpoint": "laiwei-test309", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 621 | , 622 | {"endpoint": "laiwei-test310", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 623 | , 624 | {"endpoint": "laiwei-test311", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 625 | , 626 | {"endpoint": "laiwei-test312", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 627 | , 628 | {"endpoint": "laiwei-test313", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 629 | , 630 | {"endpoint": "laiwei-test314", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 631 | , 632 | {"endpoint": "laiwei-test315", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 633 | , 634 | {"endpoint": "laiwei-test316", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 635 | , 636 | {"endpoint": "laiwei-test317", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 637 | , 638 | {"endpoint": "laiwei-test318", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 639 | , 640 | {"endpoint": "laiwei-test319", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 641 | , 642 | {"endpoint": "laiwei-test320", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 643 | , 644 | {"endpoint": "laiwei-test321", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 645 | , 646 | {"endpoint": "laiwei-test322", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 647 | , 648 | {"endpoint": "laiwei-test323", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 649 | , 650 | {"endpoint": "laiwei-test324", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 651 | , 652 | {"endpoint": "laiwei-test325", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 653 | , 654 | {"endpoint": "laiwei-test326", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 655 | , 656 | {"endpoint": "laiwei-test327", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 657 | , 658 | {"endpoint": "laiwei-test328", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 659 | , 660 | {"endpoint": "laiwei-test329", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 661 | , 662 | {"endpoint": "laiwei-test330", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 663 | , 664 | {"endpoint": "laiwei-test331", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 665 | , 666 | {"endpoint": "laiwei-test332", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 667 | , 668 | {"endpoint": "laiwei-test333", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 669 | , 670 | {"endpoint": "laiwei-test334", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 671 | , 672 | {"endpoint": "laiwei-test335", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 673 | , 674 | {"endpoint": "laiwei-test336", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 675 | , 676 | {"endpoint": "laiwei-test337", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 677 | , 678 | {"endpoint": "laiwei-test338", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 679 | , 680 | {"endpoint": "laiwei-test339", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 681 | , 682 | {"endpoint": "laiwei-test340", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 683 | , 684 | {"endpoint": "laiwei-test341", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 685 | , 686 | {"endpoint": "laiwei-test342", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 687 | , 688 | {"endpoint": "laiwei-test343", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 689 | , 690 | {"endpoint": "laiwei-test344", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 691 | , 692 | {"endpoint": "laiwei-test345", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 693 | , 694 | {"endpoint": "laiwei-test346", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 695 | , 696 | {"endpoint": "laiwei-test347", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 697 | , 698 | {"endpoint": "laiwei-test348", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 699 | , 700 | {"endpoint": "laiwei-test349", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 701 | , 702 | {"endpoint": "laiwei-test350", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 703 | , 704 | {"endpoint": "laiwei-test351", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 705 | , 706 | {"endpoint": "laiwei-test352", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 707 | , 708 | {"endpoint": "laiwei-test353", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 709 | , 710 | {"endpoint": "laiwei-test354", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 711 | , 712 | {"endpoint": "laiwei-test355", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 713 | , 714 | {"endpoint": "laiwei-test356", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 715 | , 716 | {"endpoint": "laiwei-test357", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 717 | , 718 | {"endpoint": "laiwei-test358", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 719 | , 720 | {"endpoint": "laiwei-test359", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 721 | , 722 | {"endpoint": "laiwei-test360", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 723 | , 724 | {"endpoint": "laiwei-test361", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 725 | , 726 | {"endpoint": "laiwei-test362", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 727 | , 728 | {"endpoint": "laiwei-test363", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 729 | , 730 | {"endpoint": "laiwei-test364", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 731 | , 732 | {"endpoint": "laiwei-test365", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 733 | , 734 | {"endpoint": "laiwei-test366", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 735 | , 736 | {"endpoint": "laiwei-test367", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 737 | , 738 | {"endpoint": "laiwei-test368", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 739 | , 740 | {"endpoint": "laiwei-test369", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 741 | , 742 | {"endpoint": "laiwei-test370", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 743 | , 744 | {"endpoint": "laiwei-test371", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 745 | , 746 | {"endpoint": "laiwei-test372", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 747 | , 748 | {"endpoint": "laiwei-test373", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 749 | , 750 | {"endpoint": "laiwei-test374", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 751 | , 752 | {"endpoint": "laiwei-test375", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 753 | , 754 | {"endpoint": "laiwei-test376", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 755 | , 756 | {"endpoint": "laiwei-test377", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 757 | , 758 | {"endpoint": "laiwei-test378", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 759 | , 760 | {"endpoint": "laiwei-test379", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 761 | , 762 | {"endpoint": "laiwei-test380", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 763 | , 764 | {"endpoint": "laiwei-test381", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 765 | , 766 | {"endpoint": "laiwei-test382", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 767 | , 768 | {"endpoint": "laiwei-test383", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 769 | , 770 | {"endpoint": "laiwei-test384", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 771 | , 772 | {"endpoint": "laiwei-test385", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 773 | , 774 | {"endpoint": "laiwei-test386", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 775 | , 776 | {"endpoint": "laiwei-test387", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 777 | , 778 | {"endpoint": "laiwei-test388", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 779 | , 780 | {"endpoint": "laiwei-test389", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 781 | , 782 | {"endpoint": "laiwei-test390", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 783 | , 784 | {"endpoint": "laiwei-test391", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 785 | , 786 | {"endpoint": "laiwei-test392", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 787 | , 788 | {"endpoint": "laiwei-test393", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 789 | , 790 | {"endpoint": "laiwei-test394", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 791 | , 792 | {"endpoint": "laiwei-test395", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 793 | , 794 | {"endpoint": "laiwei-test396", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 795 | , 796 | {"endpoint": "laiwei-test397", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 797 | , 798 | {"endpoint": "laiwei-test398", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 799 | , 800 | {"endpoint": "laiwei-test399", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 801 | , 802 | {"endpoint": "laiwei-test400", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 803 | , 804 | {"endpoint": "laiwei-test401", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 805 | , 806 | {"endpoint": "laiwei-test402", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 807 | , 808 | {"endpoint": "laiwei-test403", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 809 | , 810 | {"endpoint": "laiwei-test404", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 811 | , 812 | {"endpoint": "laiwei-test405", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 813 | , 814 | {"endpoint": "laiwei-test406", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 815 | , 816 | {"endpoint": "laiwei-test407", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 817 | , 818 | {"endpoint": "laiwei-test408", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 819 | , 820 | {"endpoint": "laiwei-test409", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 821 | , 822 | {"endpoint": "laiwei-test410", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 823 | , 824 | {"endpoint": "laiwei-test411", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 825 | , 826 | {"endpoint": "laiwei-test412", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 827 | , 828 | {"endpoint": "laiwei-test413", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 829 | , 830 | {"endpoint": "laiwei-test414", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 831 | , 832 | {"endpoint": "laiwei-test415", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 833 | , 834 | {"endpoint": "laiwei-test416", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 835 | , 836 | {"endpoint": "laiwei-test417", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 837 | , 838 | {"endpoint": "laiwei-test418", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 839 | , 840 | {"endpoint": "laiwei-test419", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 841 | , 842 | {"endpoint": "laiwei-test420", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 843 | , 844 | {"endpoint": "laiwei-test421", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 845 | , 846 | {"endpoint": "laiwei-test422", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 847 | , 848 | {"endpoint": "laiwei-test423", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 849 | , 850 | {"endpoint": "laiwei-test424", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 851 | , 852 | {"endpoint": "laiwei-test425", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 853 | , 854 | {"endpoint": "laiwei-test426", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 855 | , 856 | {"endpoint": "laiwei-test427", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 857 | , 858 | {"endpoint": "laiwei-test428", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 859 | , 860 | {"endpoint": "laiwei-test429", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 861 | , 862 | {"endpoint": "laiwei-test430", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 863 | , 864 | {"endpoint": "laiwei-test431", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 865 | , 866 | {"endpoint": "laiwei-test432", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 867 | , 868 | {"endpoint": "laiwei-test433", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 869 | , 870 | {"endpoint": "laiwei-test434", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 871 | , 872 | {"endpoint": "laiwei-test435", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 873 | , 874 | {"endpoint": "laiwei-test436", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 875 | , 876 | {"endpoint": "laiwei-test437", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 877 | , 878 | {"endpoint": "laiwei-test438", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 879 | , 880 | {"endpoint": "laiwei-test439", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 881 | , 882 | {"endpoint": "laiwei-test440", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 883 | , 884 | {"endpoint": "laiwei-test441", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 885 | , 886 | {"endpoint": "laiwei-test442", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 887 | , 888 | {"endpoint": "laiwei-test443", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 889 | , 890 | {"endpoint": "laiwei-test444", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 891 | , 892 | {"endpoint": "laiwei-test445", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 893 | , 894 | {"endpoint": "laiwei-test446", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 895 | , 896 | {"endpoint": "laiwei-test447", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 897 | , 898 | {"endpoint": "laiwei-test448", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 899 | , 900 | {"endpoint": "laiwei-test449", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 901 | , 902 | {"endpoint": "laiwei-test450", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 903 | , 904 | {"endpoint": "laiwei-test451", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 905 | , 906 | {"endpoint": "laiwei-test452", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 907 | , 908 | {"endpoint": "laiwei-test453", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 909 | , 910 | {"endpoint": "laiwei-test454", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 911 | , 912 | {"endpoint": "laiwei-test455", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 913 | , 914 | {"endpoint": "laiwei-test456", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 915 | , 916 | {"endpoint": "laiwei-test457", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 917 | , 918 | {"endpoint": "laiwei-test458", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 919 | , 920 | {"endpoint": "laiwei-test459", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 921 | , 922 | {"endpoint": "laiwei-test460", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 923 | , 924 | {"endpoint": "laiwei-test461", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 925 | , 926 | {"endpoint": "laiwei-test462", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 927 | , 928 | {"endpoint": "laiwei-test463", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 929 | , 930 | {"endpoint": "laiwei-test464", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 931 | , 932 | {"endpoint": "laiwei-test465", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 933 | , 934 | {"endpoint": "laiwei-test466", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 935 | , 936 | {"endpoint": "laiwei-test467", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 937 | , 938 | {"endpoint": "laiwei-test468", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 939 | , 940 | {"endpoint": "laiwei-test469", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 941 | , 942 | {"endpoint": "laiwei-test470", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 943 | , 944 | {"endpoint": "laiwei-test471", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 945 | , 946 | {"endpoint": "laiwei-test472", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 947 | , 948 | {"endpoint": "laiwei-test473", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 949 | , 950 | {"endpoint": "laiwei-test474", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 951 | , 952 | {"endpoint": "laiwei-test475", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 953 | , 954 | {"endpoint": "laiwei-test476", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 955 | , 956 | {"endpoint": "laiwei-test477", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 957 | , 958 | {"endpoint": "laiwei-test478", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 959 | , 960 | {"endpoint": "laiwei-test479", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 961 | , 962 | {"endpoint": "laiwei-test480", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 963 | , 964 | {"endpoint": "laiwei-test481", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 965 | , 966 | {"endpoint": "laiwei-test482", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 967 | , 968 | {"endpoint": "laiwei-test483", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 969 | , 970 | {"endpoint": "laiwei-test484", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 971 | , 972 | {"endpoint": "laiwei-test485", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 973 | , 974 | {"endpoint": "laiwei-test486", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 975 | , 976 | {"endpoint": "laiwei-test487", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 977 | , 978 | {"endpoint": "laiwei-test488", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 979 | , 980 | {"endpoint": "laiwei-test489", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 981 | , 982 | {"endpoint": "laiwei-test490", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 983 | , 984 | {"endpoint": "laiwei-test491", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 985 | , 986 | {"endpoint": "laiwei-test492", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 987 | , 988 | {"endpoint": "laiwei-test493", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 989 | , 990 | {"endpoint": "laiwei-test494", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 991 | , 992 | {"endpoint": "laiwei-test495", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 993 | , 994 | {"endpoint": "laiwei-test496", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 995 | , 996 | {"endpoint": "laiwei-test497", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 997 | , 998 | {"endpoint": "laiwei-test498", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 999 | , 1000 | {"endpoint": "laiwei-test499", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1001 | , 1002 | {"endpoint": "laiwei-test500", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1003 | , 1004 | {"endpoint": "laiwei-test501", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1005 | , 1006 | {"endpoint": "laiwei-test502", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1007 | , 1008 | {"endpoint": "laiwei-test503", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1009 | , 1010 | {"endpoint": "laiwei-test504", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1011 | , 1012 | {"endpoint": "laiwei-test505", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1013 | , 1014 | {"endpoint": "laiwei-test506", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1015 | , 1016 | {"endpoint": "laiwei-test507", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1017 | , 1018 | {"endpoint": "laiwei-test508", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1019 | , 1020 | {"endpoint": "laiwei-test509", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1021 | , 1022 | {"endpoint": "laiwei-test510", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1023 | , 1024 | {"endpoint": "laiwei-test511", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1025 | , 1026 | {"endpoint": "laiwei-test512", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1027 | , 1028 | {"endpoint": "laiwei-test513", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1029 | , 1030 | {"endpoint": "laiwei-test514", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1031 | , 1032 | {"endpoint": "laiwei-test515", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1033 | , 1034 | {"endpoint": "laiwei-test516", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1035 | , 1036 | {"endpoint": "laiwei-test517", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1037 | , 1038 | {"endpoint": "laiwei-test518", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1039 | , 1040 | {"endpoint": "laiwei-test519", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1041 | , 1042 | {"endpoint": "laiwei-test520", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1043 | , 1044 | {"endpoint": "laiwei-test521", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1045 | , 1046 | {"endpoint": "laiwei-test522", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1047 | , 1048 | {"endpoint": "laiwei-test523", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1049 | , 1050 | {"endpoint": "laiwei-test524", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1051 | , 1052 | {"endpoint": "laiwei-test525", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1053 | , 1054 | {"endpoint": "laiwei-test526", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1055 | , 1056 | {"endpoint": "laiwei-test527", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1057 | , 1058 | {"endpoint": "laiwei-test528", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1059 | , 1060 | {"endpoint": "laiwei-test529", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1061 | , 1062 | {"endpoint": "laiwei-test530", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1063 | , 1064 | {"endpoint": "laiwei-test531", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1065 | , 1066 | {"endpoint": "laiwei-test532", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1067 | , 1068 | {"endpoint": "laiwei-test533", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1069 | , 1070 | {"endpoint": "laiwei-test534", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1071 | , 1072 | {"endpoint": "laiwei-test535", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1073 | , 1074 | {"endpoint": "laiwei-test536", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1075 | , 1076 | {"endpoint": "laiwei-test537", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1077 | , 1078 | {"endpoint": "laiwei-test538", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1079 | , 1080 | {"endpoint": "laiwei-test539", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1081 | , 1082 | {"endpoint": "laiwei-test540", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1083 | , 1084 | {"endpoint": "laiwei-test541", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1085 | , 1086 | {"endpoint": "laiwei-test542", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1087 | , 1088 | {"endpoint": "laiwei-test543", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1089 | , 1090 | {"endpoint": "laiwei-test544", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1091 | , 1092 | {"endpoint": "laiwei-test545", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1093 | , 1094 | {"endpoint": "laiwei-test546", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1095 | , 1096 | {"endpoint": "laiwei-test547", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1097 | , 1098 | {"endpoint": "laiwei-test548", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1099 | , 1100 | {"endpoint": "laiwei-test549", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1101 | , 1102 | {"endpoint": "laiwei-test550", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1103 | , 1104 | {"endpoint": "laiwei-test551", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1105 | , 1106 | {"endpoint": "laiwei-test552", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1107 | , 1108 | {"endpoint": "laiwei-test553", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1109 | , 1110 | {"endpoint": "laiwei-test554", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1111 | , 1112 | {"endpoint": "laiwei-test555", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1113 | , 1114 | {"endpoint": "laiwei-test556", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1115 | , 1116 | {"endpoint": "laiwei-test557", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1117 | , 1118 | {"endpoint": "laiwei-test558", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1119 | , 1120 | {"endpoint": "laiwei-test559", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1121 | , 1122 | {"endpoint": "laiwei-test560", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1123 | , 1124 | {"endpoint": "laiwei-test561", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1125 | , 1126 | {"endpoint": "laiwei-test562", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1127 | , 1128 | {"endpoint": "laiwei-test563", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1129 | , 1130 | {"endpoint": "laiwei-test564", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1131 | , 1132 | {"endpoint": "laiwei-test565", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1133 | , 1134 | {"endpoint": "laiwei-test566", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1135 | , 1136 | {"endpoint": "laiwei-test567", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1137 | , 1138 | {"endpoint": "laiwei-test568", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1139 | , 1140 | {"endpoint": "laiwei-test569", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1141 | , 1142 | {"endpoint": "laiwei-test570", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1143 | , 1144 | {"endpoint": "laiwei-test571", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1145 | , 1146 | {"endpoint": "laiwei-test572", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1147 | , 1148 | {"endpoint": "laiwei-test573", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1149 | , 1150 | {"endpoint": "laiwei-test574", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1151 | , 1152 | {"endpoint": "laiwei-test575", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1153 | , 1154 | {"endpoint": "laiwei-test576", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1155 | , 1156 | {"endpoint": "laiwei-test577", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1157 | , 1158 | {"endpoint": "laiwei-test578", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1159 | , 1160 | {"endpoint": "laiwei-test579", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1161 | , 1162 | {"endpoint": "laiwei-test580", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1163 | , 1164 | {"endpoint": "laiwei-test581", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1165 | , 1166 | {"endpoint": "laiwei-test582", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1167 | , 1168 | {"endpoint": "laiwei-test583", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1169 | , 1170 | {"endpoint": "laiwei-test584", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1171 | , 1172 | {"endpoint": "laiwei-test585", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1173 | , 1174 | {"endpoint": "laiwei-test586", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1175 | , 1176 | {"endpoint": "laiwei-test587", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1177 | , 1178 | {"endpoint": "laiwei-test588", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1179 | , 1180 | {"endpoint": "laiwei-test589", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1181 | , 1182 | {"endpoint": "laiwei-test590", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1183 | , 1184 | {"endpoint": "laiwei-test591", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1185 | , 1186 | {"endpoint": "laiwei-test592", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1187 | , 1188 | {"endpoint": "laiwei-test593", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1189 | , 1190 | {"endpoint": "laiwei-test594", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1191 | , 1192 | {"endpoint": "laiwei-test595", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1193 | , 1194 | {"endpoint": "laiwei-test596", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1195 | , 1196 | {"endpoint": "laiwei-test597", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1197 | , 1198 | {"endpoint": "laiwei-test598", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1199 | , 1200 | {"endpoint": "laiwei-test599", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1201 | , 1202 | {"endpoint": "laiwei-test600", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1203 | , 1204 | {"endpoint": "laiwei-test601", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1205 | , 1206 | {"endpoint": "laiwei-test602", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1207 | , 1208 | {"endpoint": "laiwei-test603", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1209 | , 1210 | {"endpoint": "laiwei-test604", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1211 | , 1212 | {"endpoint": "laiwei-test605", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1213 | , 1214 | {"endpoint": "laiwei-test606", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1215 | , 1216 | {"endpoint": "laiwei-test607", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1217 | , 1218 | {"endpoint": "laiwei-test608", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1219 | , 1220 | {"endpoint": "laiwei-test609", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1221 | , 1222 | {"endpoint": "laiwei-test610", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1223 | , 1224 | {"endpoint": "laiwei-test611", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1225 | , 1226 | {"endpoint": "laiwei-test612", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1227 | , 1228 | {"endpoint": "laiwei-test613", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1229 | , 1230 | {"endpoint": "laiwei-test614", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1231 | , 1232 | {"endpoint": "laiwei-test615", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1233 | , 1234 | {"endpoint": "laiwei-test616", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1235 | , 1236 | {"endpoint": "laiwei-test617", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1237 | , 1238 | {"endpoint": "laiwei-test618", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1239 | , 1240 | {"endpoint": "laiwei-test619", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1241 | , 1242 | {"endpoint": "laiwei-test620", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1243 | , 1244 | {"endpoint": "laiwei-test621", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1245 | , 1246 | {"endpoint": "laiwei-test622", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1247 | , 1248 | {"endpoint": "laiwei-test623", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1249 | , 1250 | {"endpoint": "laiwei-test624", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1251 | , 1252 | {"endpoint": "laiwei-test625", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1253 | , 1254 | {"endpoint": "laiwei-test626", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1255 | , 1256 | {"endpoint": "laiwei-test627", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1257 | , 1258 | {"endpoint": "laiwei-test628", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1259 | , 1260 | {"endpoint": "laiwei-test629", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1261 | , 1262 | {"endpoint": "laiwei-test630", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1263 | , 1264 | {"endpoint": "laiwei-test631", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1265 | , 1266 | {"endpoint": "laiwei-test632", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1267 | , 1268 | {"endpoint": "laiwei-test633", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1269 | , 1270 | {"endpoint": "laiwei-test634", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1271 | , 1272 | {"endpoint": "laiwei-test635", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1273 | , 1274 | {"endpoint": "laiwei-test636", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1275 | , 1276 | {"endpoint": "laiwei-test637", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1277 | , 1278 | {"endpoint": "laiwei-test638", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1279 | , 1280 | {"endpoint": "laiwei-test639", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1281 | , 1282 | {"endpoint": "laiwei-test640", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1283 | , 1284 | {"endpoint": "laiwei-test641", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1285 | , 1286 | {"endpoint": "laiwei-test642", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1287 | , 1288 | {"endpoint": "laiwei-test643", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1289 | , 1290 | {"endpoint": "laiwei-test644", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1291 | , 1292 | {"endpoint": "laiwei-test645", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1293 | , 1294 | {"endpoint": "laiwei-test646", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1295 | , 1296 | {"endpoint": "laiwei-test647", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1297 | , 1298 | {"endpoint": "laiwei-test648", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1299 | , 1300 | {"endpoint": "laiwei-test649", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1301 | , 1302 | {"endpoint": "laiwei-test650", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1303 | , 1304 | {"endpoint": "laiwei-test651", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1305 | , 1306 | {"endpoint": "laiwei-test652", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1307 | , 1308 | {"endpoint": "laiwei-test653", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1309 | , 1310 | {"endpoint": "laiwei-test654", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1311 | , 1312 | {"endpoint": "laiwei-test655", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1313 | , 1314 | {"endpoint": "laiwei-test656", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1315 | , 1316 | {"endpoint": "laiwei-test657", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1317 | , 1318 | {"endpoint": "laiwei-test658", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1319 | , 1320 | {"endpoint": "laiwei-test659", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1321 | , 1322 | {"endpoint": "laiwei-test660", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1323 | , 1324 | {"endpoint": "laiwei-test661", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1325 | , 1326 | {"endpoint": "laiwei-test662", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1327 | , 1328 | {"endpoint": "laiwei-test663", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1329 | , 1330 | {"endpoint": "laiwei-test664", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1331 | , 1332 | {"endpoint": "laiwei-test665", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1333 | , 1334 | {"endpoint": "laiwei-test666", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1335 | , 1336 | {"endpoint": "laiwei-test667", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1337 | , 1338 | {"endpoint": "laiwei-test668", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1339 | , 1340 | {"endpoint": "laiwei-test669", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1341 | , 1342 | {"endpoint": "laiwei-test670", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1343 | , 1344 | {"endpoint": "laiwei-test671", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1345 | , 1346 | {"endpoint": "laiwei-test672", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1347 | , 1348 | {"endpoint": "laiwei-test673", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1349 | , 1350 | {"endpoint": "laiwei-test674", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1351 | , 1352 | {"endpoint": "laiwei-test675", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1353 | , 1354 | {"endpoint": "laiwei-test676", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1355 | , 1356 | {"endpoint": "laiwei-test677", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1357 | , 1358 | {"endpoint": "laiwei-test678", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1359 | , 1360 | {"endpoint": "laiwei-test679", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1361 | , 1362 | {"endpoint": "laiwei-test680", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1363 | , 1364 | {"endpoint": "laiwei-test681", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1365 | , 1366 | {"endpoint": "laiwei-test682", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1367 | , 1368 | {"endpoint": "laiwei-test683", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1369 | , 1370 | {"endpoint": "laiwei-test684", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1371 | , 1372 | {"endpoint": "laiwei-test685", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1373 | , 1374 | {"endpoint": "laiwei-test686", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1375 | , 1376 | {"endpoint": "laiwei-test687", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1377 | , 1378 | {"endpoint": "laiwei-test688", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1379 | , 1380 | {"endpoint": "laiwei-test689", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1381 | , 1382 | {"endpoint": "laiwei-test690", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1383 | , 1384 | {"endpoint": "laiwei-test691", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1385 | , 1386 | {"endpoint": "laiwei-test692", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1387 | , 1388 | {"endpoint": "laiwei-test693", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1389 | , 1390 | {"endpoint": "laiwei-test694", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1391 | , 1392 | {"endpoint": "laiwei-test695", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1393 | , 1394 | {"endpoint": "laiwei-test696", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1395 | , 1396 | {"endpoint": "laiwei-test697", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1397 | , 1398 | {"endpoint": "laiwei-test698", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1399 | , 1400 | {"endpoint": "laiwei-test699", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1401 | , 1402 | {"endpoint": "laiwei-test700", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1403 | , 1404 | {"endpoint": "laiwei-test701", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1405 | , 1406 | {"endpoint": "laiwei-test702", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1407 | , 1408 | {"endpoint": "laiwei-test703", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1409 | , 1410 | {"endpoint": "laiwei-test704", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1411 | , 1412 | {"endpoint": "laiwei-test705", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1413 | , 1414 | {"endpoint": "laiwei-test706", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1415 | , 1416 | {"endpoint": "laiwei-test707", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1417 | , 1418 | {"endpoint": "laiwei-test708", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1419 | , 1420 | {"endpoint": "laiwei-test709", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1421 | , 1422 | {"endpoint": "laiwei-test710", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1423 | , 1424 | {"endpoint": "laiwei-test711", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1425 | , 1426 | {"endpoint": "laiwei-test712", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1427 | , 1428 | {"endpoint": "laiwei-test713", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1429 | , 1430 | {"endpoint": "laiwei-test714", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1431 | , 1432 | {"endpoint": "laiwei-test715", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1433 | , 1434 | {"endpoint": "laiwei-test716", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1435 | , 1436 | {"endpoint": "laiwei-test717", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1437 | , 1438 | {"endpoint": "laiwei-test718", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1439 | , 1440 | {"endpoint": "laiwei-test719", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1441 | , 1442 | {"endpoint": "laiwei-test720", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1443 | , 1444 | {"endpoint": "laiwei-test721", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1445 | , 1446 | {"endpoint": "laiwei-test722", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1447 | , 1448 | {"endpoint": "laiwei-test723", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1449 | , 1450 | {"endpoint": "laiwei-test724", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1451 | , 1452 | {"endpoint": "laiwei-test725", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1453 | , 1454 | {"endpoint": "laiwei-test726", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1455 | , 1456 | {"endpoint": "laiwei-test727", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1457 | , 1458 | {"endpoint": "laiwei-test728", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1459 | , 1460 | {"endpoint": "laiwei-test729", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1461 | , 1462 | {"endpoint": "laiwei-test730", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1463 | , 1464 | {"endpoint": "laiwei-test731", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1465 | , 1466 | {"endpoint": "laiwei-test732", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1467 | , 1468 | {"endpoint": "laiwei-test733", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1469 | , 1470 | {"endpoint": "laiwei-test734", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1471 | , 1472 | {"endpoint": "laiwei-test735", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1473 | , 1474 | {"endpoint": "laiwei-test736", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1475 | , 1476 | {"endpoint": "laiwei-test737", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1477 | , 1478 | {"endpoint": "laiwei-test738", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1479 | , 1480 | {"endpoint": "laiwei-test739", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1481 | , 1482 | {"endpoint": "laiwei-test740", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1483 | , 1484 | {"endpoint": "laiwei-test741", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1485 | , 1486 | {"endpoint": "laiwei-test742", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1487 | , 1488 | {"endpoint": "laiwei-test743", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1489 | , 1490 | {"endpoint": "laiwei-test744", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1491 | , 1492 | {"endpoint": "laiwei-test745", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1493 | , 1494 | {"endpoint": "laiwei-test746", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1495 | , 1496 | {"endpoint": "laiwei-test747", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1497 | , 1498 | {"endpoint": "laiwei-test748", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1499 | , 1500 | {"endpoint": "laiwei-test749", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1501 | , 1502 | {"endpoint": "laiwei-test750", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1503 | , 1504 | {"endpoint": "laiwei-test751", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1505 | , 1506 | {"endpoint": "laiwei-test752", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1507 | , 1508 | {"endpoint": "laiwei-test753", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1509 | , 1510 | {"endpoint": "laiwei-test754", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1511 | , 1512 | {"endpoint": "laiwei-test755", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1513 | , 1514 | {"endpoint": "laiwei-test756", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1515 | , 1516 | {"endpoint": "laiwei-test757", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1517 | , 1518 | {"endpoint": "laiwei-test758", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1519 | , 1520 | {"endpoint": "laiwei-test759", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1521 | , 1522 | {"endpoint": "laiwei-test760", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1523 | , 1524 | {"endpoint": "laiwei-test761", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1525 | , 1526 | {"endpoint": "laiwei-test762", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1527 | , 1528 | {"endpoint": "laiwei-test763", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1529 | , 1530 | {"endpoint": "laiwei-test764", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1531 | , 1532 | {"endpoint": "laiwei-test765", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1533 | , 1534 | {"endpoint": "laiwei-test766", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1535 | , 1536 | {"endpoint": "laiwei-test767", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1537 | , 1538 | {"endpoint": "laiwei-test768", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1539 | , 1540 | {"endpoint": "laiwei-test769", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1541 | , 1542 | {"endpoint": "laiwei-test770", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1543 | , 1544 | {"endpoint": "laiwei-test771", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1545 | , 1546 | {"endpoint": "laiwei-test772", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1547 | , 1548 | {"endpoint": "laiwei-test773", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1549 | , 1550 | {"endpoint": "laiwei-test774", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1551 | , 1552 | {"endpoint": "laiwei-test775", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1553 | , 1554 | {"endpoint": "laiwei-test776", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1555 | , 1556 | {"endpoint": "laiwei-test777", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1557 | , 1558 | {"endpoint": "laiwei-test778", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1559 | , 1560 | {"endpoint": "laiwei-test779", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1561 | , 1562 | {"endpoint": "laiwei-test780", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1563 | , 1564 | {"endpoint": "laiwei-test781", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1565 | , 1566 | {"endpoint": "laiwei-test782", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1567 | , 1568 | {"endpoint": "laiwei-test783", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1569 | , 1570 | {"endpoint": "laiwei-test784", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1571 | , 1572 | {"endpoint": "laiwei-test785", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1573 | , 1574 | {"endpoint": "laiwei-test786", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1575 | , 1576 | {"endpoint": "laiwei-test787", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1577 | , 1578 | {"endpoint": "laiwei-test788", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1579 | , 1580 | {"endpoint": "laiwei-test789", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1581 | , 1582 | {"endpoint": "laiwei-test790", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1583 | , 1584 | {"endpoint": "laiwei-test791", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1585 | , 1586 | {"endpoint": "laiwei-test792", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1587 | , 1588 | {"endpoint": "laiwei-test793", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1589 | , 1590 | {"endpoint": "laiwei-test794", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1591 | , 1592 | {"endpoint": "laiwei-test795", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1593 | , 1594 | {"endpoint": "laiwei-test796", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1595 | , 1596 | {"endpoint": "laiwei-test797", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1597 | , 1598 | {"endpoint": "laiwei-test798", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1599 | , 1600 | {"endpoint": "laiwei-test799", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1601 | , 1602 | {"endpoint": "laiwei-test800", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1603 | , 1604 | {"endpoint": "laiwei-test801", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1605 | , 1606 | {"endpoint": "laiwei-test802", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1607 | , 1608 | {"endpoint": "laiwei-test803", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1609 | , 1610 | {"endpoint": "laiwei-test804", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1611 | , 1612 | {"endpoint": "laiwei-test805", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1613 | , 1614 | {"endpoint": "laiwei-test806", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1615 | , 1616 | {"endpoint": "laiwei-test807", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1617 | , 1618 | {"endpoint": "laiwei-test808", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1619 | , 1620 | {"endpoint": "laiwei-test809", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1621 | , 1622 | {"endpoint": "laiwei-test810", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1623 | , 1624 | {"endpoint": "laiwei-test811", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1625 | , 1626 | {"endpoint": "laiwei-test812", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1627 | , 1628 | {"endpoint": "laiwei-test813", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1629 | , 1630 | {"endpoint": "laiwei-test814", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1631 | , 1632 | {"endpoint": "laiwei-test815", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1633 | , 1634 | {"endpoint": "laiwei-test816", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1635 | , 1636 | {"endpoint": "laiwei-test817", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1637 | , 1638 | {"endpoint": "laiwei-test818", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1639 | , 1640 | {"endpoint": "laiwei-test819", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1641 | , 1642 | {"endpoint": "laiwei-test820", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1643 | , 1644 | {"endpoint": "laiwei-test821", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1645 | , 1646 | {"endpoint": "laiwei-test822", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1647 | , 1648 | {"endpoint": "laiwei-test823", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1649 | , 1650 | {"endpoint": "laiwei-test824", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1651 | , 1652 | {"endpoint": "laiwei-test825", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1653 | , 1654 | {"endpoint": "laiwei-test826", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1655 | , 1656 | {"endpoint": "laiwei-test827", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1657 | , 1658 | {"endpoint": "laiwei-test828", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1659 | , 1660 | {"endpoint": "laiwei-test829", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1661 | , 1662 | {"endpoint": "laiwei-test830", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1663 | , 1664 | {"endpoint": "laiwei-test831", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1665 | , 1666 | {"endpoint": "laiwei-test832", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1667 | , 1668 | {"endpoint": "laiwei-test833", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1669 | , 1670 | {"endpoint": "laiwei-test834", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1671 | , 1672 | {"endpoint": "laiwei-test835", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1673 | , 1674 | {"endpoint": "laiwei-test836", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1675 | , 1676 | {"endpoint": "laiwei-test837", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1677 | , 1678 | {"endpoint": "laiwei-test838", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1679 | , 1680 | {"endpoint": "laiwei-test839", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1681 | , 1682 | {"endpoint": "laiwei-test840", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1683 | , 1684 | {"endpoint": "laiwei-test841", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1685 | , 1686 | {"endpoint": "laiwei-test842", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1687 | , 1688 | {"endpoint": "laiwei-test843", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1689 | , 1690 | {"endpoint": "laiwei-test844", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1691 | , 1692 | {"endpoint": "laiwei-test845", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1693 | , 1694 | {"endpoint": "laiwei-test846", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1695 | , 1696 | {"endpoint": "laiwei-test847", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1697 | , 1698 | {"endpoint": "laiwei-test848", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1699 | , 1700 | {"endpoint": "laiwei-test849", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1701 | , 1702 | {"endpoint": "laiwei-test850", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1703 | , 1704 | {"endpoint": "laiwei-test851", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1705 | , 1706 | {"endpoint": "laiwei-test852", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1707 | , 1708 | {"endpoint": "laiwei-test853", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1709 | , 1710 | {"endpoint": "laiwei-test854", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1711 | , 1712 | {"endpoint": "laiwei-test855", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1713 | , 1714 | {"endpoint": "laiwei-test856", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1715 | , 1716 | {"endpoint": "laiwei-test857", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1717 | , 1718 | {"endpoint": "laiwei-test858", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1719 | , 1720 | {"endpoint": "laiwei-test859", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1721 | , 1722 | {"endpoint": "laiwei-test860", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1723 | , 1724 | {"endpoint": "laiwei-test861", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1725 | , 1726 | {"endpoint": "laiwei-test862", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1727 | , 1728 | {"endpoint": "laiwei-test863", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1729 | , 1730 | {"endpoint": "laiwei-test864", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1731 | , 1732 | {"endpoint": "laiwei-test865", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1733 | , 1734 | {"endpoint": "laiwei-test866", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1735 | , 1736 | {"endpoint": "laiwei-test867", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1737 | , 1738 | {"endpoint": "laiwei-test868", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1739 | , 1740 | {"endpoint": "laiwei-test869", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1741 | , 1742 | {"endpoint": "laiwei-test870", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1743 | , 1744 | {"endpoint": "laiwei-test871", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1745 | , 1746 | {"endpoint": "laiwei-test872", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1747 | , 1748 | {"endpoint": "laiwei-test873", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1749 | , 1750 | {"endpoint": "laiwei-test874", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1751 | , 1752 | {"endpoint": "laiwei-test875", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1753 | , 1754 | {"endpoint": "laiwei-test876", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1755 | , 1756 | {"endpoint": "laiwei-test877", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1757 | , 1758 | {"endpoint": "laiwei-test878", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1759 | , 1760 | {"endpoint": "laiwei-test879", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1761 | , 1762 | {"endpoint": "laiwei-test880", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1763 | , 1764 | {"endpoint": "laiwei-test881", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1765 | , 1766 | {"endpoint": "laiwei-test882", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1767 | , 1768 | {"endpoint": "laiwei-test883", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1769 | , 1770 | {"endpoint": "laiwei-test884", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1771 | , 1772 | {"endpoint": "laiwei-test885", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1773 | , 1774 | {"endpoint": "laiwei-test886", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1775 | , 1776 | {"endpoint": "laiwei-test887", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1777 | , 1778 | {"endpoint": "laiwei-test888", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1779 | , 1780 | {"endpoint": "laiwei-test889", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1781 | , 1782 | {"endpoint": "laiwei-test890", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1783 | , 1784 | {"endpoint": "laiwei-test891", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1785 | , 1786 | {"endpoint": "laiwei-test892", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1787 | , 1788 | {"endpoint": "laiwei-test893", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1789 | , 1790 | {"endpoint": "laiwei-test894", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1791 | , 1792 | {"endpoint": "laiwei-test895", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1793 | , 1794 | {"endpoint": "laiwei-test896", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1795 | , 1796 | {"endpoint": "laiwei-test897", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1797 | , 1798 | {"endpoint": "laiwei-test898", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1799 | , 1800 | {"endpoint": "laiwei-test899", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1801 | , 1802 | {"endpoint": "laiwei-test900", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1803 | , 1804 | {"endpoint": "laiwei-test901", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1805 | , 1806 | {"endpoint": "laiwei-test902", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1807 | , 1808 | {"endpoint": "laiwei-test903", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1809 | , 1810 | {"endpoint": "laiwei-test904", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1811 | , 1812 | {"endpoint": "laiwei-test905", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1813 | , 1814 | {"endpoint": "laiwei-test906", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1815 | , 1816 | {"endpoint": "laiwei-test907", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1817 | , 1818 | {"endpoint": "laiwei-test908", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1819 | , 1820 | {"endpoint": "laiwei-test909", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1821 | , 1822 | {"endpoint": "laiwei-test910", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1823 | , 1824 | {"endpoint": "laiwei-test911", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1825 | , 1826 | {"endpoint": "laiwei-test912", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1827 | , 1828 | {"endpoint": "laiwei-test913", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1829 | , 1830 | {"endpoint": "laiwei-test914", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1831 | , 1832 | {"endpoint": "laiwei-test915", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1833 | , 1834 | {"endpoint": "laiwei-test916", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1835 | , 1836 | {"endpoint": "laiwei-test917", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1837 | , 1838 | {"endpoint": "laiwei-test918", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1839 | , 1840 | {"endpoint": "laiwei-test919", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1841 | , 1842 | {"endpoint": "laiwei-test920", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1843 | , 1844 | {"endpoint": "laiwei-test921", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1845 | , 1846 | {"endpoint": "laiwei-test922", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1847 | , 1848 | {"endpoint": "laiwei-test923", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1849 | , 1850 | {"endpoint": "laiwei-test924", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1851 | , 1852 | {"endpoint": "laiwei-test925", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1853 | , 1854 | {"endpoint": "laiwei-test926", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1855 | , 1856 | {"endpoint": "laiwei-test927", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1857 | , 1858 | {"endpoint": "laiwei-test928", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1859 | , 1860 | {"endpoint": "laiwei-test929", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1861 | , 1862 | {"endpoint": "laiwei-test930", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1863 | , 1864 | {"endpoint": "laiwei-test931", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1865 | , 1866 | {"endpoint": "laiwei-test932", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1867 | , 1868 | {"endpoint": "laiwei-test933", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1869 | , 1870 | {"endpoint": "laiwei-test934", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1871 | , 1872 | {"endpoint": "laiwei-test935", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1873 | , 1874 | {"endpoint": "laiwei-test936", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1875 | , 1876 | {"endpoint": "laiwei-test937", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1877 | , 1878 | {"endpoint": "laiwei-test938", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1879 | , 1880 | {"endpoint": "laiwei-test939", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1881 | , 1882 | {"endpoint": "laiwei-test940", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1883 | , 1884 | {"endpoint": "laiwei-test941", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1885 | , 1886 | {"endpoint": "laiwei-test942", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1887 | , 1888 | {"endpoint": "laiwei-test943", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1889 | , 1890 | {"endpoint": "laiwei-test944", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1891 | , 1892 | {"endpoint": "laiwei-test945", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1893 | , 1894 | {"endpoint": "laiwei-test946", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1895 | , 1896 | {"endpoint": "laiwei-test947", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1897 | , 1898 | {"endpoint": "laiwei-test948", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1899 | , 1900 | {"endpoint": "laiwei-test949", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1901 | , 1902 | {"endpoint": "laiwei-test950", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1903 | , 1904 | {"endpoint": "laiwei-test951", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1905 | , 1906 | {"endpoint": "laiwei-test952", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1907 | , 1908 | {"endpoint": "laiwei-test953", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1909 | , 1910 | {"endpoint": "laiwei-test954", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1911 | , 1912 | {"endpoint": "laiwei-test955", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1913 | , 1914 | {"endpoint": "laiwei-test956", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1915 | , 1916 | {"endpoint": "laiwei-test957", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1917 | , 1918 | {"endpoint": "laiwei-test958", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1919 | , 1920 | {"endpoint": "laiwei-test959", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1921 | , 1922 | {"endpoint": "laiwei-test960", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1923 | , 1924 | {"endpoint": "laiwei-test961", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1925 | , 1926 | {"endpoint": "laiwei-test962", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1927 | , 1928 | {"endpoint": "laiwei-test963", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1929 | , 1930 | {"endpoint": "laiwei-test964", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1931 | , 1932 | {"endpoint": "laiwei-test965", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1933 | , 1934 | {"endpoint": "laiwei-test966", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1935 | , 1936 | {"endpoint": "laiwei-test967", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1937 | , 1938 | {"endpoint": "laiwei-test968", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1939 | , 1940 | {"endpoint": "laiwei-test969", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1941 | , 1942 | {"endpoint": "laiwei-test970", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1943 | , 1944 | {"endpoint": "laiwei-test971", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1945 | , 1946 | {"endpoint": "laiwei-test972", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1947 | , 1948 | {"endpoint": "laiwei-test973", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1949 | , 1950 | {"endpoint": "laiwei-test974", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1951 | , 1952 | {"endpoint": "laiwei-test975", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1953 | , 1954 | {"endpoint": "laiwei-test976", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1955 | , 1956 | {"endpoint": "laiwei-test977", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1957 | , 1958 | {"endpoint": "laiwei-test978", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1959 | , 1960 | {"endpoint": "laiwei-test979", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1961 | , 1962 | {"endpoint": "laiwei-test980", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1963 | , 1964 | {"endpoint": "laiwei-test981", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1965 | , 1966 | {"endpoint": "laiwei-test982", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1967 | , 1968 | {"endpoint": "laiwei-test983", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1969 | , 1970 | {"endpoint": "laiwei-test984", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1971 | , 1972 | {"endpoint": "laiwei-test985", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1973 | , 1974 | {"endpoint": "laiwei-test986", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1975 | , 1976 | {"endpoint": "laiwei-test987", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1977 | , 1978 | {"endpoint": "laiwei-test988", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1979 | , 1980 | {"endpoint": "laiwei-test989", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1981 | , 1982 | {"endpoint": "laiwei-test990", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1983 | , 1984 | {"endpoint": "laiwei-test991", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1985 | , 1986 | {"endpoint": "laiwei-test992", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1987 | , 1988 | {"endpoint": "laiwei-test993", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1989 | , 1990 | {"endpoint": "laiwei-test994", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1991 | , 1992 | {"endpoint": "laiwei-test995", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1993 | , 1994 | {"endpoint": "laiwei-test996", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1995 | , 1996 | {"endpoint": "laiwei-test997", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1997 | , 1998 | {"endpoint": "laiwei-test998", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 1999 | , 2000 | {"endpoint": "laiwei-test999", "tags": "home=bj,srv=falcon", "timestamp": 1234567, "metric": "cpu.idle", "value": 1, "counterType": "GAUGE", "step": 30} 2001 | ] 2002 | --------------------------------------------------------------------------------