echo_cli 0.6.19 → 0.6.20
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +10 -4
- data/lib/echo_cli/cli.rb +52 -9
- data/lib/echo_cli/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cd5f609e5d770299aa3c77843c4f22d1a8ce5243
|
4
|
+
data.tar.gz: 0128cf4cddd4dc07ecb9a6e1cad5f89c1df46c9e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1056a5fa9b7197db6a646d37892f8f2086fac67b49124d33c5c0a6ec20dbb2aaf9cf040178f5d51617a622e1f0a977278dfce2e2f84e8f9c908582650f840a89
|
7
|
+
data.tar.gz: c0016a5bef2ee41db51406ea3a12cbf70fcbc0f5de5435ccd0642ecab0f42b875614a69af093d5cd080a19ab4ecb4f6d740b36d8296547b2d2ba095e1582c3d6
|
data/README.md
CHANGED
@@ -110,7 +110,7 @@ The previous example would post the metric 'sample' with tags 'post' and 'here'
|
|
110
110
|
|
111
111
|
#### query
|
112
112
|
```bash
|
113
|
-
$ echo_cli query <URL> '<metric>' <time_start> <time_end> {-v}
|
113
|
+
$ echo_cli query <URL> '<metric>' <time_start> <time_end> {-v} {-e} {-s}
|
114
114
|
```
|
115
115
|
Parameters:
|
116
116
|
|
@@ -124,6 +124,10 @@ Parameters:
|
|
124
124
|
|
125
125
|
`{-v}`: (optional) verbosely prints the status code and response body of the query
|
126
126
|
|
127
|
+
`{-e}`: (optional) formats the response datapoints such that their timestamps are in the epoch format, must have '-v' option selected for changes to appear
|
128
|
+
|
129
|
+
`{-s}`: (optional) formats the response datapoints to be usable as SQL statements for insertions into SQL-esque databases, must have '-v' option selected for changes to appear
|
130
|
+
|
127
131
|
Example:
|
128
132
|
```bash
|
129
133
|
$ echo_cli https://localhost:4242/api/query 'sample.query.here' 1492464745 1492465045 -v
|
@@ -132,7 +136,7 @@ The previous example will query OpenTSDB with the metric name 'sample' and tags
|
|
132
136
|
|
133
137
|
#### quick_query
|
134
138
|
```bash
|
135
|
-
$ echo_cli quick_query <URL> '<metric>' <range> {-
|
139
|
+
$ echo_cli quick_query <URL> '<metric>' <range> {-e} {-s}
|
136
140
|
```
|
137
141
|
Parameters:
|
138
142
|
|
@@ -144,11 +148,13 @@ Parameters:
|
|
144
148
|
|
145
149
|
`{-e}`: (optional) formats the response datapoints such that their timestamps are in the epoch format
|
146
150
|
|
151
|
+
`{-s}`: (optional) formats the response datapoints to be usable as SQL statements for insertions into SQL-esque databases
|
152
|
+
|
147
153
|
Example:
|
148
154
|
```bash
|
149
|
-
$ echo_cli https://localhost:4242/api/query 'sample.query.here' 300
|
155
|
+
$ echo_cli https://localhost:4242/api/query 'sample.query.here' 300 -s
|
150
156
|
```
|
151
|
-
The previous example will query OpenTSDB located on 'https://localhost:4242/api/query' with the metric name 'sample' and tags 'query' and 'here', within the time range spanning from the current time to '300' seconds before the current time.
|
157
|
+
The previous example will query OpenTSDB located on 'https://localhost:4242/api/query' with the metric name 'sample' and tags 'query' and 'here', within the time range spanning from the current time to '300' seconds before the current time. The '-s' option will return the data as SQL statements for later insertion into a SQL database.
|
152
158
|
|
153
159
|
## Development
|
154
160
|
|
data/lib/echo_cli/cli.rb
CHANGED
@@ -161,9 +161,11 @@ module Echo_cli
|
|
161
161
|
|
162
162
|
end
|
163
163
|
|
164
|
-
desc "query", "Query metrics on Echo. Use \"echo_cli query <URL> '<metric>' <time_start> <time_end> {-v}\""
|
164
|
+
desc "query", "Query metrics on Echo. Use \"echo_cli query <URL> '<metric>' <time_start> <time_end> {-v} {-e} {-s}\""
|
165
165
|
|
166
166
|
option :v
|
167
|
+
option :e
|
168
|
+
option :s
|
167
169
|
|
168
170
|
long_desc <<-LONGDESC
|
169
171
|
`echo_cli query` will query a metric directly from Echo's OpenTSDB server instance.
|
@@ -178,6 +180,10 @@ module Echo_cli
|
|
178
180
|
|
179
181
|
With -v (verbose) option, query will print the status code and response body upon completion of the request.
|
180
182
|
|
183
|
+
With -e (epoch) option, echo_cli will format the response datapoints, with the verbose ('-v') option selected, such that their timestamps will be in epoch format.
|
184
|
+
|
185
|
+
With -s (sql) option, echo_cli will format the response data, with the verbose ('-v') option selected, to be usable within a sql database.
|
186
|
+
|
181
187
|
> $ echo_cli query https://localhost:4242/api/query 'example.post' 1492186212 1492186214 {-v}
|
182
188
|
LONGDESC
|
183
189
|
|
@@ -197,16 +203,39 @@ module Echo_cli
|
|
197
203
|
req.body = opentsdb_query
|
198
204
|
|
199
205
|
if options[:v]
|
200
|
-
begin
|
206
|
+
# begin
|
201
207
|
res = https.request(req)
|
202
208
|
if res.code == '200'
|
203
|
-
|
209
|
+
|
210
|
+
json = JSON.parse(res.body)[0]
|
211
|
+
|
212
|
+
if !options[:e]
|
213
|
+
json["dps"] = {}
|
214
|
+
for i in JSON.parse(res.body)[0]["dps"].keys do
|
215
|
+
Helper.new.stfu do
|
216
|
+
json["dps"][convert(i)] = JSON.parse(res.body)[0]["dps"][i]
|
217
|
+
end
|
218
|
+
end
|
219
|
+
end
|
220
|
+
|
221
|
+
if options[:s]
|
222
|
+
sql = "CREATE TABLE " + metric + "(\n sep VARCHAR(24) NOT NULL PRIMARY KEY\n ,FIELD2 VARCHAR(21) NOT NULL\n);"
|
223
|
+
for i in json["dps"].keys do
|
224
|
+
Helper.new.stfu do
|
225
|
+
sql = sql + "\nINSERT INTO " + metric + "(sep,FIELD2) VALUES ('" + i.to_s + "','" + json["dps"][i].to_s + "');"
|
226
|
+
end
|
227
|
+
end
|
228
|
+
|
229
|
+
puts "\nSuccessfully retrieved ".green + metric_name.yellow + " from ".green + opentsdb_uri.blue + " in timestamp range: ".green + time_start.yellow + " to ".green + time_end.yellow + "\nSQL-ized data points:\n\n".green + sql.green
|
230
|
+
else
|
231
|
+
puts "\nSuccessfully retrieved ".green + metric_name.yellow + " from ".green + opentsdb_uri.blue + " in timestamp range: ".green + time_start.yellow + " to ".green + time_end.yellow + "\nData points:\n\n".green + JSON.pretty_generate(json).green
|
232
|
+
end
|
204
233
|
else
|
205
234
|
puts "\nFailed to retrieve ".red + metric_name.yellow + " from ".red + opentsdb_uri.blue + " in timestamp range: ".red + time_start.yellow + " to ".red + time_end.yellow + "\nStatus Code: ".red + res.code.yellow + "\nResponse Body: ".red + JSON.pretty_generate(JSON.parse(res.body)).red
|
206
235
|
end
|
207
|
-
rescue
|
208
|
-
|
209
|
-
end
|
236
|
+
# rescue
|
237
|
+
# puts "\nYour request returned an error. Are you sure your query was correct?"
|
238
|
+
# end
|
210
239
|
else
|
211
240
|
begin
|
212
241
|
res = https.request(req)
|
@@ -225,9 +254,10 @@ module Echo_cli
|
|
225
254
|
return res.code
|
226
255
|
end
|
227
256
|
|
228
|
-
desc "quick_query", "Query metrics on Echo from the current time. Use \"echo_cli quick_query <URL> '<metric>' <range> {-e}\""
|
257
|
+
desc "quick_query", "Query metrics on Echo from the current time. Use \"echo_cli quick_query <URL> '<metric>' <range> {-e} {-s}\""
|
229
258
|
|
230
259
|
option :e
|
260
|
+
option :s
|
231
261
|
|
232
262
|
long_desc <<-LONGDESC
|
233
263
|
`echo_cli quick_query` will query a metric directly from Echo's OpenTSDB server instance for a given time range beginning in the present.
|
@@ -240,6 +270,8 @@ module Echo_cli
|
|
240
270
|
|
241
271
|
With -e (epoch) option, echo_cli will format the response datapoints such that their timestamps will be in epoch format.
|
242
272
|
|
273
|
+
With -s (sql) option, echo_cli will format the response data to be usable within a sql database.
|
274
|
+
|
243
275
|
> $ echo_cli quick_query https://localhost:4242/api/query 'example' 30
|
244
276
|
|
245
277
|
The previous example would find all data points with metric name 'example' on Echo's OpenTSDB instance at 'localhost' in the last 30 seconds.
|
@@ -275,12 +307,23 @@ module Echo_cli
|
|
275
307
|
json["dps"] = {}
|
276
308
|
for i in JSON.parse(res.body)[0]["dps"].keys do
|
277
309
|
Helper.new.stfu do
|
278
|
-
json[convert(i)] = JSON.parse(res.body)[0]["dps"][i]
|
310
|
+
json["dps"][convert(i)] = JSON.parse(res.body)[0]["dps"][i]
|
279
311
|
end
|
280
312
|
end
|
281
313
|
end
|
282
314
|
|
283
|
-
|
315
|
+
if options[:s]
|
316
|
+
sql = "CREATE TABLE " + metric + "(\n sep VARCHAR(24) NOT NULL PRIMARY KEY\n ,FIELD2 VARCHAR(21) NOT NULL\n);"
|
317
|
+
for i in json["dps"].keys do
|
318
|
+
Helper.new.stfu do
|
319
|
+
sql = sql + "\nINSERT INTO " + metric + "(sep,FIELD2) VALUES ('" + i.to_s + "','" + json["dps"][i].to_s + "');"
|
320
|
+
end
|
321
|
+
end
|
322
|
+
|
323
|
+
puts "\nSuccessfully retrieved ".green + metric_name.yellow + " from ".green + opentsdb_uri.blue + " in timestamp range: ".green + time_start.yellow + " to ".green + time_end.yellow + "\nSQL-ized data points in the last ".green + range.yellow + " seconds:\n\n".green + sql.green
|
324
|
+
else
|
325
|
+
puts "\nSuccessfully retrieved ".green + metric_name.yellow + " from ".green + opentsdb_uri.blue + " in timestamp range: ".green + time_start.yellow + " to ".green + time_end.yellow + "\nData points in the last ".green + range.yellow + " seconds:\n\n".green + JSON.pretty_generate(json).green
|
326
|
+
end
|
284
327
|
else
|
285
328
|
puts "\nFailed to retrieve ".red + metric_name.yellow + " from ".red + opentsdb_uri.blue + " in timestamp range: ".red + time_start.yellow + " to ".red + time_end.yellow + "\nStatus Code: ".red + res.code.yellow + "\nResponse Body: ".red + JSON.pretty_generate(JSON.parse(res.body)).red
|
286
329
|
end
|
data/lib/echo_cli/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: echo_cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.20
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brandon Raphael
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-05-
|
11
|
+
date: 2017-05-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|