prometheus-splash 0.7.0 → 0.8.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/CHANGELOG.md +61 -1
- data/README.md +400 -178
- data/config/splash.yml +45 -5
- data/lib/splash/backends.rb +8 -1
- data/lib/splash/backends/file.rb +1 -1
- data/lib/splash/cli.rb +2 -1
- data/lib/splash/cli/commands.rb +100 -16
- data/lib/splash/cli/config.rb +12 -1
- data/lib/splash/cli/daemon.rb +41 -1
- data/lib/splash/cli/logs.rb +144 -48
- data/lib/splash/cli/process.rb +145 -52
- data/lib/splash/cli/transfers.rb +213 -0
- data/lib/splash/cli/webadmin.rb +3 -3
- data/lib/splash/commands.rb +85 -19
- data/lib/splash/config.rb +145 -52
- data/lib/splash/config/flush.rb +2 -2
- data/lib/splash/constants.rb +7 -3
- data/lib/splash/daemon/metrics.rb +6 -6
- data/lib/splash/daemon/orchestrator.rb +76 -36
- data/lib/splash/daemon/orchestrator/grammar.rb +16 -1
- data/lib/splash/dependencies.rb +6 -1
- data/lib/splash/exiter.rb +1 -1
- data/lib/splash/helpers.rb +12 -3
- data/lib/splash/loggers/cli.rb +2 -10
- data/lib/splash/logs.rb +94 -16
- data/lib/splash/processes.rb +91 -16
- data/lib/splash/transfers.rb +229 -0
- data/lib/splash/webadmin.rb +3 -3
- data/lib/splash/webadmin/api/routes/commands.rb +2 -2
- data/lib/splash/webadmin/api/routes/config.rb +95 -2
- data/lib/splash/webadmin/api/routes/logs.rb +32 -17
- data/lib/splash/webadmin/api/routes/process.rb +21 -9
- data/lib/splash/webadmin/api/routes/sequences.rb +2 -2
- data/lib/splash/webadmin/main.rb +3 -0
- data/lib/splash/webadmin/portal/controllers/commands.rb +2 -0
- data/lib/splash/webadmin/portal/controllers/documentation.rb +2 -0
- data/lib/splash/webadmin/portal/controllers/home.rb +24 -0
- data/lib/splash/webadmin/portal/controllers/logs.rb +57 -1
- data/lib/splash/webadmin/portal/controllers/processes.rb +61 -3
- data/lib/splash/webadmin/portal/controllers/proxy.rb +12 -3
- data/lib/splash/webadmin/portal/controllers/restclient.rb +6 -1
- data/lib/splash/webadmin/portal/controllers/sequences.rb +2 -0
- data/lib/splash/webadmin/portal/public/css/ultragreen.css +6 -0
- data/lib/splash/webadmin/portal/public/favicon.ico +0 -0
- data/lib/splash/webadmin/portal/views/commands.slim +1 -1
- data/lib/splash/webadmin/portal/views/documentation.slim +1 -1
- data/lib/splash/webadmin/portal/views/home.slim +53 -9
- data/lib/splash/webadmin/portal/views/layout.slim +2 -2
- data/lib/splash/webadmin/portal/views/log_form.slim +24 -0
- data/lib/splash/webadmin/portal/views/log_history.slim +24 -0
- data/lib/splash/webadmin/portal/views/logs.slim +93 -21
- data/lib/splash/webadmin/portal/views/nav.slim +1 -1
- data/lib/splash/webadmin/portal/views/not_found.slim +1 -1
- data/lib/splash/webadmin/portal/views/process_form.slim +21 -0
- data/lib/splash/webadmin/portal/views/process_history.slim +24 -0
- data/lib/splash/webadmin/portal/views/processes.slim +73 -3
- data/lib/splash/webadmin/portal/views/proxy.slim +5 -2
- data/lib/splash/webadmin/portal/views/restclient.slim +7 -4
- data/lib/splash/webadmin/portal/views/restclient_result.slim +24 -20
- data/lib/splash/webadmin/portal/views/sequences.slim +1 -1
- data/prometheus-splash.gemspec +7 -4
- data/ultragreen_roodi_coding_convention.yml +4 -4
- metadata +71 -8
@@ -1,5 +1,7 @@
|
|
1
1
|
WebAdminApp.get '/sequences' do
|
2
2
|
get_menu 3
|
3
|
+
log = get_logger
|
4
|
+
log.call "WEB : sequences, verb : GET, controller : /sequences"
|
3
5
|
url = "http://#{get_config.webadmin_ip}:#{get_config.webadmin_port}/api/sequences/list.yml"
|
4
6
|
raw = RestClient::Request.execute(method: 'GET', url: url,timeout: 10)
|
5
7
|
@data = YAML::load(raw)[:data]
|
Binary file
|
@@ -1,4 +1,4 @@
|
|
1
|
-
h2 <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i> Commands configured in Splash
|
1
|
+
h2.uk-text-success <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i> Commands configured in Splash
|
2
2
|
|
3
3
|
div.uk-width-medium-1-1
|
4
4
|
div.uk-panel.uk-panel-box
|
@@ -1,12 +1,58 @@
|
|
1
|
-
|
2
|
-
|
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-grid
|
34
|
+
div.uk-width-1-3.uk-text-large.uk-text-bold.uk-text-success <i class="uk-icon-cogs uk-icon-justify uk-icon-large"></i> Splash Daemon status
|
35
|
+
div.uk-width-1-3
|
36
|
+
b Actions :
|
37
|
+
div.uk-button-group
|
38
|
+
- if @status == false
|
39
|
+
button.uk-button(id="start" disabled): i.uk-icon-play
|
40
|
+
button.uk-button(id="stop"): i.uk-icon-stop
|
41
|
+
- else
|
42
|
+
button.uk-button(id="start"): i.uk-icon-play
|
43
|
+
button.uk-button(id="stop" disabled): i.uk-icon-stop
|
44
|
+
div.uk-width-1-3
|
45
|
+
b Status :
|
46
|
+
- if @status == false
|
47
|
+
div.uk-badge.uk-badge-success.uk-badge-notifications(id="daemon") ON
|
48
|
+
- else
|
49
|
+
div.uk-badge.uk-badge-danger.uk-badge-notifications(id="daemon") OFF
|
3
50
|
|
4
51
|
|
5
52
|
div.uk-grid
|
6
53
|
div.uk-width-medium-1-2
|
7
54
|
div.uk-panel.uk-panel-box
|
8
|
-
span.uk-text-large.uk-text-bold Global Configuration
|
9
|
-
br
|
55
|
+
span.uk-text-large.uk-text-bold.uk-text-success Global Configuration
|
10
56
|
br
|
11
57
|
span.uk-text-bold <i>Logger and display</i> :
|
12
58
|
ul
|
@@ -21,8 +67,7 @@ div.uk-grid
|
|
21
67
|
|
22
68
|
div.uk-width-medium-1-2
|
23
69
|
div.uk-panel.uk-panel-box
|
24
|
-
span.uk-text-large.uk-text-bold Transport and Backend
|
25
|
-
br
|
70
|
+
span.uk-text-large.uk-text-bold.uk-text-success Transport and Backend
|
26
71
|
br
|
27
72
|
span.uk-text-bold <i>Backend</i> :
|
28
73
|
ul
|
@@ -48,7 +93,7 @@ div.uk-grid
|
|
48
93
|
div.uk-grid
|
49
94
|
div.uk-width-medium-1-2
|
50
95
|
div.uk-panel.uk-panel-box
|
51
|
-
span.uk-text-large.uk-text-bold Daemon
|
96
|
+
span.uk-text-large.uk-text-bold.uk-text-success Daemon
|
52
97
|
br
|
53
98
|
ul
|
54
99
|
li <b>Logs monitoring scheduling: </b> #{@data[:daemon_logmon_scheduling]}
|
@@ -64,8 +109,7 @@ div.uk-grid
|
|
64
109
|
|
65
110
|
div.uk-width-medium-1-2
|
66
111
|
div.uk-panel.uk-panel-box
|
67
|
-
span.uk-text-large.uk-text-bold Web UI
|
68
|
-
br
|
112
|
+
span.uk-text-large.uk-text-bold.uk-text-success Web UI
|
69
113
|
br
|
70
114
|
span.uk-text-bold <i>Webadmin</i> :
|
71
115
|
ul
|
@@ -11,8 +11,7 @@ html lang="fr-fr" dir="ltr"
|
|
11
11
|
link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/uikit/2.27.5/css/uikit.gradient.min.css" integrity="sha512-Vjr6Vz5D/gNvTBfQW581ssADQr1j8fAOU0seE2SxO8UvsCBZBoFQS9Lec3hkmZbpcYnsifkBtdQaHU4x6MylGw==" crossorigin="anonymous"
|
12
12
|
link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/uikit/2.27.5/css/components/sticky.gradient.css" integrity="sha512-BY0A+4FEGeikNxmo9Q30BZMGRDykKHScJlOSeGq0uq+ylGDJD3zAApnktyKv9tzira1p0ow+B7VqIlRR2CBWoA==" crossorigin="anonymous"
|
13
13
|
link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/uikit/2.27.5/css/components/accordion.gradient.min.css" integrity="sha512-Cfd5PRktfT5WA1yUJbYkzjEHvT+9KzqPP1Z1OJud3CFUrkoAc6iIWawoMqPFmtvmxxDNV5RAHfe5DCISV+Gd9A==" crossorigin="anonymous"
|
14
|
-
|
15
|
-
|
14
|
+
link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/uikit/2.27.5/css/components/notify.gradient.min.css" integrity="sha512-HOJctZ/0ww0jFHLHNlNODVEwKf1QxiDKyt3TQZRYZl7e7QSi6whfokIvuMJRoUwykB1SXW4eBeK6MecW4TWFFA==" crossorigin="anonymous"
|
16
15
|
|
17
16
|
link rel="stylesheet" href="/css/ultragreen.css"
|
18
17
|
|
@@ -20,6 +19,7 @@ html lang="fr-fr" dir="ltr"
|
|
20
19
|
script src="https://cdnjs.cloudflare.com/ajax/libs/uikit/2.27.5/js/uikit.min.js" integrity="sha512-KI08ZutCgdasDMwp5rPKd9nF8r+eAy/bZH3Rjova6HfkDv1W7J72sNW+K++KvMp3HL7z0cCykV9vixJACHeCew==" crossorigin="anonymous"
|
21
20
|
script src="https://cdnjs.cloudflare.com/ajax/libs/uikit/2.27.5/js/components/sticky.min.js" integrity="sha512-B21PoHN5PsI7sU3cUcNbitUsXp6Zzp81ZDlKJr1xRXwEh3WSftRmgSOgRYxB8h/SlgW+jazkmOXerT33NB7jGA==" crossorigin="anonymous"
|
22
21
|
script src="https://cdnjs.cloudflare.com/ajax/libs/uikit/2.27.5/js/components/accordion.min.js" integrity="sha512-7UmYoHJ9tTZiNqlBuUgnr2l82TmZxhiOVXIjiMVP/hPFQJopjEBfVEFPjNdv97OX8K/FIZ4kAXSE+SRTfUkPMg==" crossorigin="anonymous"
|
22
|
+
script src="https://cdnjs.cloudflare.com/ajax/libs/uikit/2.27.5/js/components/notify.min.js" integrity="sha512-gaUF+WYo5jZ2OjLCBfhz+4NAtt0YHDtcxulSv6/+1xDP9QysfsqljFadHN6sWkLvyXzKtQ7efofABRJfWOVwtw==" crossorigin="anonymous"
|
23
23
|
|
24
24
|
|
25
25
|
body
|
@@ -0,0 +1,24 @@
|
|
1
|
+
- unless @data.empty?
|
2
|
+
h2.uk-text-success <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i> Modify Splash log monitoring : #{@data[:label]}
|
3
|
+
- else
|
4
|
+
h2.uk-text-success <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i> Add new Splash log monitoring
|
5
|
+
|
6
|
+
script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.2/jquery.validate.min.js"
|
7
|
+
|
8
|
+
form.uk-form.uk-form-horizontal#query action="/save_log" method="POST"
|
9
|
+
label.uk-form-label for="label" Label
|
10
|
+
<input class="uk-form-width-large" id="label" type="text" placeholder="label" name="label" value="#{@data[:label].to_s}" required>
|
11
|
+
div
|
12
|
+
label.uk-form-label for="pattern" Pattern
|
13
|
+
<input class="uk-form-width-large" id="pattern" type="text" placeholder="pattern" name="pattern" value="#{@data[:pattern]}" required>
|
14
|
+
div
|
15
|
+
label.uk-form-label for="log" Log file
|
16
|
+
<input class="uk-form-width-large" id="log" type="text" placeholder="log" name="log" value="#{@data[:log]}" required>
|
17
|
+
div
|
18
|
+
- unless @data.empty?
|
19
|
+
input type="hidden" name="update" value="true"
|
20
|
+
input type="hidden" name="old_label" value="#{@data[:old_label].to_s}"
|
21
|
+
div.uk-align-right
|
22
|
+
input.uk-button.uk-button-small-primary type="submit" value="Submit"
|
23
|
+
javascript:
|
24
|
+
$("#query").validate();
|
@@ -0,0 +1,24 @@
|
|
1
|
+
h2.uk-text-success <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i> History for log #{@label} monitoring
|
2
|
+
|
3
|
+
|
4
|
+
-
|
5
|
+
div.uk-width-medium-1-1
|
6
|
+
div.uk-panel.uk-panel-box
|
7
|
+
span.uk-text-large.uk-text-bold List of records
|
8
|
+
br
|
9
|
+
table#logrecords.uk-table.uk-table-hover.uk-table-striped
|
10
|
+
thead
|
11
|
+
tr
|
12
|
+
th Date
|
13
|
+
th File
|
14
|
+
th Status
|
15
|
+
th Nb Errors
|
16
|
+
th Full Nb of lines
|
17
|
+
tbody
|
18
|
+
- @data.each do |key|
|
19
|
+
tr
|
20
|
+
td #{key.keys.first}
|
21
|
+
td #{key[key.keys.first][:file]}
|
22
|
+
td #{key[key.keys.first][:status]}
|
23
|
+
td #{key[key.keys.first][:errors]}
|
24
|
+
td #{key[key.keys.first][:lines]}
|
@@ -1,32 +1,104 @@
|
|
1
|
-
h2 <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i> Logs configured in Splash
|
1
|
+
h2.uk-text-success <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i> Logs configured in Splash
|
2
|
+
|
3
|
+
|
4
|
+
- unless @log_saved.nil?
|
5
|
+
javascript:
|
6
|
+
UIkit.notify("Log record #{@log_saved} saved", {status:'success'});
|
7
|
+
- unless @log_failed.nil?
|
8
|
+
javascript:
|
9
|
+
UIkit.notify("Log record #{@log_saved} not saved", {status:'danger'});
|
10
|
+
|
11
|
+
|
12
|
+
javascript:
|
13
|
+
$(document).on( 'click','input.delete-log',function(){
|
14
|
+
var id = this.id;
|
15
|
+
var url = "/api/config/deletelog/" + id + ".json";
|
16
|
+
UIkit.modal.confirm('Are you sure?', function(){
|
17
|
+
console.debug(url)
|
18
|
+
$.ajax({
|
19
|
+
url: url,
|
20
|
+
type: 'DELETE',
|
21
|
+
success: function( data ) {
|
22
|
+
console.debug(data)
|
23
|
+
if (data['status'] == 'success') {
|
24
|
+
$('table#logrecords tr#' + id).remove();
|
25
|
+
UIkit.notify("Deleting log for " + id + " done", {status:'success'});
|
26
|
+
}
|
27
|
+
else
|
28
|
+
{
|
29
|
+
UIkit.notify("Deleting log for " + id + " failed !", {status:'danger'});
|
30
|
+
}
|
31
|
+
},
|
32
|
+
error: function(e) {
|
33
|
+
UIkit.notify("Deleting log for " + id + " failed !", {status:'danger'});
|
34
|
+
}
|
35
|
+
});
|
36
|
+
});
|
37
|
+
});
|
38
|
+
|
39
|
+
$(document).on( 'click','input.monitor-log',function(){
|
40
|
+
var url = "/api/logs/monitor.json";
|
41
|
+
UIkit.modal.confirm('Are you sure?', function(){
|
42
|
+
console.debug(url)
|
43
|
+
$.ajax({
|
44
|
+
url: url,
|
45
|
+
type: 'POST',
|
46
|
+
success: function( data ) {
|
47
|
+
console.debug(data)
|
48
|
+
if (data['status'] == 'success') {
|
49
|
+
UIkit.notify("Forced monitoring done", {status:'success'});
|
50
|
+
}
|
51
|
+
else
|
52
|
+
{
|
53
|
+
UIkit.notify("Forced monitoring failed !", {status:'danger'});
|
54
|
+
}
|
55
|
+
},
|
56
|
+
error: function(e) {
|
57
|
+
UIkit.notify("Forced monitoring failed !", {status:'danger'});
|
58
|
+
}
|
59
|
+
});
|
60
|
+
});
|
61
|
+
});
|
2
62
|
|
3
63
|
div.uk-width-medium-1-1
|
4
64
|
div.uk-panel.uk-panel-box
|
5
65
|
span.uk-text-large.uk-text-bold List of logs monitored
|
6
66
|
br
|
7
|
-
table.uk-table.uk-table-hover.uk-table-striped
|
67
|
+
table#logrecords.uk-table.uk-table-hover.uk-table-striped
|
8
68
|
thead
|
9
69
|
tr
|
10
70
|
th Log record label
|
11
71
|
th Definition
|
12
72
|
th Status
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
73
|
+
th Actions
|
74
|
+
tbody
|
75
|
+
- @data.each do |log|
|
76
|
+
tr id="#{log[:label].to_s}"
|
77
|
+
td <b>Label</b> : #{log[:label]}
|
78
|
+
td
|
79
|
+
ul
|
80
|
+
li <b>File</b> : #{log[:log]}
|
81
|
+
li <b>Pattern</b> : #{log[:pattern]}
|
82
|
+
td
|
83
|
+
- if @result[log[:label]][:status] == :missing
|
84
|
+
div.uk-badge.uk-badge-warning missing
|
85
|
+
- if @result[log[:label]][:status] == :clean
|
86
|
+
div.uk-badge.uk-badge-success success
|
87
|
+
ul
|
88
|
+
li <b>Lines count</b> : #{@result[log[:label]][:lines]}
|
89
|
+
- if @result[log[:label]][:status] == :matched
|
90
|
+
div.uk-badge.uk-badge-danger matched
|
18
91
|
ul
|
19
|
-
li <b>
|
20
|
-
li <b>
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
li <b class="uk-text-danger">Matchs count : #{@result[log[:label]][:count]} </b>
|
92
|
+
li <b>Lines count</b> : #{@result[log[:label]][:lines]}
|
93
|
+
li <b class="uk-text-danger">Matchs count : #{@result[log[:label]][:count]} </b>
|
94
|
+
td
|
95
|
+
input.delete-log.uk-button.uk-button-mini.uk-button-danger id="#{log[:label].to_s}" value="Delete"
|
96
|
+
br
|
97
|
+
input.modify-log.uk-button.uk-button-mini.uk-button-primary id="#{log[:label].to_s}" value="Modify" onclick="location.href='/add_modify_log/#{log[:label].to_s}';"
|
98
|
+
br
|
99
|
+
input.history-log.uk-button.uk-button-mini.uk-button-primary id="#{log[:label].to_s}" value="History" onclick="location.href='/get_log_history/#{log[:label].to_s}';"
|
100
|
+
div.uk-align-right
|
101
|
+
form.uk-form.uk-form-horizontal#query action="/add_modify_log" method="GET"
|
102
|
+
div
|
103
|
+
input.monitor-log.uk-button value="Force monitoring"
|
104
|
+
input.add-log.uk-button type="submit" value="Add new log"
|
@@ -3,7 +3,7 @@ nav.uk-navbar.uk-navbar-attached(data-uk-sticky)
|
|
3
3
|
ul.uk-navbar-nav.uk-hidden-small
|
4
4
|
- for item in @menu
|
5
5
|
li class=( (item == @current_item)? "uk-active" : "uk-inactive")
|
6
|
-
a href="/#{item.downcase}" title="Access to #{item.capitalize}" <i class="uk-icon-#{@menu_icons[item]}"></i> #{item.capitalize}
|
6
|
+
a.uk-navbar-nav-subtitle href="/#{item.downcase}" title="Access to #{item.capitalize}" <i class="uk-icon-#{@menu_icons[item]}"></i><div> #{item.capitalize}</div>
|
7
7
|
a.uk-navbar-toggle.uk-visible-small(href="#offcanvas" data-uk-offcanvas)
|
8
8
|
div.uk-navbar-brand.uk-navbar-left.uk-visible-small
|
9
9
|
<i class="uk-icon-arrow-left"></i> Menu
|
@@ -0,0 +1,21 @@
|
|
1
|
+
- unless @data.empty?
|
2
|
+
h2.uk-text-success <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i> Modify Splash process monitoring : #{@data[:process]}
|
3
|
+
- else
|
4
|
+
h2.uk-text-success <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i> Add new Splash process monitoring
|
5
|
+
|
6
|
+
script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.2/jquery.validate.min.js"
|
7
|
+
|
8
|
+
form.uk-form.uk-form-horizontal#query action="/save_process" method="POST"
|
9
|
+
label.uk-form-label for="process" Process
|
10
|
+
<input class="uk-form-width-large" id="process" type="text" placeholder="process" name="process" value="#{@data[:process].to_s}" required>
|
11
|
+
div
|
12
|
+
label.uk-form-label for="patterns" Patterns
|
13
|
+
<input class="uk-form-width-large" id="patterns" type="text" placeholder="patterns" name="patterns" value="#{@data[:patterns]}" required>
|
14
|
+
div
|
15
|
+
- unless @data.empty?
|
16
|
+
input type="hidden" name="update" value="true"
|
17
|
+
input type="hidden" name="old_process" value="#{@data[:old_process].to_s}"
|
18
|
+
div.uk-align-right
|
19
|
+
input.uk-button.uk-button-small-primary type="submit" value="Submit"
|
20
|
+
javascript:
|
21
|
+
$("#query").validate();
|
@@ -0,0 +1,24 @@
|
|
1
|
+
h2.uk-text-success <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i> History for process #{@process} monitoring
|
2
|
+
|
3
|
+
|
4
|
+
-
|
5
|
+
div.uk-width-medium-1-1
|
6
|
+
div.uk-panel.uk-panel-box
|
7
|
+
span.uk-text-large.uk-text-bold List of records
|
8
|
+
br
|
9
|
+
table#logrecords.uk-table.uk-table-hover.uk-table-striped
|
10
|
+
thead
|
11
|
+
tr
|
12
|
+
th Date
|
13
|
+
th Process
|
14
|
+
th Status
|
15
|
+
th % CPU
|
16
|
+
th % MEM
|
17
|
+
tbody
|
18
|
+
- @data.each do |key|
|
19
|
+
tr
|
20
|
+
td #{key.keys.first}
|
21
|
+
td #{key[key.keys.first][:process]}
|
22
|
+
td #{key[key.keys.first][:status]}
|
23
|
+
td #{key[key.keys.first][:cpu]}
|
24
|
+
td #{key[key.keys.first][:mem]}
|
@@ -1,10 +1,69 @@
|
|
1
|
-
h2 <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i> Processes configured in Splash
|
1
|
+
h2.uk-text-success <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i> Processes configured in Splash
|
2
|
+
|
3
|
+
- unless @process_saved.nil?
|
4
|
+
javascript:
|
5
|
+
UIkit.notify("Process record #{@process_saved} saved", {status:'success'});
|
6
|
+
- unless @process_failed.nil?
|
7
|
+
javascript:
|
8
|
+
UIkit.notify("Process record #{@process_saved} not saved", {status:'danger'});
|
9
|
+
|
10
|
+
|
11
|
+
javascript:
|
12
|
+
$(document).on( 'click','input.delete-process',function(){
|
13
|
+
var id = this.id;
|
14
|
+
var url = "/api/config/deleteprocess/" + id + ".json";
|
15
|
+
UIkit.modal.confirm('Are you sure?', function(){
|
16
|
+
console.debug(url)
|
17
|
+
$.ajax({
|
18
|
+
url: url,
|
19
|
+
type: 'DELETE',
|
20
|
+
success: function( data ) {
|
21
|
+
console.debug(data)
|
22
|
+
if (data['status'] == 'success') {
|
23
|
+
$('table#processrecords tr#' + id).remove();
|
24
|
+
UIkit.notify("Deleting process for " + id + " done", {status:'success'});
|
25
|
+
}
|
26
|
+
else
|
27
|
+
{
|
28
|
+
UIkit.notify("Deleting process for " + id + " failed !", {status:'danger'});
|
29
|
+
}
|
30
|
+
},
|
31
|
+
error: function(e) {
|
32
|
+
UIkit.notify("Deleting process for " + id + " failed !", {status:'danger'});
|
33
|
+
}
|
34
|
+
});
|
35
|
+
});
|
36
|
+
});
|
37
|
+
|
38
|
+
$(document).on( 'click','input.monitor-process',function(){
|
39
|
+
var url = "/api/processes/monitor.json";
|
40
|
+
UIkit.modal.confirm('Are you sure?', function(){
|
41
|
+
console.debug(url)
|
42
|
+
$.ajax({
|
43
|
+
url: url,
|
44
|
+
type: 'POST',
|
45
|
+
success: function( data ) {
|
46
|
+
console.debug(data)
|
47
|
+
if (data['status'] == 'success') {
|
48
|
+
UIkit.notify("Forced monitoring done", {status:'success'});
|
49
|
+
}
|
50
|
+
else
|
51
|
+
{
|
52
|
+
UIkit.notify("Forced monitoring failed !", {status:'danger'});
|
53
|
+
}
|
54
|
+
},
|
55
|
+
error: function(e) {
|
56
|
+
UIkit.notify("Forced monitoring failed !", {status:'danger'});
|
57
|
+
}
|
58
|
+
});
|
59
|
+
});
|
60
|
+
});
|
2
61
|
|
3
62
|
div.uk-width-medium-1-1
|
4
63
|
div.uk-panel.uk-panel-box
|
5
64
|
span.uk-text-large.uk-text-bold List of processes monitored
|
6
65
|
br
|
7
|
-
table.uk-table.uk-table-hover.uk-table-striped
|
66
|
+
table#processrecords.uk-table.uk-table-hover.uk-table-striped
|
8
67
|
thead
|
9
68
|
tr
|
10
69
|
th Process record
|
@@ -12,7 +71,7 @@ div.uk-width-medium-1-1
|
|
12
71
|
th Status
|
13
72
|
tbody
|
14
73
|
- @data.each do |process|
|
15
|
-
tr
|
74
|
+
tr id="#{process[:process].to_s}"
|
16
75
|
td <b>Process</b> : #{process[:process]}
|
17
76
|
td
|
18
77
|
span.uk-text-bold Patterns
|
@@ -27,3 +86,14 @@ div.uk-width-medium-1-1
|
|
27
86
|
ul
|
28
87
|
li <b>CPU usage</b> : #{@result[process[:process]][:cpu]}
|
29
88
|
li <b>MEM usage</b> : #{@result[process[:process]][:mem]}
|
89
|
+
td
|
90
|
+
input.delete-process.uk-button.uk-button-mini.uk-button-danger id="#{process[:process].to_s}" value="Delete"
|
91
|
+
br
|
92
|
+
input.modify-process.uk-button.uk-button-mini.uk-button-primary id="#{process[:process].to_s}" value="Modify" onclick="location.href='/add_modify_process/#{process[:process].to_s}';"
|
93
|
+
br
|
94
|
+
input.history-process.uk-button.uk-button-mini.uk-button-primary id="#{process[:process].to_s}" value="History" onclick="location.href='/get_process_history/#{process[:process].to_s}';"
|
95
|
+
div.uk-align-right
|
96
|
+
form.uk-form.uk-form-horizontal#query action="/add_modify_process" method="GET"
|
97
|
+
div
|
98
|
+
input.monitor-process.uk-button value="Force monitoring"
|
99
|
+
input.add-process.uk-button type="submit" value="Add new process"
|