prometheus-splash 0.7.0 → 0.8.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.
@@ -21,7 +21,7 @@ module Splash
21
21
  # @param [Hash] options
22
22
  # @option options [Symbol] :quiet activate quiet mode for log (limit to :fatal)
23
23
  # @return [Hash] Exiter Case (:quiet_exit, :already_exist, :unknown_error or other)
24
- def startdaemon(options = {})
24
+ def startweb(options = {})
25
25
  require 'splash/webadmin/main'
26
26
  config = get_config
27
27
  log = get_logger
@@ -64,7 +64,7 @@ module Splash
64
64
  # @param [Hash] options
65
65
  # @option options [Symbol] :quiet activate quiet mode for log (limit to :fatal)
66
66
  # @return [Hash] Exiter Case (:quiet_exit, :not_found, other)
67
- def stopdaemon(options = {})
67
+ def stopweb(options = {})
68
68
  config = get_config
69
69
  log = get_logger
70
70
  log.level = :fatal if options[:quiet]
@@ -86,7 +86,7 @@ module Splash
86
86
  # Status of the Splash WebAdmin, display status
87
87
  # @param [Hash] options ignored
88
88
  # @return [Hash] Exiter Case (:status_ko, :status_ok)
89
- def statusdaemon(options = {})
89
+ def statusweb(options = {})
90
90
  log = get_logger
91
91
  config = get_config
92
92
  pid = realpid = ''
@@ -6,6 +6,7 @@ class WebAdminApp < Sinatra::Base
6
6
  include Splash::Helpers
7
7
  include Splash::Exiter
8
8
  include Splash::Loggers
9
+ include Splash::Daemon::Controller
9
10
 
10
11
  set :server, 'thin'
11
12
  set :port, get_config.webadmin_port
@@ -3,6 +3,7 @@ WebAdminApp.get '/' do
3
3
  url = "http://#{get_config.webadmin_ip}:#{get_config.webadmin_port}/api/config/full.yml"
4
4
  @raw = RestClient::Request.execute(method: 'GET', url: url,timeout: 10)
5
5
  @data = YAML::load(@raw)[:data]
6
+ @status = get_processes({ :pattern => get_config.daemon_process_name}).empty?
6
7
  slim :home, :format => :html
7
8
  end
8
9
 
@@ -10,3 +11,21 @@ WebAdminApp.get '/home' do
10
11
  get_menu 0
11
12
  slim :home, :format => :html
12
13
  end
14
+
15
+ WebAdminApp.get '/daemon/:action' do
16
+ content_type :text
17
+
18
+ case params[:action]
19
+ when 'start'
20
+ startdaemon scheduling: true, purge: false
21
+ return 'start'
22
+ when 'stop'
23
+ stopdaemon
24
+ return 'stop'
25
+ when 'restart'
26
+ stopdaemon
27
+ startdaemon scheduling: true, purge: false
28
+ return 'start'
29
+ else
30
+ end
31
+ end
@@ -1,13 +1,19 @@
1
1
 
2
2
 
3
3
  WebAdminApp.use Rack::ReverseProxy do
4
- reverse_proxy /^\/pushgateway\/?(.*)$/, get_config.prometheus_pushgateway_url
4
+ reverse_proxy /^\/pushgateway\/?(.*)$/, get_config.prometheus_pushgateway_url + '/'
5
5
  reverse_proxy_options preserve_host: true
6
6
  end
7
7
 
8
8
 
9
9
  WebAdminApp.use Rack::ReverseProxy do
10
- reverse_proxy /^\/prometheus\/?(.*)$/, get_config.prometheus_url
10
+ reverse_proxy /^\/prometheus\/?(.*)$/, get_config.prometheus_url + '/'
11
+ reverse_proxy_options preserve_host: true
12
+ end
13
+
14
+
15
+ WebAdminApp.use Rack::ReverseProxy do
16
+ reverse_proxy /^\/alertmanager\/?(.*)$/, get_config.prometheus_alertmanager_url + '/'
11
17
  reverse_proxy_options preserve_host: true
12
18
  end
13
19
 
@@ -19,9 +25,11 @@ WebAdminApp.get '/proxy/links' do
19
25
  @proxy = true
20
26
  @pushgateway_url = "http://#{config.webadmin_ip}:#{config.webadmin_port}/pushgateway"
