lita-libratoo 0.1.3 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/lita/handlers/libratoo.rb +18 -21
- data/lita-libratoo.gemspec +2 -1
- metadata +15 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 32264559607afd62e61078d32be2bb169b9445e9
|
4
|
+
data.tar.gz: f4c9304f055db2911ad978c8bfbb258e374033a2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6facfde14fa34c258fa8b87b3d222150989f61fc9afc31c15588ed98b4d48d6cd1d447a17d6f1bf9cd673a2a5eddbd7c2373773e583ccb69dd8deb75165de79d
|
7
|
+
data.tar.gz: 5c0887c9459513e5e5741e0b672ffeecd020e69b3d7b7854adbaf8921b7f0173130e2976761c624fb24c83c4987458fab39c554aca339c2a87bdab1f2aee7654
|
@@ -1,32 +1,26 @@
|
|
1
1
|
require "librato/metrics"
|
2
|
+
require "chronic"
|
3
|
+
|
2
4
|
module Lita
|
3
5
|
module Handlers
|
4
6
|
class Libratoo < Handler
|
5
7
|
config :email, required: true
|
6
8
|
config :api_key, required: true
|
7
9
|
|
8
|
-
route(/^librato get\s(.+)/, :librato_get, command: true, help: {
|
10
|
+
route(/^librato get\s([^ ]+)\s(.+)/, :librato_get, command: true, help: {
|
9
11
|
"librato get [metric] [options]" =>
|
10
|
-
"example: 'lita librato get AWS.RDS.ReplicaLag source:
|
12
|
+
"example: 'lita librato get AWS.RDS.ReplicaLag, source: *, count: 5, start_time: \"an hour ago\"'"
|
11
13
|
})
|
12
14
|
|
13
15
|
def librato_get(response)
|
14
16
|
Librato::Metrics.authenticate config.email, config.api_key
|
15
17
|
|
16
|
-
|
17
|
-
|
18
|
-
if arguments[0] == "search"
|
19
|
-
metrics = Librato::Metrics.metrics.map{|v| v["name"] }
|
20
|
-
response_text = metrics.grep(/#{arguments[1]}/i).join(', ')
|
21
|
-
response_text = "No results" if response_text.empty?
|
22
|
-
return reply_or_whisper_long response, response_text
|
23
|
-
end
|
24
|
-
|
25
|
-
metric, options = arguments[0].to_sym, arguments[1..-1]
|
26
|
-
options = symbolize_keys Hash[*options]
|
18
|
+
metric = response.matches[0][0]
|
19
|
+
options = parse_options response.matches[0][1]
|
27
20
|
options = { count: 1 }.merge options
|
21
|
+
|
28
22
|
if options.key?(:start_time) && !options[:start_time].is_a?(Numeric)
|
29
|
-
options[:start_time] =
|
23
|
+
options[:start_time] = Chronic.parse(options[:start_time]).utc
|
30
24
|
end
|
31
25
|
|
32
26
|
results = Librato::Metrics.get_measurements metric, options
|
@@ -45,21 +39,20 @@ module Lita
|
|
45
39
|
reply_or_whisper_long response, e.message
|
46
40
|
end
|
47
41
|
|
48
|
-
route(/^librato sum\s(.+)/, :librato_sum, command: true, help: {
|
42
|
+
route(/^librato sum\s([^ ]+)\s(.+)/, :librato_sum, command: true, help: {
|
49
43
|
"librato sum [metric] [options]" =>
|
50
|
-
"example: 'lita librato sum payments_controller.stripe.success start_time:
|
44
|
+
"example: 'lita librato sum payments_controller.stripe.success, start_time: \"an hour ago\"'"
|
51
45
|
})
|
52
46
|
|
53
47
|
def librato_sum(response)
|
54
48
|
Librato::Metrics.authenticate config.email, config.api_key
|
55
49
|
|
56
|
-
|
57
|
-
|
58
|
-
metric, options = arguments[0].to_sym, arguments[1..-1]
|
59
|
-
options = symbolize_keys Hash[*options]
|
50
|
+
metric = response.matches[0][0]
|
51
|
+
options = parse_options response.matches[0][1]
|
60
52
|
options = { resolution: 1 }.merge options
|
53
|
+
|
61
54
|
if options.key?(:start_time) && !options[:start_time].is_a?(Numeric)
|
62
|
-
options[:start_time] =
|
55
|
+
options[:start_time] = Chronic.parse(options[:start_time]).utc.to_i
|
63
56
|
end
|
64
57
|
|
65
58
|
results = Librato::Metrics.get_composite %Q[sum(s("#{metric}", "*", {function: "sum"}))], options
|
@@ -100,6 +93,10 @@ module Lita
|
|
100
93
|
|
101
94
|
private
|
102
95
|
|
96
|
+
def parse_options(options)
|
97
|
+
symbolize_keys Hash[*options.scan(/('.*?'|".*?"|\S+)/).flatten.map{|e| e.tr %Q['":], '' }]
|
98
|
+
end
|
99
|
+
|
103
100
|
def reply_or_whisper_long(response, response_text)
|
104
101
|
response_text = response_text.to_s
|
105
102
|
if response_text.length > 400 && !response.message.source.private_message
|
data/lita-libratoo.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |spec|
|
2
2
|
spec.name = "lita-libratoo"
|
3
|
-
spec.version = "0.1.
|
3
|
+
spec.version = "0.1.4"
|
4
4
|
spec.authors = ["Eric Boehs"]
|
5
5
|
spec.email = ["ericboehs@gmail.com"]
|
6
6
|
spec.description = "Query librato metrics from Lita"
|
@@ -16,6 +16,7 @@ Gem::Specification.new do |spec|
|
|
16
16
|
|
17
17
|
spec.add_runtime_dependency "lita", ">= 4.7"
|
18
18
|
spec.add_runtime_dependency "librato-metrics", "~> 1.6"
|
19
|
+
spec.add_runtime_dependency "chronic", "~> 0.10"
|
19
20
|
|
20
21
|
spec.add_development_dependency "bundler", "~> 1.3"
|
21
22
|
spec.add_development_dependency "pry-byebug"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lita-libratoo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Boehs
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '1.6'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: chronic
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0.10'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0.10'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: bundler
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|