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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +26 -1
- data/README.md +1 -1
- data/config/splash.yml +33 -5
- data/lib/splash/backends.rb +1 -0
- data/lib/splash/cli.rb +2 -1
- data/lib/splash/cli/daemon.rb +41 -1
- data/lib/splash/cli/transfers.rb +206 -0
- data/lib/splash/cli/webadmin.rb +3 -3
- data/lib/splash/config.rb +44 -30
- data/lib/splash/constants.rb +7 -2
- 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/helpers.rb +11 -2
- data/lib/splash/loggers/cli.rb +2 -10
- data/lib/splash/transfers.rb +224 -0
- data/lib/splash/webadmin.rb +3 -3
- data/lib/splash/webadmin/main.rb +1 -0
- data/lib/splash/webadmin/portal/controllers/home.rb +19 -0
- data/lib/splash/webadmin/portal/controllers/proxy.rb +10 -2
- data/lib/splash/webadmin/portal/views/home.slim +50 -5
- data/lib/splash/webadmin/portal/views/proxy.slim +3 -0
- data/prometheus-splash.gemspec +5 -2
- metadata +62 -4
    
        data/lib/splash/webadmin.rb
    CHANGED
    
    | @@ -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  | 
| 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  | 
| 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  | 
| 89 | 
            +
                  def statusweb(options = {})
         | 
| 90 90 | 
             
                    log = get_logger
         | 
| 91 91 | 
             
                    config = get_config
         | 
| 92 92 | 
             
                    pid = realpid = ''
         | 
    
        data/lib/splash/webadmin/main.rb
    CHANGED
    
    
| @@ -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 | 
            -
             | 
| 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-text-large.uk-text-bold <i class="uk-icon-cogs uk-icon-justify uk-icon-large"></i>  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]}
         | 
    
        data/prometheus-splash.gemspec
    CHANGED
    
    | @@ -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. | 
| 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. | 
| 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 | 
            +
            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. | 
| 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. | 
| 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
         |