21
27
  @prometheus_url = "http://#{config.webadmin_ip}:#{config.webadmin_port}/prometheus"
28
+ @alertmanager_url = "http://#{config.webadmin_ip}:#{config.webadmin_port}/prometheus"
22
29
  else
23
30
  @proxy = false
24
31
  @pushgateway_url = "#{config.prometheus_pushgateway_url}"
32
+ @alertmanager_url = "#{config.prometheus_alertmanager_url}"
25
33
  @prometheus_url = "#{config.prometheus_url}"
26
34
  end
27
35
  slim :proxy, :format => :html
@@ -1,5 +1,53 @@
1
- h2 This is Splash
2
- p Choose a activity in the main menu
1
+ javascript:
2
+
3
+
4
+
5
+ $('body').on( 'click','button', function(){
6
+ var tmp = this.id
7
+ $("#stop").prop('disabled', true);
8
+ $("#start").prop('disabled', true);
9
+ var url = "/daemon/" + tmp;
10
+ $("#stop").prop('disabled', true);
11
+ $("#start").prop('disabled', true);
12
+ $.get(url, function( data ) {
13
+
14
+ console.log(data);
15
+ if (data == 'stop') {
16
+ $("#stop").prop('disabled', true);
17
+ $("#start").prop('disabled', false);
18
+ $("#daemon").removeClass('uk-badge-success').addClass('uk-badge-danger');
19
+ $("#daemon").text('OFF');
20
+ }
21
+ if (data == 'start') {
22
+ $("#stop").prop('disabled', false);
23
+ $("#start").prop('disabled', true);
24
+ $("#daemon").removeClass('uk-badge-danger').addClass('uk-badge-success');
25
+ $("#daemon").text('ON');
26
+ }
27
+ });
28
+ });
29
+
30
+ div.uk-grid
31
+ div.uk-width-medium-1-1
32
+ div.uk-panel.uk-panel-box
33
+ div.uk-text-large.uk-text-bold <i class="uk-icon-cogs uk-icon-justify uk-icon-large"></i>&nbsp;&nbsp;Splash Daemon status
34
+ table.uk-table
35
+ tr
36
+ td
37
+ b Actions :
38
+ div.uk-button-group
39
+ - if @status == false
40
+ button.uk-button(id="start" disabled): i.uk-icon-play
41
+ button.uk-button(id="stop"): i.uk-icon-stop
42
+ - else
43
+ button.uk-button(id="start"): i.uk-icon-play
44
+ button.uk-button(id="stop" disabled): i.uk-icon-stop
45
+ td
46
+ b Status :
47
+ - if @status == false
48
+ div.uk-badge.uk-badge-success.uk-badge-notifications(id="daemon") ON
49
+ - else
50
+ div.uk-badge.uk-badge-danger.uk-badge-notifications(id="daemon") OFF
3
51
 
4
52
 
5
53
  div.uk-grid
@@ -7,7 +55,6 @@ div.uk-grid
7
55
  div.uk-panel.uk-panel-box
8
56
  span.uk-text-large.uk-text-bold Global Configuration
9
57
  br
10
- br
11
58
  span.uk-text-bold <i>Logger and display</i> :
12
59
  ul
13
60
  li <b>Level:</b> #{@data[:loggers][:level]}
@@ -23,7 +70,6 @@ div.uk-grid
23
70
  div.uk-panel.uk-panel-box
24
71
  span.uk-text-large.uk-text-bold Transport and Backend
25
72
  br
26
- br
27
73
  span.uk-text-bold <i>Backend</i> :
28
74
  ul
29
75
  li <b>Backend type:</b> #{@data[:backends][:stores][:execution_trace][:type]}
@@ -66,7 +112,6 @@ div.uk-grid
66
112
  div.uk-panel.uk-panel-box
67
113
  span.uk-text-large.uk-text-bold Web UI
68
114
  br
69
- br
70
115
  span.uk-text-bold <i>Webadmin</i> :
71
116
  ul
72
117
  li <b>IP:</b> #{@data[:webadmin_ip]}
@@ -11,3 +11,6 @@ div.uk-width-medium-1-1
11
11
  li
12
12
  i.uk-icon-hand-o-right
13
13
  a href="#{@pushgateway_url}" &nbsp;Prometheus PushGateway
