prometheus-splash 0.5.2 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (87) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +38 -0
  3. data/README.md +58 -60
  4. data/bin/splash +3 -0
  5. data/config/splash.yml +106 -10
  6. data/lib/splash/backends.rb +7 -0
  7. data/lib/splash/backends/file.rb +36 -0
  8. data/lib/splash/backends/redis.rb +44 -1
  9. data/lib/splash/cli.rb +16 -4
  10. data/lib/splash/cli/commands.rb +12 -5
  11. data/lib/splash/cli/config.rb +9 -1
  12. data/lib/splash/cli/daemon.rb +49 -2
  13. data/lib/splash/cli/documentation.rb +5 -2
  14. data/lib/splash/cli/logs.rb +21 -13
  15. data/lib/splash/cli/process.rb +103 -0
  16. data/lib/splash/cli/sequences.rb +114 -0
  17. data/lib/splash/cli/transfers.rb +206 -0
  18. data/lib/splash/cli/webadmin.rb +46 -0
  19. data/lib/splash/commands.rb +26 -4
  20. data/lib/splash/config.rb +184 -23
  21. data/lib/splash/config/flush.rb +9 -1
  22. data/lib/splash/config/sanitycheck.rb +7 -2
  23. data/lib/splash/config/service.rb +8 -1
  24. data/lib/splash/config/setup.rb +8 -3
  25. data/lib/splash/constants.rb +41 -10
  26. data/lib/splash/daemon.rb +5 -1
  27. data/lib/splash/daemon/controller.rb +31 -11
  28. data/lib/splash/daemon/metrics.rb +47 -22
  29. data/lib/splash/daemon/orchestrator.rb +141 -36
  30. data/lib/splash/daemon/orchestrator/grammar.rb +40 -5
  31. data/lib/splash/daemon/orchestrator/hooks.rb +10 -0
  32. data/lib/splash/dependencies.rb +19 -0
  33. data/lib/splash/exiter.rb +14 -0
  34. data/lib/splash/helpers.rb +93 -46
  35. data/lib/splash/loggers.rb +30 -4
  36. data/lib/splash/loggers/cli.rb +18 -11
  37. data/lib/splash/loggers/daemon.rb +14 -3
  38. data/lib/splash/loggers/dual.rb +14 -1
  39. data/lib/splash/loggers/web.rb +51 -0
  40. data/lib/splash/logs.rb +16 -5
  41. data/lib/splash/processes.rb +83 -0
  42. data/lib/splash/sequences.rb +105 -0
  43. data/lib/splash/templates.rb +10 -0
  44. data/lib/splash/transfers.rb +224 -0
  45. data/lib/splash/transports.rb +9 -0
  46. data/lib/splash/transports/rabbitmq.rb +33 -4
  47. data/lib/splash/webadmin.rb +122 -0
  48. data/lib/splash/webadmin/api/routes/commands.rb +28 -0
  49. data/lib/splash/webadmin/api/routes/config.rb +10 -0
  50. data/lib/splash/webadmin/api/routes/init.rb +2 -0
  51. data/lib/splash/webadmin/api/routes/logs.rb +59 -0
  52. data/lib/splash/webadmin/api/routes/process.rb +60 -0
  53. data/lib/splash/webadmin/api/routes/sequences.rb +28 -0
  54. data/lib/splash/webadmin/main.rb +27 -0
  55. data/lib/splash/webadmin/portal/controllers/commands.rb +7 -0
  56. data/lib/splash/webadmin/portal/controllers/documentation.rb +6 -0
  57. data/lib/splash/webadmin/portal/controllers/home.rb +31 -0
  58. data/lib/splash/webadmin/portal/controllers/logs.rb +14 -0
  59. data/lib/splash/webadmin/portal/controllers/notfound.rb +5 -0
  60. data/lib/splash/webadmin/portal/controllers/processes.rb +14 -0
  61. data/lib/splash/webadmin/portal/controllers/proxy.rb +36 -0
  62. data/lib/splash/webadmin/portal/controllers/restclient.rb +19 -0
  63. data/lib/splash/webadmin/portal/controllers/sequences.rb +7 -0
  64. data/lib/splash/webadmin/portal/init.rb +11 -0
  65. data/lib/splash/webadmin/portal/public/css/ultragreen.css +8544 -0
  66. data/lib/splash/webadmin/portal/public/fonts/FontAwesome.otf +0 -0
  67. data/lib/splash/webadmin/portal/public/fonts/fontawesome-webfont.ttf +0 -0
  68. data/lib/splash/webadmin/portal/public/fonts/fontawesome-webfont.woff +0 -0
  69. data/lib/splash/webadmin/portal/public/fonts/fontawesome-webfont.woff2 +0 -0
  70. data/lib/splash/webadmin/portal/public/images/logo_splash.png +0 -0
  71. data/lib/splash/webadmin/portal/public/images/logo_splash_reduce.png +0 -0
  72. data/lib/splash/webadmin/portal/public/images/logo_splash_tiny.png +0 -0
  73. data/lib/splash/webadmin/portal/views/commands.slim +49 -0
  74. data/lib/splash/webadmin/portal/views/documentation.slim +3 -0
  75. data/lib/splash/webadmin/portal/views/home.slim +123 -0
  76. data/lib/splash/webadmin/portal/views/layout.slim +43 -0
  77. data/lib/splash/webadmin/portal/views/logs.slim +32 -0
  78. data/lib/splash/webadmin/portal/views/nav.slim +17 -0
  79. data/lib/splash/webadmin/portal/views/not_found.slim +3 -0
  80. data/lib/splash/webadmin/portal/views/processes.slim +29 -0
  81. data/lib/splash/webadmin/portal/views/proxy.slim +16 -0
  82. data/lib/splash/webadmin/portal/views/restclient.slim +41 -0
  83. data/lib/splash/webadmin/portal/views/restclient_result.slim +29 -0
  84. data/lib/splash/webadmin/portal/views/sequences.slim +50 -0
  85. data/prometheus-splash.gemspec +12 -3
  86. data/spec/helpers_spec.rb +119 -0
  87. metadata +196 -8
