lita-libratoo 0.1.0
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 +7 -0
- data/.gitignore +18 -0
- data/Gemfile +3 -0
- data/README.md +19 -0
- data/Rakefile +6 -0
- data/lib/lita/handlers/libratoo.rb +60 -0
- data/lib/lita-libratoo.rb +12 -0
- data/lita-libratoo.gemspec +25 -0
- data/locales/en.yml +4 -0
- data/spec/lita/handlers/libratoo_spec.rb +4 -0
- data/spec/spec_helper.rb +6 -0
- data/templates/.gitkeep +0 -0
- metadata +156 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 5d8284cea4e40109db108068f8c6223a9445b473
|
4
|
+
data.tar.gz: 0f6390a54a35c0abcfab6d78d9bcc862d26339f2
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 39ea718e58c70c1b9606ceadd1c894e4a784129b057f7a4185391ccd0890519c864173afbda9bb05ce085c8b00be4c3a0eb0cb119fa375c79e295baeba3483d3
|
7
|
+
data.tar.gz: 4ee4b563bd3b34a944cddcb417cd847400213e8897a95cd04832d0f808468013ba810f1d215e62e899b1211802609622b25c6e93d26399914bc0198abf9a43ed
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
# lita-libratoo
|
2
|
+
|
3
|
+
TODO: Add a description of the plugin.
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add lita-libratoo to your Lita instance's Gemfile:
|
8
|
+
|
9
|
+
``` ruby
|
10
|
+
gem "lita-libratoo"
|
11
|
+
```
|
12
|
+
|
13
|
+
## Configuration
|
14
|
+
|
15
|
+
TODO: Describe any configuration attributes the plugin exposes.
|
16
|
+
|
17
|
+
## Usage
|
18
|
+
|
19
|
+
TODO: Describe the plugin's features and how to use them.
|
data/Rakefile
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
require "librato/metrics"
|
2
|
+
module Lita
|
3
|
+
module Handlers
|
4
|
+
class Libratoo < Handler
|
5
|
+
config :email, required: true
|
6
|
+
config :api_key, required: true
|
7
|
+
|
8
|
+
route(/^librato\s(.+)/, :librato, command: true, help: {
|
9
|
+
"librato [metric] [options]" => "example: 'lita librato AWS.RDS.ReplicaLag source: * count: 5'"
|
10
|
+
})
|
11
|
+
|
12
|
+
def librato(response)
|
13
|
+
Librato::Metrics.authenticate config.email, config.api_key
|
14
|
+
|
15
|
+
arguments = response.matches[0][0].delete(':').split
|
16
|
+
|
17
|
+
if arguments[0] == "search"
|
18
|
+
metrics = Librato::Metrics.metrics.map{|v| v["name"] }
|
19
|
+
response_text = metrics.grep(/#{arguments[1]}/i).join(', ')
|
20
|
+
response_text = "No results" if response_text.empty?
|
21
|
+
if response_text.length > 400 && !response.message.source.private_message
|
22
|
+
return response.reply "Large result set. Sending you a direct message."
|
23
|
+
return response.reply_privately response_text
|
24
|
+
else
|
25
|
+
return response.reply response_text
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
metric, options = arguments[0].to_sym, arguments[1..-1]
|
30
|
+
options = symbolize_keys Hash[*options]
|
31
|
+
options = { count: 1 }.merge options
|
32
|
+
options[:start_time] = DateTime.parse(options[:start_time]).to_time unless options[:start_time].is_a? Numeric
|
33
|
+
|
34
|
+
results = Librato::Metrics.get_measurements metric, options
|
35
|
+
results = Hash[results.map {|source, r| [source, r.map{|v| v["value"] }]}]
|
36
|
+
|
37
|
+
if results.keys.count == 0
|
38
|
+
response_text = "No results"
|
39
|
+
elsif results.keys.count == 1
|
40
|
+
response_text = results.values.flatten.join ', '
|
41
|
+
else
|
42
|
+
response_text = results.map{|k,v| "#{k}: #{v.join ', '}" }.join "\n"
|
43
|
+
end
|
44
|
+
|
45
|
+
if response_text.length > 400 && !response.message.source.private_message
|
46
|
+
return response.reply "Large result set. Sending you a direct message."
|
47
|
+
return response.reply_privately response_text
|
48
|
+
else
|
49
|
+
return response.reply response_text
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def symbolize_keys(hash)
|
54
|
+
Hash[hash.map { |(k, v)| [ k.to_sym, v ] }]
|
55
|
+
end
|
56
|
+
|
57
|
+
Lita.register_handler(self)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require "lita"
|
2
|
+
|
3
|
+
Lita.load_locales Dir[File.expand_path(
|
4
|
+
File.join("..", "..", "locales", "*.yml"), __FILE__
|
5
|
+
)]
|
6
|
+
|
7
|
+
require "lita/handlers/libratoo"
|
8
|
+
|
9
|
+
Lita::Handlers::Libratoo.template_root File.expand_path(
|
10
|
+
File.join("..", "..", "templates"),
|
11
|
+
__FILE__
|
12
|
+
)
|
@@ -0,0 +1,25 @@
|
|
1
|
+
Gem::Specification.new do |spec|
|
2
|
+
spec.name = "lita-libratoo"
|
3
|
+
spec.version = "0.1.0"
|
4
|
+
spec.authors = ["Eric Boehs"]
|
5
|
+
spec.email = ["ericboehs@gmail.com"]
|
6
|
+
spec.description = "Query librato metrics from Lita"
|
7
|
+
spec.summary = "Query librato metrics from Lita"
|
8
|
+
spec.homepage = "https://github.com/ericboehs/lita-libratoo"
|
9
|
+
spec.license = "MIT"
|
10
|
+
spec.metadata = { "lita_plugin_type" => "handler" }
|
11
|
+
|
12
|
+
spec.files = `git ls-files`.split($/)
|
13
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
14
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
15
|
+
spec.require_paths = ["lib"]
|
16
|
+
|
17
|
+
spec.add_runtime_dependency "lita", ">= 4.7"
|
18
|
+
spec.add_runtime_dependency "librato-metrics", "~> 1.6"
|
19
|
+
|
20
|
+
spec.add_development_dependency "bundler", "~> 1.3"
|
21
|
+
spec.add_development_dependency "pry-byebug"
|
22
|
+
spec.add_development_dependency "rake"
|
23
|
+
spec.add_development_dependency "rack-test"
|
24
|
+
spec.add_development_dependency "rspec", ">= 3.0.0"
|
25
|
+
end
|
data/locales/en.yml
ADDED
data/spec/spec_helper.rb
ADDED
data/templates/.gitkeep
ADDED
File without changes
|
metadata
ADDED
@@ -0,0 +1,156 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: lita-libratoo
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Eric Boehs
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-03-11 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: lita
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '4.7'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '4.7'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: librato-metrics
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.6'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.6'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: bundler
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.3'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.3'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: pry-byebug
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rake
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rack-test
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rspec
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 3.0.0
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 3.0.0
|
111
|
+
description: Query librato metrics from Lita
|
112
|
+
email:
|
113
|
+
- ericboehs@gmail.com
|
114
|
+
executables: []
|
115
|
+
extensions: []
|
116
|
+
extra_rdoc_files: []
|
117
|
+
files:
|
118
|
+
- ".gitignore"
|
119
|
+
- Gemfile
|
120
|
+
- README.md
|
121
|
+
- Rakefile
|
122
|
+
- lib/lita-libratoo.rb
|
123
|
+
- lib/lita/handlers/libratoo.rb
|
124
|
+
- lita-libratoo.gemspec
|
125
|
+
- locales/en.yml
|
126
|
+
- spec/lita/handlers/libratoo_spec.rb
|
127
|
+
- spec/spec_helper.rb
|
128
|
+
- templates/.gitkeep
|
129
|
+
homepage: https://github.com/ericboehs/lita-libratoo
|
130
|
+
licenses:
|
131
|
+
- MIT
|
132
|
+
metadata:
|
133
|
+
lita_plugin_type: handler
|
134
|
+
post_install_message:
|
135
|
+
rdoc_options: []
|
136
|
+
require_paths:
|
137
|
+
- lib
|
138
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
139
|
+
requirements:
|
140
|
+
- - ">="
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: '0'
|
143
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
144
|
+
requirements:
|
145
|
+
- - ">="
|
146
|
+
- !ruby/object:Gem::Version
|
147
|
+
version: '0'
|
148
|
+
requirements: []
|
149
|
+
rubyforge_project:
|
150
|
+
rubygems_version: 2.5.1
|
151
|
+
signing_key:
|
152
|
+
specification_version: 4
|
153
|
+
summary: Query librato metrics from Lita
|
154
|
+
test_files:
|
155
|
+
- spec/lita/handlers/libratoo_spec.rb
|
156
|
+
- spec/spec_helper.rb
|