14
+ li
15
+ i.uk-icon-hand-o-right
16
+ a href="#{@alertmanager_url}" &nbsp;Prometheus Alertmanager
@@ -26,7 +26,10 @@ Gem::Specification.new do |spec|
26
26
  spec.add_runtime_dependency 'bunny','~> 2.15.0'
27
27
  spec.add_runtime_dependency 'ps-ruby','~> 0.0.4'
28
28
  spec.add_runtime_dependency 'tty-markdown','~> 0.6.0'
29
- spec.add_runtime_dependency 'tty-pager','~> 0.12.1'
29
+ spec.add_runtime_dependency 'tty-pager','~> 0.12.0'
30
+ spec.add_runtime_dependency 'tty-table','~> 0.11.0'
31
+ spec.add_runtime_dependency 'net-ssh','~> 6.1.0'
32
+ spec.add_runtime_dependency 'net-scp','~> 3.0.0'
30
33
  spec.add_runtime_dependency 'colorize','~> 0.8.1'
31
34
  spec.add_runtime_dependency 'sinatra','~> 2.1.0'
32
35
  spec.add_runtime_dependency 'thin','~> 1.7.2'
@@ -41,6 +44,6 @@ Gem::Specification.new do |spec|
41
44
  spec.add_development_dependency 'roodi', '~> 5.0.0'
42
45
  spec.add_development_dependency 'code_statistics', '~> 0.2.13'
43
46
  spec.add_development_dependency 'yard-rspec', '~> 0.1'
44
-
47
+ spec.add_development_dependency 'bundler', '~> 2.1.4'
45
48
 
46
49
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: prometheus-splash
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Romain GEORGES
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-11 00:00:00.000000000 Z
11
+ date: 2020-10-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -114,14 +114,56 @@ dependencies:
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 0.12.1
117
+ version: 0.12.0
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: 0.12.0
125
+ - !ruby/object:Gem::Dependency
126
+ name: tty-table
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: 0.11.0
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: 0.11.0
139
+ - !ruby/object:Gem::Dependency
140
+ name: net-ssh
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: 6.1.0
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: 6.1.0
153
+ - !ruby/object:Gem::Dependency
154
+ name: net-scp
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: 3.0.0
118
160
  type: :runtime
119
161
  prerelease: false
120
162
  version_requirements: !ruby/object:Gem::Requirement
121
163
  requirements:
122
164
  - - "~>"
123
165
  - !ruby/object:Gem::Version
124
- version: 0.12.1
166
+ version: 3.0.0
125
167
  - !ruby/object:Gem::Dependency
126
168
  name: colorize
127
169
  requirement: !ruby/object:Gem::Requirement
@@ -318,6 +360,20 @@ dependencies:
318
360
  - - "~>"
319
361
  - !ruby/object:Gem::Version
320
362
  version: '0.1'
363
+ - !ruby/object:Gem::Dependency
364
+ name: bundler
365
+ requirement: !ruby/object:Gem::Requirement
366
+ requirements:
367
+ - - "~>"
368
+ - !ruby/object:Gem::Version
369
+ version: 2.1.4
370
+ type: :development
371
+ prerelease: false
372
+ version_requirements: !ruby/object:Gem::Requirement
373
+ requirements:
374
+ - - "~>"
375
+ - !ruby/object:Gem::Version
376
+ version: 2.1.4
321
377
  description: Prometheus Logs and Batchs supervision over PushGateway and commands
322
378
  orchestration
323
379
  email:
@@ -351,6 +407,7 @@ files:
351
407
  - lib/splash/cli/logs.rb
352
408
  - lib/splash/cli/process.rb
353
409
  - lib/splash/cli/sequences.rb
410
+ - lib/splash/cli/transfers.rb
354
411
  - lib/splash/cli/webadmin.rb
355
412
  - lib/splash/commands.rb
356
413
  - lib/splash/config.rb
@@ -377,6 +434,7 @@ files:
377
434
  - lib/splash/processes.rb
378
435
  - lib/splash/sequences.rb
379
436
  - lib/splash/templates.rb
437
+ - lib/splash/transfers.rb
380
438
  - lib/splash/transports.rb
381
439
  - lib/splash/transports/rabbitmq.rb
382
440
  - lib/splash/webadmin.rb