rboss 0.4.1 → 0.5.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.
- data/Gemfile +2 -0
- data/bin/jboss-profile +0 -0
- data/bin/twiddle +1 -1
- data/lib/rboss/bin/command_actions.rb +25 -17
- data/lib/rboss/table_builder.rb +174 -0
- data/lib/rboss/twiddle/monitor.rb +60 -11
- data/lib/rboss/version.rb +1 -1
- metadata +3 -2
    
        data/Gemfile
    CHANGED
    
    
    
        data/bin/jboss-profile
    CHANGED
    
    | 
            File without changes
         | 
    
        data/bin/twiddle
    CHANGED
    
    | @@ -58,7 +58,7 @@ end | |
| 58 58 | 
             
            opts.on('--port PORT', 'Defines the JBoss jnp port') do |port|
         | 
| 59 59 | 
             
              params[:port] = port
         | 
| 60 60 | 
             
            end
         | 
| 61 | 
            -
            opts.on('-c', '-- | 
| 61 | 
            +
            opts.on('-c', '--connect SERVER_NAME',
         | 
| 62 62 | 
             
                    "Uses a configured server in #{servers_file}") do |server|
         | 
| 63 63 | 
             
              config = load_yaml[server]
         | 
| 64 64 | 
             
              abort "No configuration for #{server}" unless config
         | 
| @@ -20,6 +20,8 @@ | |
| 20 20 | 
             
            # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
         | 
| 21 21 | 
             
            # THE SOFTWARE.
         | 
| 22 22 |  | 
| 23 | 
            +
            require_relative '../table_builder'
         | 
| 24 | 
            +
             | 
| 23 25 | 
             
            module JBoss
         | 
| 24 26 | 
             
              module CommandActions
         | 
| 25 27 | 
             
                class Twiddle
         | 
| @@ -43,59 +45,66 @@ module JBoss | |
| 43 45 | 
             
                  def set id, property, value
         | 
| 44 46 | 
             
                    mbean, name = extract id
         | 
| 45 47 | 
             
                    puts @twiddle.set :mbean => mbean.to_sym,
         | 
| 46 | 
            -
             | 
| 47 | 
            -
             | 
| 48 | 
            -
             | 
| 48 | 
            +
                                      :name => name,
         | 
| 49 | 
            +
                                      :property => property,
         | 
| 50 | 
            +
                                      :value => value
         | 
| 49 51 | 
             
                  end
         | 
| 50 52 |  | 
| 51 53 | 
             
                  def get id, property
         | 
| 52 54 | 
             
                    mbean, name = extract id
         | 
| 53 55 | 
             
                    puts @twiddle.get :mbean => mbean.to_sym,
         | 
| 54 | 
            -
             | 
| 55 | 
            -
             | 
| 56 | 
            +
                                      :name => name,
         | 
| 57 | 
            +
                                      :property => property
         | 
| 56 58 | 
             
                  end
         | 
| 57 59 |  | 
| 58 60 | 
             
                  def invoke id, method, *args
         | 
| 59 61 | 
             
                    mbean, name = extract id
         | 
| 60 62 | 
             
                    puts @twiddle.invoke :mbean => mbean.to_sym,
         | 
| 61 | 
            -
             | 
| 62 | 
            -
             | 
| 63 | 
            -
             | 
| 63 | 
            +
                                         :name => name,
         | 
| 64 | 
            +
                                         :method => method,
         | 
| 65 | 
            +
                                         :args => normalize(args)
         | 
| 64 66 | 
             
                  end
         | 
| 65 67 |  | 
| 66 68 | 
             
                  def query id, *args
         | 
| 67 69 | 
             
                    mbean, name = extract id
         | 
| 68 70 | 
             
                    puts @twiddle.query :mbean => mbean.to_sym,
         | 
| 69 | 
            -
             | 
| 70 | 
            -
             | 
| 71 | 
            +
                                        :name => name,
         | 
| 72 | 
            +
                                        :args => normalize(args)
         | 
| 71 73 | 
             
                  end
         | 
| 72 74 |  | 
| 73 75 | 
             
                  def info id, *args
         | 
| 74 76 | 
             
                    mbean, name = extract id
         | 
| 75 77 | 
             
                    puts @twiddle.info :mbean => mbean.to_sym,
         | 
| 76 | 
            -
             | 
| 77 | 
            -
             | 
| 78 | 
            +
                                       :name => name,
         | 
| 79 | 
            +
                                       :args => normalize(args)
         | 
| 78 80 | 
             
                  end
         | 
| 79 81 |  | 
| 80 82 | 
             
                  def detail mbeans
         | 
| 81 83 | 
             
                    mbeans.each do |mbean_id, resources|
         | 
| 82 | 
            -
                       | 
| 84 | 
            +
                      table = TableBuilder::new @opts[:mbeans][mbean_id]
         | 
| 85 | 
            +
                      table.title = @opts[:mbeans][mbean_id][:description]
         | 
| 86 | 
            +
                      rows = []
         | 
| 83 87 | 
             
                      if resources.is_a? TrueClass
         | 
| 88 | 
            +
                        row = []
         | 
| 84 89 | 
             
                        @monitor.mbean(mbean_id).detail do |name, value|
         | 
| 85 | 
            -
                           | 
| 90 | 
            +
                          row << value
         | 
| 86 91 | 
             
                        end
         | 
| 92 | 
            +
                        rows << row
         | 
| 87 93 | 
             
                      elsif @opts[:no_details]
         | 
| 88 94 | 
             
                        @monitor.mbean(mbean_id).scan.each do |name|
         | 
| 89 95 | 
             
                          puts "    - #{name}"
         | 
| 90 96 | 
             
                        end
         | 
| 91 97 | 
             
                      else
         | 
| 92 98 | 
             
                        @monitor.mbean(mbean_id).detail resources do |resource, detail|
         | 
| 93 | 
            -
                           | 
| 99 | 
            +
                          row = [resource]
         | 
| 94 100 | 
             
                          detail.each do |name, value|
         | 
| 95 | 
            -
                             | 
| 101 | 
            +
                            row << value
         | 
| 96 102 | 
             
                          end
         | 
| 103 | 
            +
                          rows << row
         | 
| 97 104 | 
             
                        end
         | 
| 98 105 | 
             
                      end
         | 
| 106 | 
            +
                      rows.each { |row| table.add :normal, *row }
         | 
| 107 | 
            +
                      table.print
         | 
| 99 108 | 
             
                    end
         | 
| 100 109 | 
             
                  end
         | 
| 101 110 |  | 
| @@ -104,4 +113,3 @@ module JBoss | |
| 104 113 | 
             
              end
         | 
| 105 114 |  | 
| 106 115 | 
             
            end
         | 
| 107 | 
            -
             | 
| @@ -0,0 +1,174 @@ | |
| 1 | 
            +
            #                         The MIT License
         | 
| 2 | 
            +
            #
         | 
| 3 | 
            +
            # Copyright (c) 2011 Marcelo Guimarães <ataxexe@gmail.com>
         | 
| 4 | 
            +
            #
         | 
| 5 | 
            +
            # Permission is hereby granted, free of charge, to any person obtaining a copy
         | 
| 6 | 
            +
            # of this software and associated documentation files (the "Software"), to deal
         | 
| 7 | 
            +
            # in the Software without restriction, including without limitation the rights
         | 
| 8 | 
            +
            # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
         | 
| 9 | 
            +
            # copies of the Software, and to permit persons to whom the Software is
         | 
| 10 | 
            +
            # furnished to do so, subject to the following conditions:
         | 
| 11 | 
            +
            #
         | 
| 12 | 
            +
            # The above copyright notice and this permission notice shall be included in
         | 
| 13 | 
            +
            # all copies or substantial portions of the Software.
         | 
| 14 | 
            +
            #
         | 
| 15 | 
            +
            # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
         | 
| 16 | 
            +
            # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
         | 
| 17 | 
            +
            # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
         | 
| 18 | 
            +
            # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
         | 
| 19 | 
            +
            # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
         | 
| 20 | 
            +
            # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
         | 
| 21 | 
            +
            # THE SOFTWARE.
         | 
| 22 | 
            +
             | 
| 23 | 
            +
            require 'wirble'
         | 
| 24 | 
            +
             | 
| 25 | 
            +
            class TableBuilder
         | 
| 26 | 
            +
             | 
| 27 | 
            +
              attr_writer :title
         | 
| 28 | 
            +
             | 
| 29 | 
            +
              def initialize params = {}
         | 
| 30 | 
            +
                params[:colors] ||= {}
         | 
| 31 | 
            +
                @colors = {
         | 
| 32 | 
            +
                  :title => :yellow,
         | 
| 33 | 
            +
                  :header => :light_blue,
         | 
| 34 | 
            +
                  :good => :green,
         | 
| 35 | 
            +
                  :bad => :red,
         | 
| 36 | 
            +
                  :warn => :brown,
         | 
| 37 | 
            +
                  :line => :purple,
         | 
| 38 | 
            +
                  :normal => nil
         | 
| 39 | 
            +
                }.merge! params[:colors]
         | 
| 40 | 
            +
                @health = params[:health]
         | 
| 41 | 
            +
                @header = params[:header]
         | 
| 42 | 
            +
                @formatter = params[:formatter]
         | 
| 43 | 
            +
                @print_type = (params[:print_as] or :table)
         | 
| 44 | 
            +
                @single_result = params[:single_result]
         | 
| 45 | 
            +
             | 
| 46 | 
            +
                @data = []
         | 
| 47 | 
            +
                @types = []
         | 
| 48 | 
            +
                @title = nil
         | 
| 49 | 
            +
              end
         | 
| 50 | 
            +
             | 
| 51 | 
            +
              def add(type, *args)
         | 
| 52 | 
            +
                @types << type
         | 
| 53 | 
            +
                @data << args
         | 
| 54 | 
            +
              end
         | 
| 55 | 
            +
             | 
| 56 | 
            +
              def print
         | 
| 57 | 
            +
                build_header @header
         | 
| 58 | 
            +
                check_health
         | 
| 59 | 
            +
                puts colorize(:title, @title)
         | 
| 60 | 
            +
                print_as_table if @print_type == :table
         | 
| 61 | 
            +
                print_as_single_list if @print_type == :single_list
         | 
| 62 | 
            +
              end
         | 
| 63 | 
            +
             | 
| 64 | 
            +
              def print_as_single_list
         | 
| 65 | 
            +
                header = @data[0]
         | 
| 66 | 
            +
                data ||= @data[1]
         | 
| 67 | 
            +
                type = @types[1]
         | 
| 68 | 
            +
                format_row(1, type)
         | 
| 69 | 
            +
             | 
| 70 | 
            +
                line = colorize :line, '-'
         | 
| 71 | 
            +
                data.each_index do |i|
         | 
| 72 | 
            +
                  description = colorize :header, header[i]
         | 
| 73 | 
            +
                  value = colorize type, data[i]
         | 
| 74 | 
            +
                  puts "  #{line} #{description} = #{value}"
         | 
| 75 | 
            +
                end
         | 
| 76 | 
            +
              end
         | 
| 77 | 
            +
             | 
| 78 | 
            +
              def print_as_table colspan = 2
         | 
| 79 | 
            +
                @data.each_index do |i|
         | 
| 80 | 
            +
                  type = @types[i]
         | 
| 81 | 
            +
                  format_row(i, type)
         | 
| 82 | 
            +
                  @data[i].each_index do |j|
         | 
| 83 | 
            +
                    column = @data[i][j]
         | 
| 84 | 
            +
                    width = max_width j
         | 
| 85 | 
            +
                    value = column.to_s.ljust(width) if j == 0
         | 
| 86 | 
            +
                    value ||= column.to_s.rjust(width)
         | 
| 87 | 
            +
                    printf colorize(type, value)
         | 
| 88 | 
            +
                    printf(" " * colspan)
         | 
| 89 | 
            +
                  end
         | 
| 90 | 
            +
                  puts
         | 
| 91 | 
            +
                end
         | 
| 92 | 
            +
              end
         | 
| 93 | 
            +
             | 
| 94 | 
            +
              def format_row(i, type)
         | 
| 95 | 
            +
                if @formatter and type != :header
         | 
| 96 | 
            +
                  if @formatter.is_a? Hash
         | 
| 97 | 
            +
                    @formatter[:humanize].each do |index|
         | 
| 98 | 
            +
                      @data[i][index] = humanize @data[i][index]
         | 
| 99 | 
            +
                    end
         | 
| 100 | 
            +
                  else
         | 
| 101 | 
            +
                    @data[i] = @formatter.call(@data[i])
         | 
| 102 | 
            +
                  end
         | 
| 103 | 
            +
                end
         | 
| 104 | 
            +
              end
         | 
| 105 | 
            +
             | 
| 106 | 
            +
              def check_health
         | 
| 107 | 
            +
                return unless @health
         | 
| 108 | 
            +
                @data.each_index do |i|
         | 
| 109 | 
            +
                  if @types[i] == :normal
         | 
| 110 | 
            +
                    row = @data[i]
         | 
| 111 | 
            +
                    if @health.is_a? Hash
         | 
| 112 | 
            +
                      indexes = @health[:indexes]
         | 
| 113 | 
            +
                      @health[:max] = row[indexes[:max]].to_f
         | 
| 114 | 
            +
                      @health[:using] = row[indexes[:using]].to_f if indexes[:using]
         | 
| 115 | 
            +
                      @health[:free] = row[indexes[:free]].to_f if indexes[:free]
         | 
| 116 | 
            +
                      @types[i] = health @health
         | 
| 117 | 
            +
                    else
         | 
| 118 | 
            +
                      @types[i] = @health.call(row)
         | 
| 119 | 
            +
                    end
         | 
| 120 | 
            +
                  end
         | 
| 121 | 
            +
                end
         | 
| 122 | 
            +
              end
         | 
| 123 | 
            +
             | 
| 124 | 
            +
              def health params
         | 
| 125 | 
            +
                warn_limit = (params[:warn_at] or 0.3)
         | 
| 126 | 
            +
                bad_limit = (params[:alert_at] or 0.15)
         | 
| 127 | 
            +
                return :bad if under_limit? bad_limit, params
         | 
| 128 | 
            +
                return :warn if warn_limit and under_limit? warn_limit, params
         | 
| 129 | 
            +
                :good
         | 
| 130 | 
            +
              end
         | 
| 131 | 
            +
             | 
| 132 | 
            +
              def under_limit? threshold, params
         | 
| 133 | 
            +
                if params[:free]
         | 
| 134 | 
            +
                  free = (params[:free] / params[:max].to_f)
         | 
| 135 | 
            +
                  (free < threshold)
         | 
| 136 | 
            +
                elsif params[:using]
         | 
| 137 | 
            +
                  free = params[:max] - params[:using]
         | 
| 138 | 
            +
                  under_limit? threshold, :free => free, :max => params[:max]
         | 
| 139 | 
            +
                end
         | 
| 140 | 
            +
              end
         | 
| 141 | 
            +
             | 
| 142 | 
            +
              def humanize bytes
         | 
| 143 | 
            +
                bytes = bytes.to_i
         | 
| 144 | 
            +
                return (bytes / (1024 * 1024)).to_s << " MB" if bytes > (1024 * 1024)
         | 
| 145 | 
            +
                (bytes / (1024)).to_s << " KB" if bytes > (1024)
         | 
| 146 | 
            +
              end
         | 
| 147 | 
            +
             | 
| 148 | 
            +
              def build_header header
         | 
| 149 | 
            +
                return unless header
         | 
| 150 | 
            +
                if header.is_a? Array
         | 
| 151 | 
            +
                  if header.first.is_a? Array
         | 
| 152 | 
            +
                    header.reverse.each do |value|
         | 
| 153 | 
            +
                      build_header value
         | 
| 154 | 
            +
                    end
         | 
| 155 | 
            +
                  else
         | 
| 156 | 
            +
                    @data = [header] + @data
         | 
| 157 | 
            +
                    @types = [:header] + @types
         | 
| 158 | 
            +
                  end
         | 
| 159 | 
            +
                end
         | 
| 160 | 
            +
              end
         | 
| 161 | 
            +
             | 
| 162 | 
            +
              def colorize(type, value)
         | 
| 163 | 
            +
                Wirble::Colorize::colorize_string(value, @colors[type])
         | 
| 164 | 
            +
              end
         | 
| 165 | 
            +
             | 
| 166 | 
            +
              def max_width column
         | 
| 167 | 
            +
                max = 0
         | 
| 168 | 
            +
                @data.each do |row|
         | 
| 169 | 
            +
                  max = [row[column].to_s.length, max].max
         | 
| 170 | 
            +
                end
         | 
| 171 | 
            +
                max
         | 
| 172 | 
            +
              end
         | 
| 173 | 
            +
             | 
| 174 | 
            +
            end
         | 
| @@ -34,6 +34,11 @@ module JBoss | |
| 34 34 | 
             
                        :pattern => 'jboss.web:type=Manager,host=localhost,path=/#{resource}',
         | 
| 35 35 | 
             
                        :properties => %W(activeSessions maxActive distributable maxActiveSessions
         | 
| 36 36 | 
             
                                          expiredSessions rejectedSessions),
         | 
| 37 | 
            +
                        :header => [
         | 
| 38 | 
            +
                          ['Context', 'Active', 'Max', 'Distributable', 'Max Active', 'Expired', 'Rejected'],
         | 
| 39 | 
            +
                          ['', 'Sessions', 'Active', '',
         | 
| 40 | 
            +
                           'Sessions', 'Sessions', 'Sessions'],
         | 
| 41 | 
            +
                        ],
         | 
| 37 42 | 
             
                        :scan => proc do
         | 
| 38 43 | 
             
                          query "jboss.web:type=Manager,*" do |path|
         | 
| 39 44 | 
             
                            path.gsub! "jboss.web:type=Manager,path=/", ""
         | 
| @@ -50,6 +55,13 @@ module JBoss | |
| 50 55 | 
             
                        :description => 'JBossWeb connector',
         | 
| 51 56 | 
             
                        :pattern => 'jboss.web:type=ThreadPool,name=#{resource}',
         | 
| 52 57 | 
             
                        :properties => %W(maxThreads currentThreadCount currentThreadsBusy),
         | 
| 58 | 
            +
                        :header => ['Connector', 'Max Threads', 'Current Threads', 'Busy Threads'],
         | 
| 59 | 
            +
                        :health => {
         | 
| 60 | 
            +
                          :indexes => {
         | 
| 61 | 
            +
                            :max => 1,
         | 
| 62 | 
            +
                            :using => 2
         | 
| 63 | 
            +
                          }
         | 
| 64 | 
            +
                        },
         | 
| 53 65 | 
             
                        :scan => proc do
         | 
| 54 66 | 
             
                          query "jboss.web:type=ThreadPool,*" do |path|
         | 
| 55 67 | 
             
                            path.gsub "jboss.web:type=ThreadPool,name=", ""
         | 
| @@ -59,7 +71,9 @@ module JBoss | |
| 59 71 | 
             
                      :cached_connection_manager => {
         | 
| 60 72 | 
             
                        :description => 'JBoss JCA cached connections',
         | 
| 61 73 | 
             
                        :pattern => 'jboss.jca:service=CachedConnectionManager',
         | 
| 62 | 
            -
                        :properties => %W(InUseConnections)
         | 
| 74 | 
            +
                        :properties => %W(InUseConnections),
         | 
| 75 | 
            +
                        :header => ['In Use Connections'],
         | 
| 76 | 
            +
                        :print_as => :single_list
         | 
| 63 77 | 
             
                      },
         | 
| 64 78 | 
             
                      :main_deployer => {
         | 
| 65 79 | 
             
                        :description => 'Main Deployer',
         | 
| @@ -68,29 +82,47 @@ module JBoss | |
| 68 82 | 
             
                      :engine => {
         | 
| 69 83 | 
             
                        :description => 'JBossWeb engine',
         | 
| 70 84 | 
             
                        :pattern => 'jboss.web:type=Engine',
         | 
| 71 | 
            -
                        :properties => %W(jvmRoute name defaultHost)
         | 
| 85 | 
            +
                        :properties => %W(jvmRoute name defaultHost),
         | 
| 86 | 
            +
                        :header => ['JVM Route', 'Name', 'Default Host'],
         | 
| 87 | 
            +
                        :print_as => :single_list
         | 
| 72 88 | 
             
                      },
         | 
| 73 89 | 
             
                      :log4j => {
         | 
| 74 90 | 
             
                        :description => 'JBoss Log4J Service',
         | 
| 75 91 | 
             
                        :pattern => 'jboss.system:service=Logging,type=Log4jService',
         | 
| 76 | 
            -
                        :properties => %W(DefaultJBossServerLogThreshold)
         | 
| 92 | 
            +
                        :properties => %W(DefaultJBossServerLogThreshold),
         | 
| 93 | 
            +
                        :header => ['Default Server Log Threshold'],
         | 
| 94 | 
            +
                        :print_as => :single_list
         | 
| 77 95 | 
             
                      },
         | 
| 78 96 | 
             
                      :server => {
         | 
| 79 97 | 
             
                        :description => 'JBoss Server specifications',
         | 
| 80 98 | 
             
                        :pattern => 'jboss.system:type=Server',
         | 
| 81 | 
            -
                        :properties => %W(VersionName VersionNumber Version)
         | 
| 99 | 
            +
                        :properties => %W(VersionName VersionNumber Version),
         | 
| 100 | 
            +
                        :header => ['Version Name', 'Version Number', 'Version'],
         | 
| 101 | 
            +
                        :print_as => :single_list
         | 
| 82 102 | 
             
                      },
         | 
| 83 103 | 
             
                      :server_info => {
         | 
| 84 104 | 
             
                        :description => 'JBoss Server runtime info',
         | 
| 85 105 | 
             
                        :pattern => 'jboss.system:type=ServerInfo',
         | 
| 86 106 | 
             
                        :properties => %W(ActiveThreadCount MaxMemory FreeMemory AvailableProcessors
         | 
| 87 | 
            -
                                           | 
| 88 | 
            -
             | 
| 107 | 
            +
                                          JavaVendor JavaVersion OSName OSArch),
         | 
| 108 | 
            +
                        :header => ['Active Threads', 'Max Memory', 'Free Memory',
         | 
| 109 | 
            +
                                    'Processors', 'Java Vendor',
         | 
| 110 | 
            +
                                    'Java Version', 'OS Name', 'OS Arch'],
         | 
| 111 | 
            +
                        :formatter => {:humanize => [1, 2]},
         | 
| 112 | 
            +
                        :print_as => :single_list,
         | 
| 113 | 
            +
                        :health => {
         | 
| 114 | 
            +
                          :indexes => {
         | 
| 115 | 
            +
                            :max => 1,
         | 
| 116 | 
            +
                            :free => 2
         | 
| 117 | 
            +
                          }
         | 
| 118 | 
            +
                        },
         | 
| 89 119 | 
             
                      },
         | 
| 90 120 | 
             
                      :server_config => {
         | 
| 91 121 | 
             
                        :description => 'JBoss Server configuration',
         | 
| 92 122 | 
             
                        :pattern => 'jboss.system:type=ServerConfig',
         | 
| 93 | 
            -
                        :properties => %W(ServerName HomeDir ServerLogDir ServerHomeURL)
         | 
| 123 | 
            +
                        :properties => %W(ServerName HomeDir ServerLogDir ServerHomeURL),
         | 
| 124 | 
            +
                        :header => ['Server Name', 'Home Dir', 'Log Dir', 'Home URL'],
         | 
| 125 | 
            +
                        :print_as => :single_list
         | 
| 94 126 | 
             
                      },
         | 
| 95 127 | 
             
                      :system_properties => {
         | 
| 96 128 | 
             
                        :description => 'System properties',
         | 
| @@ -100,6 +132,13 @@ module JBoss | |
| 100 132 | 
             
                        :description => 'JBossWeb connector requests',
         | 
| 101 133 | 
             
                        :pattern => 'jboss.web:type=GlobalRequestProcessor,name=#{resource}',
         | 
| 102 134 | 
             
                        :properties => %W(requestCount errorCount maxTime),
         | 
| 135 | 
            +
                        :header => ['Connector', 'Requests', 'Errors', 'Max Time'],
         | 
| 136 | 
            +
                        :health => {
         | 
| 137 | 
            +
                          :indexes => {
         | 
| 138 | 
            +
                            :max => 1,
         | 
| 139 | 
            +
                            :using => 2
         | 
| 140 | 
            +
                          }
         | 
| 141 | 
            +
                        },
         | 
| 103 142 | 
             
                        :scan => proc do
         | 
| 104 143 | 
             
                          query "jboss.web:type=ThreadPool,*" do |path|
         | 
| 105 144 | 
             
                            path.gsub "jboss.web:type=ThreadPool,name=", ""
         | 
| @@ -111,6 +150,16 @@ module JBoss | |
| 111 150 | 
             
                        :pattern => 'jboss.jca:service=ManagedConnectionPool,name=#{resource}',
         | 
| 112 151 | 
             
                        :properties => %W(MinSize MaxSize AvailableConnectionCount
         | 
| 113 152 | 
             
                                            InUseConnectionCount ConnectionCount),
         | 
| 153 | 
            +
                        :header => [
         | 
| 154 | 
            +
                          ['JNDI Name', 'Min', 'Max', 'Connections', 'Connections', 'Connection'],
         | 
| 155 | 
            +
                          ['', 'Size', 'Size', 'Avaliable', 'In Use', 'Count']
         | 
| 156 | 
            +
                        ],
         | 
| 157 | 
            +
                        :health => {
         | 
| 158 | 
            +
                          :indexes => {
         | 
| 159 | 
            +
                            :max => 2,
         | 
| 160 | 
            +
                            :using => 4
         | 
| 161 | 
            +
                          }
         | 
| 162 | 
            +
                        },
         | 
| 114 163 | 
             
                        :scan => proc do
         | 
| 115 164 | 
             
                          query "jboss.jca:service=ManagedConnectionPool,*" do |path|
         | 
| 116 165 | 
             
                            path.gsub "jboss.jca:service=ManagedConnectionPool,name=", ""
         | 
| @@ -120,8 +169,10 @@ module JBoss | |
| 120 169 | 
             
                      :queue => {
         | 
| 121 170 | 
             
                        :description => 'JMS Queue',
         | 
| 122 171 | 
             
                        :pattern => 'jboss.messaging.destination:service=Queue,name=#{resource}',
         | 
| 123 | 
            -
                        :properties => %W( | 
| 172 | 
            +
                        :properties => %W(JNDIName MessageCount DeliveringCount
         | 
| 124 173 | 
             
                          ScheduledMessageCount MaxSize FullSize Clustered ConsumerCount),
         | 
| 174 | 
            +
                        :header => ['Name', 'JNDI', 'Messages', 'Deliveries', 'Scheduleded', 'Max Size',
         | 
| 175 | 
            +
                                    'Full Size', 'Clustered', 'Consumed'],
         | 
| 125 176 | 
             
                        :scan => proc do
         | 
| 126 177 | 
             
                          query "jboss.messaging.destination:service=Queue,*" do |path|
         | 
| 127 178 | 
             
                            path.gsub "jboss.messaging.destination:service=Queue,name=", ""
         | 
| @@ -136,6 +187,7 @@ module JBoss | |
| 136 187 | 
             
                        :description => 'EJB',
         | 
| 137 188 | 
             
                        :pattern => 'jboss.j2ee:#{resource},service=EJB3',
         | 
| 138 189 | 
             
                        :properties => %W(CreateCount RemoveCount CurrentSize AvailableCount),
         | 
| 190 | 
            +
                        :header => ['EJB', 'Created', 'Removed', 'Current', 'Available'],
         | 
| 139 191 | 
             
                        :scan => proc do
         | 
| 140 192 | 
             
                          result = query "jboss.j2ee:*"
         | 
| 141 193 | 
             
                          (result.find_all do |path|
         | 
| @@ -146,14 +198,12 @@ module JBoss | |
| 146 198 | 
             
                        end
         | 
| 147 199 | 
             
                      }
         | 
| 148 200 | 
             
                    }
         | 
| 149 | 
            -
                    @@defaults
         | 
| 150 201 | 
             
                  end
         | 
| 151 202 |  | 
| 152 203 | 
             
                  module_function :defaults
         | 
| 153 204 |  | 
| 154 205 | 
             
                  def mbeans
         | 
| 155 206 | 
             
                    @mbeans ||= {}
         | 
| 156 | 
            -
                    @mbeans
         | 
| 157 207 | 
             
                  end
         | 
| 158 208 |  | 
| 159 209 | 
             
                  def monitor mbean_id, params
         | 
| @@ -174,4 +224,3 @@ module JBoss | |
| 174 224 | 
             
              end
         | 
| 175 225 |  | 
| 176 226 | 
             
            end
         | 
| 177 | 
            -
             | 
    
        data/lib/rboss/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: rboss
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.5.0
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -9,7 +9,7 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2012-03- | 
| 12 | 
            +
            date: 2012-03-22 00:00:00.000000000Z
         | 
| 13 13 | 
             
            dependencies: []
         | 
| 14 14 | 
             
            description: ! "A tool to create profiles for JBoss Application Server and use\n twiddle
         | 
| 15 15 | 
             
              to manage a running JBoss AS."
         | 
| @@ -57,6 +57,7 @@ files: | |
| 57 57 | 
             
            - lib/rboss/resources/mod_cluster.sar/META-INF/mod_cluster-jboss-beans.xml
         | 
| 58 58 | 
             
            - lib/rboss/resources/mod_cluster.sar/mod_cluster-1.1.2.Final.jar
         | 
| 59 59 | 
             
            - lib/rboss/resources/run.conf.erb
         | 
| 60 | 
            +
            - lib/rboss/table_builder.rb
         | 
| 60 61 | 
             
            - lib/rboss/twiddle.rb
         | 
| 61 62 | 
             
            - lib/rboss/twiddle/base_monitor.rb
         | 
| 62 63 | 
             
            - lib/rboss/twiddle/mbean.rb
         |