@@ -0,0 +1,49 @@
1
+ h2 <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i>&nbsp;&nbsp;Commands configured in Splash
2
+
3
+ div.uk-width-medium-1-1
4
+ div.uk-panel.uk-panel-box
5
+ span.uk-text-large.uk-text-bold List of commands availables
6
+ br
7
+
8
+ div.uk-accordion(data-uk-accordion)
9
+ - @data.each do |command,content|
10
+ h3.uk-accordion-title <b>Name</b> : #{command}
11
+ div.uk-accordion-content
12
+ table.uk-table.uk-table-hover.uk-table-striped
13
+ thead
14
+ tr
15
+ th Definition
16
+ th Actions
17
+ tbody
18
+ tr
19
+ td
20
+ dl.uk-description-list-horizontal
21
+ dt <i class="uk-icon-th-list"></i>&nbsp;Description
22
+ dd #{content[:desc]}
23
+ - if content[:command]
24
+ dt <i class="uk-icon-cog"></i>&nbsp;Command Line
25
+ dd #{content[:command]}
26
+ - if content[:schedule]
27
+ dt <i class="uk-icon-calendar"></i>&nbsp;Schedule
28
+ dd
29
+ <ul>
30
+ <li> <b><i>Type</b></i> : #{content[:schedule].keys.first}</li>
31
+ <li> <b><i>Value</b></i> : #{content[:schedule].values.first}</li>
32
+ </ul>
33
+ - if content[:on_success]
34
+ dt <i class="uk-icon-check"></i>&nbsp;Execute on success
35
+ dd #{content[:on_success]}
36
+ - if content[:on_failure]
37
+ dt <i class="uk-icon-bolt"></i>&nbsp;Execute on failure
38
+ dd #{content[:on_failure]}
39
+ - if content[:user]
40
+ dt <i class="uk-icon-user"></i>&nbsp;become user
41
+ dd #{content[:user]}
42
+ - if content[:delegate_to]
43
+ dt <i class="uk-icon-chevron-circle-right"></i>&nbsp;Remote delegation
44
+ dd
45
+ <ul>
46
+ <li> <i><b>Host</b></i> : #{content[:delegate_to][:host]}</li>
47
+ <li> <b><i>Remote Command</b></i> : #{content[:delegate_to][:remote_command]}</li>
48
+ </ul>
49
+ td
@@ -0,0 +1,3 @@
1
+ h2 <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medkit "></i>&nbsp;&nbsp;Splash Documentation
2
+ div
3
+ == "#{@data}"
@@ -0,0 +1,123 @@
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
51
+
52
+
53
+ div.uk-grid
54
+ div.uk-width-medium-1-2
55
+ div.uk-panel.uk-panel-box
56
+ span.uk-text-large.uk-text-bold Global Configuration
57
+ br
58
+ span.uk-text-bold <i>Logger and display</i> :
59
+ ul
60
+ li <b>Level:</b> #{@data[:loggers][:level]}
61
+ li <b>Daemon log filename:</b> #{@data[:loggers][:daemon][:file]}
62
+ li <b>Web log filename:</b> #{@data[:loggers][:web][:file]}
63
+ li <b>Emoji in CLI:</b> #{@data[:loggers][:cli][:emoji]}
64
+ li <b>Color in CLI:</b> #{@data[:loggers][:cli][:color]}
65
+ span.uk-text-bold <i>Templates</i> :
66
+ ul
67
+ li <b>Execution Report Template file:</b> #{@data[:execution_template_path]}
68
+
69
+ div.uk-width-medium-1-2
70
+ div.uk-panel.uk-panel-box
71
+ span.uk-text-large.uk-text-bold Transport and Backend
72
+ br
73
+ span.uk-text-bold <i>Backend</i> :
74
+ ul
75
+ li <b>Backend type:</b> #{@data[:backends][:stores][:execution_trace][:type]}
76
+ - if @data[:backends][:stores][:execution_trace][:type] == :file
77
+ li <b>Path:</b> #{@data[:backends][:stores][:execution_trace][:path]}
78
+ - else
79
+ li <b>Host:</b> #{@data[:backends][:stores][:execution_trace][:host]}
80
+ li <b>Port:</b> #{@data[:backends][:stores][:execution_trace][:port]}
81
+ li <b>base:</b> #{@data[:backends][:stores][:execution_trace][:base]}
82
+ - unless @data[:backends][:stores][:execution_trace][:auth].nil?
83
+ li <b>Authentification:</b> Active (see config file)
84
+ span.uk-text-bold <i>Transport</i> :
85
+ ul
86
+ li <b>Transport:</b> #{@data[:transports][:active]}
87
+ - if @data[:transports][:active] == :rabbitmq
88
+ li <b>Host:</b> #{@data[:transports][:rabbitmq][:host]}
89
+ li <b>Port:</b> #{@data[:transports][:rabbitmq][:port]}
90
+ li <b>Vhost:</b> #{@data[:transports][:rabbitmq][:vhost]}
91
+ - unless @data[:transports][:rabbitmq][:user].nil?
92
+ li <b>Authentification:</b> Active (see config file)
93
+
94
+ div.uk-grid
95
+ div.uk-width-medium-1-2
96
+ div.uk-panel.uk-panel-box
97
+ span.uk-text-large.uk-text-bold Daemon
98
+ br
99
+ ul
100
+ li <b>Logs monitoring scheduling: </b> #{@data[:daemon_logmon_scheduling]}
101
+ li <b>Processes monitoring scheduling: </b> #{@data[:daemon_process_scheduling]}
102
+ li <b>Splash metrics monitoring scheduling: </b> #{@data[:daemon_metrics_scheduling]}
103
+ li <b>Splash daemon process name: </b> #{@data[:daemon_process_name]}
104
+ li <b>Splash daemon PID file path: </b> #{@data[:pid_path]}
105
+ li <b>Splash daemon PID file : </b> #{@data[:pid_file]}
106
+ li <b>Splash daemon trace path: </b> #{@data[:trace_path]}
107
+ li <b>Splash daemon trace STDOUT file: </b> #{@data[:stdout_trace]}
108
+ li <b>Splash daemon trace STDERR: </b> #{@data[:stderr_trace]}
109
+
110
+
111
+ div.uk-width-medium-1-2
112
+ div.uk-panel.uk-panel-box
113
+ span.uk-text-large.uk-text-bold Web UI
114
+ br
115
+ span.uk-text-bold <i>Webadmin</i> :
116
+ ul
117
+ li <b>IP:</b> #{@data[:webadmin_ip]}
118
+ li <b>Port:</b> #{@data[:webadmin_port]}
119
+
120
+ span.uk-text-bold <i>Prometheus PushGateway</i> :
121
+ ul
122
+ li <b>Host:</b> #{@data[:prometheus_pushgateway_host]}
123
+ li <b>Port:</b> #{@data[:prometheus_pushgateway_port]}
@@ -0,0 +1,43 @@
1
+ doctype 5
2
+ html lang="fr-fr" dir="ltr"
3
+ head
4
+ title== "Splash : Orchestration and Supervision made easy"
5
+ meta charset="utf-8"
6
+ link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/uikit/2.27.5/css/uikit.min.css" integrity="sha512-b/j0MsmsRINkL4YUIZWvtf9tQr4KYQt2ld3NjEdakM7QRRWLenfe9OmG5K9GjNW56hE0QJCwWMv11fAVFELR2w==" crossorigin="anonymous"
7
+ link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/uikit/2.27.5/css/components/accordion.min.css" integrity="sha512-5JEKYy09Sqq/8id+Mw3Za1avSracWTbu+JbI1nE7y3Ned7PG3K1E1/UxYF1oy9cUrRGJuvPXs4vNGamwRgM3sg==" crossorigin="anonymous"
8
+ link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/uikit/2.27.5/css/components/sticky.min.css" integrity="sha512-bQYADl6QpGQzYScMfS9O7RTyyqlMABf2M5627gBC+xOMcGgqRIGJL3Yhr6QnXMwqQKVKcYcpknH0H3XQrDLB3w==" crossorigin="anonymous"
9
+
10
+ link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css"
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
+ 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
+ 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
+
16
+
17
+ link rel="stylesheet" href="/css/ultragreen.css"
18
+
19
+ script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"
20
+ 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
+ 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
+ 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"
23
+
24
+
25
+ body
26
+ div.uk-width-1-1.uk-visible-small.uk-text-left
27
+ img src="/images/logo_splash_tiny.png"
28
+ span.uk-text-medium.uk-text-middle Orchestration and Supervision made easy
29
+ div.uk-width-1-1.uk-hidden-small
30
+ img src="/images/logo_splash_reduce.png"
31
+ span.uk-text-large.uk-text-middle Orchestration and Supervision made easy
32
+ == slim :nav, :format => :html
33
+ div.wrapper
34
+ div.uk-grid.uk-grid-medium
35
+ div.uk-width-9-1.uk-container.uk-container-center.uk-margin-left
36
+ br
37
+ == yield
38
+ div.footer
39
+ br
40
+ <a href="https://twitter.com/UltragreenSoft" class="uk-icon-hover uk-icon-twitter uk-icon-button"></a>&nbsp;&nbsp;
41
+ <a href="https://www.facebook.com/UltragreenSoft" class="uk-icon-hover uk-icon-facebook uk-icon-button"></a>&nbsp;&nbsp;
42
+ <a href="http://www.github.com/Ultragreen/prometheus-splash" class="uk-icon-hover uk-icon-github uk-icon-button"></a>
43
+ p.uk-text-center <span class="uk-icon-copyright uk-icon-small"></span> 2020 <a href="http://www.ultragreen.net"> Ultragreen Software</a> / <i><a href="https://www.openhub.net/accounts/lecid">Romain GEORGES</a></i>
@@ -0,0 +1,32 @@
1
+ h2 <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i>&nbsp;&nbsp;Logs configured in Splash
2
+
3
+ div.uk-width-medium-1-1
4
+ div.uk-panel.uk-panel-box
5
+ span.uk-text-large.uk-text-bold List of logs monitored
6
+ br
7
+ table.uk-table.uk-table-hover.uk-table-striped
8
+ thead
9
+ tr
10
+ th Log record label
11
+ th Definition
12
+ th Status
13
+ tbody
14
+ - @data.each do |log|
15
+ tr
16
+ td <b>Label</b> : #{log[:label]}
17
+ td
18
+ ul
19
+ li <b>File</b> : #{log[:log]}
20
+ li <b>Pattern</b> : #{log[:pattern]}
21
+ td
22
+ - if @result[log[:label]][:status] == :missing
23
+ div.uk-badge.uk-badge-warning missing
24
+ - if @result[log[:label]][:status] == :clean
25
+ div.uk-badge.uk-badge-success success
26
+ ul
27
+ li <b>Lines count</b> : #{@result[log[:label]][:lines]}
28
+ - if @result[log[:label]][:status] == :matched
29
+ div.uk-badge.uk-badge-danger matched
30
+ ul
31
+ li <b>Lines count</b> : #{@result[log[:label]][:lines]}
32
+ li <b class="uk-text-danger">Matchs count : #{@result[log[:label]][:count]} </b>
@@ -0,0 +1,17 @@
1
+ nav.uk-navbar.uk-navbar-attached(data-uk-sticky)
2
+ a.uk-navbar-brand.uk-hidden-small href="/" <i class="uk-icon-home"></i> Home
3
+ ul.uk-navbar-nav.uk-hidden-small
4
+ - for item in @menu
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}
7
+ a.uk-navbar-toggle.uk-visible-small(href="#offcanvas" data-uk-offcanvas)
8
+ div.uk-navbar-brand.uk-navbar-left.uk-visible-small
9
+ <i class="uk-icon-arrow-left"></i> Menu
10
+
11
+
12
+ div#offcanvas.uk-offcanvas
13
+ div.uk-offcanvas-bar
14
+ ul.uk-nav.uk-nav-offcanvas
15
+ - for item in @menu
16
+ li class=( (item == @current_item)? "uk-active" : "uk-inactive")
17
+ a href="/#{item.downcase}" title="Access to #{item.capitalize}" #{item.capitalize}
@@ -0,0 +1,3 @@
1
+ h2 404 : Page not found
2
+ p Ressource or page #{@path} not found
3
+ p Please click <a href='/'>here</a> to return home
@@ -0,0 +1,29 @@
1
+ h2 <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i>&nbsp;&nbsp;Processes configured in Splash
2
+
3
+ div.uk-width-medium-1-1
4
+ div.uk-panel.uk-panel-box
5
+ span.uk-text-large.uk-text-bold List of processes monitored
6
+ br
7
+ table.uk-table.uk-table-hover.uk-table-striped
8
+ thead
9
+ tr
10
+ th Process record
11
+ th Patterns
12
+ th Status
13
+ tbody
14
+ - @data.each do |process|
15
+ tr
16
+ td <b>Process</b> : #{process[:process]}
17
+ td
18
+ span.uk-text-bold Patterns
19
+ ul
20
+ - process[:patterns].each do |pattern|
21
+ li= pattern
22
+ td
23
+ - if @result[process[:process]][:status] == :inexistant
24
+ div.uk-badge.uk-badge-danger not running
25
+ - if @result[process[:process]][:status] == :running
26
+ div.uk-badge.uk-badge-success running
27
+ ul
28
+ li <b>CPU usage</b> : #{@result[process[:process]][:cpu]}
29
+ li <b>MEM usage</b> : #{@result[process[:process]][:mem]}
@@ -0,0 +1,16 @@
1
+ - if @proxy
2
+ h2 <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i>&nbsp;&nbsp;Proxies for Prometheus components
3
+ - else
4
+ h2 <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i>&nbsp;&nbsp;Links for Prometheus components
5
+ div.uk-width-medium-1-1
6
+ div.uk-panel.uk-panel-box
7
+ ul.uk-list
8
+ li
9
+ i.uk-icon-hand-o-right
10
+ a href="#{@prometheus_url}" &nbsp;Prometheus
11
+ li
12
+ i.uk-icon-hand-o-right
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
@@ -0,0 +1,41 @@
1
+ h2 <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i>&nbsp;&nbsp;REST Client
2
+
3
+ div.uk-grid
4
+ div.uk-width-1-1
5
+ div.uk-panel.uk-panel-box
6
+ h3.uk-panel-title
7
+ <i class="uk-icon-question-circle"></i> &nbsp;&nbsp;Request
8
+ form.uk-form.uk-form-horizontal#query action="/restclient/query" method="POST"
9
+ label.uk-form-label for="method" Method
10
+ select.uk-form-large#method name="method"
11
+ option GET
12
+ option POST
13
+ option DELETE
14
+ option PUT
15
+ div &nbsp;
16
+ label.uk-form-label for="url" Endpoint
17
+ input.uk-form-width-large#url type="text" placeholder="url" name="url"
18
+ dev.uk-align-right
19
+ input.uk-button.uk-button-primary type="submit" value="Send"
20
+
21
+ div.uk-grid
22
+ div.uk-width-1-1
23
+ div.uk-panel.uk-panel-box
24
+ h3.uk-panel-title
25
+ <i class="uk-icon-share-square"></i> &nbsp;&nbsp;Response
26
+ br
27
+ div#result.uk-width-1-1
28
+
29
+ javascript:
30
+ $('#query').submit(function() {
31
+ console.log($(this).serialize());
32
+ $.ajax({
33
+ data: $(this).serialize(),
34
+ type: $(this).attr('method'),
35
+ url: $(this).attr('action'),
36
+ success: function(response) {
37
+ $('#result').html(response);
38
+ }
39
+ });
40
+ return false;
41
+ });
@@ -0,0 +1,29 @@
1
+ di &nbsp;
2
+ ul.uk-list
3
+ li <b>HTTP Method</b> : #{@method}
4
+ li <b>URL</b> : #{@url}
5
+ h3 Result :
6
+ - unless @result == false
7
+ table.uk_table
8
+ tr
9
+ td.uk-width-2-10
10
+ i.uk-icon-dollar
11
+ | &nbsp;<b>Return code :</b>
12
+ td.uk-width-8-10 #{@result.code}
13
+ tr
14
+ td.uk-width-2-10
15
+ i.uk-icon-file-o
16
+ | &nbsp;<b>Body :</b>
17
+ td.uk-width-8-10.uk-scrollable-text <pre><code>#{@result}</code></pre>
18
+ tr
19
+ td.uk-width-2-10
20
+ i.uk-icon-header
21
+ | &nbsp;<b>Headers :</b>
22
+ td.uk-width-8-10
23
+ ul
24
+ - @result.headers.each do |hkey,value|
25
+ li <i><b>#{hkey}:</b> &nbsp; &nbsp; #{value}</i>
26
+
27
+ - else
28
+ div.uk-alert.uk-alert-danger
29
+ | Can't excute this request
@@ -0,0 +1,50 @@
1
+ h2 <i class="uk-icon-#{@menu_icons[@current_item]} uk-icon-medium "></i>&nbsp;&nbsp;Sequences configured in Splash
2
+
3
+ div.uk-width-medium-1-1
4
+ div.uk-panel.uk-panel-box
5
+ span.uk-text-large.uk-text-bold List of sequences availables
6
+ br
7
+
8
+ div.uk-accordion(data-uk-accordion)
9
+ - @data.each do |sequence,content|
10
+ h3.uk-accordion-title <b>Name</b> : #{sequence}
11
+ div.uk-accordion-content
12
+ table.uk-table.uk-table-hover.uk-table-striped
13
+ thead
14
+ tr
15
+ th Options
16
+ th Definition
17
+ th Actions
18
+ tbody
19
+ tr
20
+ td
21
+ dl.uk-description-list-horizontal
22
+
23
+ - if content[:options]
24
+ - if content[:options][:continue]
25
+ ul
26
+ li <i class="uk-icon-check-square-o"></i>&nbsp;<b>Continue execution on error</b> : #{content[:options][:continue]}
27
+ - if content[:schedule]
28
+ ul
29
+ li <i class="uk-icon-calendar"></i>&nbsp;<b>Scheduling</b> :
30
+ <ul>
31
+ <li> <b><i>Type</b></i> : #{content[:schedule].keys.first}</li>
32
+ <li> <b><i>Value</b></i> : #{content[:schedule].values.first}</li>
33
+ </ul>
34
+ td
35
+ dl.uk-description-list-horizontal
36
+ - content[:definition].each_with_index do |step,i|
37
+ dt <i class="uk-icon-check-square-o"></i>&nbsp;Step #{i+1} :
38
+ dd #{step[:step]}
39
+ ul
40
+ li <i class="uk-icon-cog"></i>&nbsp;<b>Command</b> : #{step[:command]}
41
+ - if step[:on_host]
42
+ li <i class="uk-icon-chevron-circle-right"></i>&nbsp;<b>Remote execution target</b> : #{step[:on_host]}
43
+ - if not step[:callback].nil?
44
+ li <i class="uk-icon-share-square-o"></i>&nbsp;<b>Execute Callback</b> : #{step[:callback]}
45
+ - if not step[:trace].nil?
46
+ li <i class="uk-icon-pencil-square-o"></i>&nbsp;<b>Trace Execution</b> : #{step[:trace]}
47
+ - if not step[:notify].nil?
48
+ li <i class="uk-icon-external-link"></i>&nbsp;<b>Notify Execution in Prometheus</b> : #{step[:notify]}
49
+
50
+ td