lbrt 0.1.1 → 0.1.3
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/README.md +31 -1
- data/etc/peco.gif +0 -0
- data/lbrt.gemspec +1 -0
- data/lib/lbrt/cli/app.rb +3 -0
- data/lib/lbrt/cli/metric.rb +10 -0
- data/lib/lbrt/cli/space.rb +5 -0
- data/lib/lbrt/metric.rb +23 -0
- data/lib/lbrt/space/dsl/context/space.rb +1 -1
- data/lib/lbrt/space/dsl/context.rb +1 -1
- data/lib/lbrt/space/exporter.rb +1 -0
- data/lib/lbrt/space.rb +19 -0
- data/lib/lbrt/utils.rb +6 -0
- data/lib/lbrt/version.rb +1 -1
- data/lib/lbrt.rb +5 -0
- metadata +42 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 92413afc876bd9b79a20ff955782b7caceda7ea7
|
4
|
+
data.tar.gz: d99af8d2a10eff05dde5cf0b31ed0790c61133e9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5cd2368c0a8c35c3067beeafdfb1a1529d87fedcaef2d09e305b09ef28ff82a48c9df938009f623e1aa53e763d72b5adc813ab1691c736bf9f546c0d63a0f4fb
|
7
|
+
data.tar.gz: e77e88e6aa1b0d043be2b2cb858e509d4d3f8eb815b65f64c093030732deced7d6aef6e74070b087d507488b218c5c37d79dbe9ccd32106621c962f8be5952e0
|
data/README.md
CHANGED
@@ -25,6 +25,7 @@ $ lbrt
|
|
25
25
|
Commands:
|
26
26
|
lbrt alert SUBCOMMAND # Manage alerts
|
27
27
|
lbrt help [COMMAND] # Describe available commands or one specific command
|
28
|
+
lbrt metric SUBCOMMAND # Manage metrics
|
28
29
|
lbrt service SUBCOMMAND # Manage services
|
29
30
|
lbrt space SUBCOMMAND # Manage spaces
|
30
31
|
|
@@ -36,7 +37,9 @@ Options:
|
|
36
37
|
[--color], [--no-color]
|
37
38
|
# Default: true
|
38
39
|
[--debug], [--no-debug]
|
40
|
+
```
|
39
41
|
|
42
|
+
```sh
|
40
43
|
$ lbrt help alert
|
41
44
|
Commands:
|
42
45
|
lbrt alert apply FILE # Apply alerts
|
@@ -45,7 +48,19 @@ Commands:
|
|
45
48
|
|
46
49
|
Options:
|
47
50
|
[--target=TARGET]
|
51
|
+
```
|
52
|
+
|
53
|
+
```sh
|
54
|
+
$ brt help metric
|
55
|
+
Commands:
|
56
|
+
lbrt metric help [COMMAND] # Describe subcommands or one specific subcommand
|
57
|
+
lbrt metric peco REGRXP # Show alert by peco
|
48
58
|
|
59
|
+
Options:
|
60
|
+
[--target=TARGET]
|
61
|
+
```
|
62
|
+
|
63
|
+
```sh
|
49
64
|
$ lbrt help service
|
50
65
|
Commands:
|
51
66
|
lbrt service apply FILE # Apply services
|
@@ -54,12 +69,15 @@ Commands:
|
|
54
69
|
|
55
70
|
Options:
|
56
71
|
[--target=TARGET]
|
72
|
+
```
|
57
73
|
|
74
|
+
```sh
|
58
75
|
$ lbrt help space
|
59
76
|
Commands:
|
60
77
|
lbrt space apply FILE # Apply spaces
|
61
78
|
lbrt space export [FILE] # Export spaces
|
62
79
|
lbrt space help [COMMAND] # Describe subcommands or one specific subcommand
|
80
|
+
lbrt space peco # Show space by peco
|
63
81
|
|
64
82
|
Options:
|
65
83
|
[--target=TARGET]
|
@@ -208,6 +226,18 @@ template "dstat" do
|
|
208
226
|
end
|
209
227
|
|
210
228
|
space "my-host-001" do
|
211
|
-
include_template
|
229
|
+
include_template "dstat"
|
212
230
|
end
|
213
231
|
```
|
232
|
+
|
233
|
+
## Show metric/space by [peco](https://github.com/peco/peco)
|
234
|
+
|
235
|
+
```sh
|
236
|
+
lbrt metric peco
|
237
|
+
```
|
238
|
+
|
239
|
+
```sh
|
240
|
+
lbrt space peco
|
241
|
+
```
|
242
|
+
|
243
|
+

|
data/etc/peco.gif
ADDED
Binary file
|
data/lbrt.gemspec
CHANGED
data/lib/lbrt/cli/app.rb
CHANGED
@@ -7,6 +7,9 @@ class Lbrt::CLI::App < Thor
|
|
7
7
|
desc 'alert SUBCOMMAND', 'Manage alerts'
|
8
8
|
subcommand :alert, Lbrt::CLI::Alert
|
9
9
|
|
10
|
+
desc 'metric SUBCOMMAND', 'Manage metrics'
|
11
|
+
subcommand :metric, Lbrt::CLI::Metric
|
12
|
+
|
10
13
|
desc 'service SUBCOMMAND', 'Manage services'
|
11
14
|
subcommand :service, Lbrt::CLI::Service
|
12
15
|
|
data/lib/lbrt/cli/space.rb
CHANGED
@@ -4,6 +4,11 @@ class Lbrt::CLI::Space < Thor
|
|
4
4
|
class_option :target
|
5
5
|
class_option :'export-concurrency', :type => :numeric, :default => 32
|
6
6
|
|
7
|
+
desc 'peco', 'Show space by peco'
|
8
|
+
def peco
|
9
|
+
client(Lbrt::Space).peco
|
10
|
+
end
|
11
|
+
|
7
12
|
desc 'apply FILE', 'Apply spaces'
|
8
13
|
option :'dry-run', :type => :boolean, :default => false
|
9
14
|
def apply(file)
|
data/lib/lbrt/metric.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
class Lbrt::Metric
|
2
|
+
include Lbrt::Logger::Helper
|
3
|
+
|
4
|
+
def initialize(client, options = {})
|
5
|
+
@client = client
|
6
|
+
@options = options
|
7
|
+
end
|
8
|
+
|
9
|
+
def peco
|
10
|
+
metric_names = @client.metrics.get.map {|mtrc|
|
11
|
+
mtrc['name']
|
12
|
+
}.select {|name|
|
13
|
+
Lbrt::Utils.matched?(name, @options[:target])
|
14
|
+
}
|
15
|
+
|
16
|
+
result = PecoSelector.select_from(metric_names)
|
17
|
+
|
18
|
+
result.each do |name|
|
19
|
+
url = "https://metrics.librato.com/s/metrics/#{name}"
|
20
|
+
Lbrt::Utils.open(url)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -13,7 +13,7 @@ class Lbrt::Space::DSL::Context::Space
|
|
13
13
|
private
|
14
14
|
|
15
15
|
def include_template(template_name)
|
16
|
-
tmplt = @templates[template_name]
|
16
|
+
tmplt = @templates[template_name.to_s]
|
17
17
|
|
18
18
|
unless tmplt
|
19
19
|
raise "Space `#{@name_or_id}`: Template `#{template_name}` is not defined"
|
data/lib/lbrt/space/exporter.rb
CHANGED
@@ -26,6 +26,7 @@ class Lbrt::Space::Exporter
|
|
26
26
|
Parallel.each(spaces, :in_threads => concurrency) do |spc|
|
27
27
|
space_id = spc.fetch('id')
|
28
28
|
name_or_id = spc.fetch('name') || space_id
|
29
|
+
next unless Lbrt::Utils.matched?(name_or_id, @options[:target])
|
29
30
|
charts = @client.spaces(space_id).charts.get
|
30
31
|
|
31
32
|
if space_by_name_or_id[name_or_id]
|
data/lib/lbrt/space.rb
CHANGED
@@ -7,6 +7,24 @@ class Lbrt::Space
|
|
7
7
|
@driver = Lbrt::Driver.new(@client, @options)
|
8
8
|
end
|
9
9
|
|
10
|
+
def peco
|
11
|
+
space_by_name_or_id = {}
|
12
|
+
|
13
|
+
metric_names = @client.spaces.get.each do |spc|
|
14
|
+
space_id = spc.fetch('id')
|
15
|
+
name_or_id = spc.fetch('name') || space_id
|
16
|
+
next unless Lbrt::Utils.matched?(name_or_id, @options[:target])
|
17
|
+
space_by_name_or_id[name_or_id] = space_id
|
18
|
+
end
|
19
|
+
|
20
|
+
result = PecoSelector.select_from(space_by_name_or_id)
|
21
|
+
|
22
|
+
result.each do |name|
|
23
|
+
url = "https://metrics.librato.com/s/spaces/#{name}"
|
24
|
+
Lbrt::Utils.open(url)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
10
28
|
def export(export_options = {})
|
11
29
|
exported = Lbrt::Space::Exporter.export(@client, @options)
|
12
30
|
Lbrt::Space::DSL.convert(exported, @options)
|
@@ -28,6 +46,7 @@ class Lbrt::Space
|
|
28
46
|
updated = false
|
29
47
|
|
30
48
|
expected.each do |name_or_id, expected_space|
|
49
|
+
next unless Lbrt::Utils.matched?(name_or_id, @options[:target])
|
31
50
|
actual_space = actual.delete(name_or_id)
|
32
51
|
|
33
52
|
if not actual_space and name_or_id.is_a?(Integer)
|
data/lib/lbrt/utils.rb
CHANGED
data/lib/lbrt/version.rb
CHANGED
data/lib/lbrt.rb
CHANGED
@@ -3,6 +3,8 @@ require 'hashie'
|
|
3
3
|
require 'librato/client'
|
4
4
|
require 'logger'
|
5
5
|
require 'parallel'
|
6
|
+
require 'peco_selector'
|
7
|
+
require 'shellwords'
|
6
8
|
require 'singleton'
|
7
9
|
require 'tempfile'
|
8
10
|
require 'term/ansicolor'
|
@@ -16,12 +18,15 @@ require 'lbrt/utils'
|
|
16
18
|
|
17
19
|
require 'lbrt/cli'
|
18
20
|
require 'lbrt/cli/alert'
|
21
|
+
require 'lbrt/cli/metric'
|
19
22
|
require 'lbrt/cli/service'
|
20
23
|
require 'lbrt/cli/space'
|
21
24
|
require 'lbrt/cli/app'
|
22
25
|
|
23
26
|
require 'lbrt/driver'
|
24
27
|
|
28
|
+
require 'lbrt/metric'
|
29
|
+
|
25
30
|
require 'lbrt/space'
|
26
31
|
require 'lbrt/space/dsl'
|
27
32
|
require 'lbrt/space/dsl/context'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lbrt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Genki Sugawara
|
@@ -14,126 +14,140 @@ dependencies:
|
|
14
14
|
name: diffy
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: hashie
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - '>='
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - '>='
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: librato-client
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - '>='
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - '>='
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: parallel
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: peco_selector
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '>='
|
67
81
|
- !ruby/object:Gem::Version
|
68
82
|
version: '0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: term-ansicolor
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
72
86
|
requirements:
|
73
|
-
- -
|
87
|
+
- - '>='
|
74
88
|
- !ruby/object:Gem::Version
|
75
89
|
version: '0'
|
76
90
|
type: :runtime
|
77
91
|
prerelease: false
|
78
92
|
version_requirements: !ruby/object:Gem::Requirement
|
79
93
|
requirements:
|
80
|
-
- -
|
94
|
+
- - '>='
|
81
95
|
- !ruby/object:Gem::Version
|
82
96
|
version: '0'
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
98
|
name: thor
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
86
100
|
requirements:
|
87
|
-
- -
|
101
|
+
- - '>='
|
88
102
|
- !ruby/object:Gem::Version
|
89
103
|
version: '0'
|
90
104
|
type: :runtime
|
91
105
|
prerelease: false
|
92
106
|
version_requirements: !ruby/object:Gem::Requirement
|
93
107
|
requirements:
|
94
|
-
- -
|
108
|
+
- - '>='
|
95
109
|
- !ruby/object:Gem::Version
|
96
110
|
version: '0'
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
112
|
name: bundler
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
100
114
|
requirements:
|
101
|
-
- -
|
115
|
+
- - '>='
|
102
116
|
- !ruby/object:Gem::Version
|
103
117
|
version: '0'
|
104
118
|
type: :development
|
105
119
|
prerelease: false
|
106
120
|
version_requirements: !ruby/object:Gem::Requirement
|
107
121
|
requirements:
|
108
|
-
- -
|
122
|
+
- - '>='
|
109
123
|
- !ruby/object:Gem::Version
|
110
124
|
version: '0'
|
111
125
|
- !ruby/object:Gem::Dependency
|
112
126
|
name: rake
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
114
128
|
requirements:
|
115
|
-
- -
|
129
|
+
- - '>='
|
116
130
|
- !ruby/object:Gem::Version
|
117
131
|
version: '0'
|
118
132
|
type: :development
|
119
133
|
prerelease: false
|
120
134
|
version_requirements: !ruby/object:Gem::Requirement
|
121
135
|
requirements:
|
122
|
-
- -
|
136
|
+
- - '>='
|
123
137
|
- !ruby/object:Gem::Version
|
124
138
|
version: '0'
|
125
139
|
- !ruby/object:Gem::Dependency
|
126
140
|
name: rspec
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|
128
142
|
requirements:
|
129
|
-
- -
|
143
|
+
- - '>='
|
130
144
|
- !ruby/object:Gem::Version
|
131
145
|
version: 3.0.0
|
132
146
|
type: :development
|
133
147
|
prerelease: false
|
134
148
|
version_requirements: !ruby/object:Gem::Requirement
|
135
149
|
requirements:
|
136
|
-
- -
|
150
|
+
- - '>='
|
137
151
|
- !ruby/object:Gem::Version
|
138
152
|
version: 3.0.0
|
139
153
|
description: A tool to manage Librato. It defines the state of Librato using DSL,
|
@@ -145,15 +159,16 @@ executables:
|
|
145
159
|
extensions: []
|
146
160
|
extra_rdoc_files: []
|
147
161
|
files:
|
148
|
-
-
|
149
|
-
-
|
150
|
-
-
|
162
|
+
- .gitignore
|
163
|
+
- .rspec
|
164
|
+
- .travis.yml
|
151
165
|
- Gemfile
|
152
166
|
- LICENSE.txt
|
153
167
|
- README.md
|
154
168
|
- Rakefile
|
155
169
|
- bin/console
|
156
170
|
- bin/setup
|
171
|
+
- etc/peco.gif
|
157
172
|
- exe/lbrt
|
158
173
|
- lbrt.gemspec
|
159
174
|
- lib/lbrt.rb
|
@@ -167,11 +182,13 @@ files:
|
|
167
182
|
- lib/lbrt/cli.rb
|
168
183
|
- lib/lbrt/cli/alert.rb
|
169
184
|
- lib/lbrt/cli/app.rb
|
185
|
+
- lib/lbrt/cli/metric.rb
|
170
186
|
- lib/lbrt/cli/service.rb
|
171
187
|
- lib/lbrt/cli/space.rb
|
172
188
|
- lib/lbrt/driver.rb
|
173
189
|
- lib/lbrt/ext/string_ext.rb
|
174
190
|
- lib/lbrt/logger.rb
|
191
|
+
- lib/lbrt/metric.rb
|
175
192
|
- lib/lbrt/service.rb
|
176
193
|
- lib/lbrt/service/dsl.rb
|
177
194
|
- lib/lbrt/service/dsl/context.rb
|
@@ -199,17 +216,17 @@ require_paths:
|
|
199
216
|
- lib
|
200
217
|
required_ruby_version: !ruby/object:Gem::Requirement
|
201
218
|
requirements:
|
202
|
-
- -
|
219
|
+
- - '>='
|
203
220
|
- !ruby/object:Gem::Version
|
204
221
|
version: '0'
|
205
222
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
206
223
|
requirements:
|
207
|
-
- -
|
224
|
+
- - '>='
|
208
225
|
- !ruby/object:Gem::Version
|
209
226
|
version: '0'
|
210
227
|
requirements: []
|
211
228
|
rubyforge_project:
|
212
|
-
rubygems_version: 2.
|
229
|
+
rubygems_version: 2.0.14
|
213
230
|
signing_key:
|
214
231
|
specification_version: 4
|
215
232
|
summary: A tool to manage Librato. It defines the state of Librato using DSL, and
|