librato-rails 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/README.md +3 -1
- data/lib/librato/rails/aggregator.rb +11 -2
- data/lib/librato/rails/subscribers.rb +4 -4
- data/lib/librato/rails/version.rb +1 -1
- data/lib/librato/rails.rb +6 -5
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/development.log +2189 -0
- data/test/dummy/log/test.log +5250 -0
- data/test/dummy/test_env.sh +2 -0
- data/test/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
- data/test/dummy/tmp/cache/assets/CDF/870/sprockets%2Fb878faf942403e313a5b103e5d80488e +0 -0
- data/test/dummy/tmp/cache/assets/CE8/7E0/sprockets%2F178e2a1f9aa891d473009c7f3095df28 +0 -0
- data/test/dummy/tmp/cache/assets/CF9/7C0/sprockets%2F40fc2f3d2a468a00e463f1d313cb1683 +0 -0
- data/test/dummy/tmp/cache/assets/D04/890/sprockets%2F587335c079eef8d5a63784fc8f99905a +0 -0
- data/test/dummy/tmp/cache/assets/D05/D40/sprockets%2F1c9faaf28d05409b88ad3113374d613c +0 -0
- data/test/dummy/tmp/cache/assets/D11/D90/sprockets%2Ff688bee5b15ad322749fd06432065df2 +0 -0
- data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/test/dummy/tmp/cache/assets/D48/6E0/sprockets%2F3d5dd928c45756c99bb1018cdbba7485 +0 -0
- data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/test/dummy/tmp/cache/assets/D4F/000/sprockets%2F25e44896aac12384727e9dab827ebef9 +0 -0
- data/test/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/test/dummy/tmp/cache/assets/D66/890/sprockets%2F789354d3ec91e1ba6c8e92878d8f6ff8 +0 -0
- data/test/dummy/tmp/cache/assets/D84/000/sprockets%2F2ed60caa8412eb8334fe327cab12cb32 +0 -0
- data/test/dummy/tmp/cache/assets/D8B/F90/sprockets%2Ffe6ce696e9141eb755d8eed79128e17c +0 -0
- data/test/dummy/tmp/cache/assets/D98/8B0/sprockets%2Fedbef6e0d0a4742346cf479f2c522eb0 +0 -0
- data/test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/test/fixtures/config/librato.yml +1 -0
- data/test/integration/mail_test.rb +1 -3
- data/test/integration/request_test.rb +14 -18
- data/test/integration/sql_test.rb +8 -10
- data/test/metrics-rails_test.rb +5 -0
- data/test/unit/aggregator_test.rb +29 -6
- data/test/unit/configuration_test.rb +5 -3
- metadata +223 -183
| Binary file | 
| Binary file | 
| Binary file | 
| Binary file | 
| Binary file | 
| Binary file | 
| Binary file | 
| Binary file | 
| Binary file | 
| Binary file | 
| Binary file | 
| Binary file | 
| Binary file | 
| Binary file | 
| Binary file | 
| Binary file | 
| Binary file | 
| Binary file | 
| @@ -5,11 +5,9 @@ class MailTest < ActiveSupport::IntegrationCase | |
| 5 5 | 
             
              # Query tests - the numbers specified assume running against SQLite
         | 
| 6 6 |  | 
| 7 7 | 
             
              test 'mail sent' do
         | 
| 8 | 
            -
                prefix = Librato::Rails.prefix
         | 
| 9 | 
            -
                
         | 
| 10 8 | 
             
                user = User.create!(:email => 'foo@foo.com', :password => 'wow')
         | 
| 11 9 | 
             
                UserMailer.welcome_email(user).deliver
         | 
| 12 | 
            -
                assert_equal 1, counters[" | 
| 10 | 
            +
                assert_equal 1, counters["rails.mail.sent"]
         | 
| 13 11 | 
             
              end
         | 
| 14 12 |  | 
| 15 13 | 
             
            end
         | 
| @@ -5,49 +5,45 @@ class RequestTest < ActiveSupport::IntegrationCase | |
| 5 5 | 
             
              # Each request
         | 
| 6 6 |  | 
| 7 7 | 
             
              test 'increment total and status' do
         | 
| 8 | 
            -
                prefix = Librato::Rails.prefix
         | 
| 9 8 | 
             
                visit root_path
         | 
| 10 9 |  | 
| 11 | 
            -
                assert_equal 1, counters[" | 
| 12 | 
            -
                assert_equal 1, counters[" | 
| 13 | 
            -
                assert_equal 1, counters[" | 
| 10 | 
            +
                assert_equal 1, counters["rails.request.total"]
         | 
| 11 | 
            +
                assert_equal 1, counters["rails.request.status.200"]
         | 
| 12 | 
            +
                assert_equal 1, counters["rails.request.status.2xx"]
         | 
| 14 13 |  | 
| 15 14 | 
             
                visit '/status/204'
         | 
| 16 15 |  | 
| 17 | 
            -
                assert_equal 2, counters[" | 
| 18 | 
            -
                assert_equal 1, counters[" | 
| 19 | 
            -
                assert_equal 1, counters[" | 
| 20 | 
            -
                assert_equal 2, counters[" | 
| 16 | 
            +
                assert_equal 2, counters["rails.request.total"]
         | 
| 17 | 
            +
                assert_equal 1, counters["rails.request.status.200"]
         | 
| 18 | 
            +
                assert_equal 1, counters["rails.request.status.204"]
         | 
| 19 | 
            +
                assert_equal 2, counters["rails.request.status.2xx"]
         | 
| 21 20 | 
             
              end
         | 
| 22 21 |  | 
| 23 22 | 
             
              test 'request times' do
         | 
| 24 | 
            -
                prefix = Librato::Rails.prefix
         | 
| 25 23 | 
             
                visit root_path
         | 
| 26 24 |  | 
| 27 25 | 
             
                # common for all paths
         | 
| 28 | 
            -
                assert_equal 1, aggregate[" | 
| 29 | 
            -
                assert_equal 1, aggregate[" | 
| 30 | 
            -
                assert_equal 1, aggregate[" | 
| 26 | 
            +
                assert_equal 1, aggregate["rails.request.time"][:count], 'should record total time'
         | 
| 27 | 
            +
                assert_equal 1, aggregate["rails.request.time.db"][:count], 'should record db time'
         | 
| 28 | 
            +
                assert_equal 1, aggregate["rails.request.time.view"][:count], 'should record view time'
         | 
| 31 29 |  | 
| 32 30 | 
             
                # status specific
         | 
| 33 | 
            -
                assert_equal 1, aggregate[" | 
| 34 | 
            -
                assert_equal 1, aggregate[" | 
| 31 | 
            +
                assert_equal 1, aggregate["rails.request.status.200.time"][:count]
         | 
| 32 | 
            +
                assert_equal 1, aggregate["rails.request.status.2xx.time"][:count]
         | 
| 35 33 | 
             
              end
         | 
| 36 34 |  | 
| 37 35 | 
             
              test 'track exceptions' do
         | 
| 38 | 
            -
                prefix = Librato::Rails.prefix
         | 
| 39 36 | 
             
                begin
         | 
| 40 37 | 
             
                  visit exception_path #rescue nil
         | 
| 41 38 | 
             
                rescue RuntimeError => e
         | 
| 42 39 | 
             
                  raise unless e.message == 'test exception!'
         | 
| 43 40 | 
             
                end
         | 
| 44 | 
            -
                assert_equal 1, counters[" | 
| 41 | 
            +
                assert_equal 1, counters["rails.request.exceptions"]
         | 
| 45 42 | 
             
              end
         | 
| 46 43 |  | 
| 47 44 | 
             
              test 'track slow requests' do
         | 
| 48 | 
            -
                prefix = Librato::Rails.prefix
         | 
| 49 45 | 
             
                visit slow_path
         | 
| 50 | 
            -
                assert_equal 1, counters[" | 
| 46 | 
            +
                assert_equal 1, counters["rails.request.slow"]
         | 
| 51 47 | 
             
              end
         | 
| 52 48 |  | 
| 53 49 | 
             
            end
         | 
| @@ -5,26 +5,24 @@ class SQLTest < ActiveSupport::IntegrationCase | |
| 5 5 | 
             
              # Query tests - the numbers specified assume running against SQLite
         | 
| 6 6 |  | 
| 7 7 | 
             
              test 'total queries and query types' do
         | 
| 8 | 
            -
                prefix = Librato::Rails.prefix
         | 
| 9 | 
            -
                
         | 
| 10 8 | 
             
                # note that modifying queries are wrapped in a transaction which
         | 
| 11 9 | 
             
                # adds 2 to total queries per operation.
         | 
| 12 10 | 
             
                user = User.create!(:email => 'foo@foo.com', :password => 'wow')
         | 
| 13 | 
            -
                assert_equal 3, counters[" | 
| 14 | 
            -
                assert_equal 1, counters[" | 
| 11 | 
            +
                assert_equal 3, counters["rails.sql.queries"]
         | 
| 12 | 
            +
                assert_equal 1, counters["rails.sql.inserts"]
         | 
| 15 13 |  | 
| 16 14 | 
             
                foo = User.find_by_email('foo@foo.com')
         | 
| 17 | 
            -
                assert_equal 4, counters[" | 
| 18 | 
            -
                assert_equal 1, counters[" | 
| 15 | 
            +
                assert_equal 4, counters["rails.sql.queries"]
         | 
| 16 | 
            +
                assert_equal 1, counters["rails.sql.selects"]
         | 
| 19 17 |  | 
| 20 18 | 
             
                foo.password = 'new password'
         | 
| 21 19 | 
             
                foo.save
         | 
| 22 | 
            -
                assert_equal 7, counters[" | 
| 23 | 
            -
                assert_equal 1, counters[" | 
| 20 | 
            +
                assert_equal 7, counters["rails.sql.queries"]
         | 
| 21 | 
            +
                assert_equal 1, counters["rails.sql.updates"]
         | 
| 24 22 |  | 
| 25 23 | 
             
                foo.destroy
         | 
| 26 | 
            -
                assert_equal 10, counters[" | 
| 27 | 
            -
                assert_equal 1, counters[" | 
| 24 | 
            +
                assert_equal 10, counters["rails.sql.queries"]
         | 
| 25 | 
            +
                assert_equal 1, counters["rails.sql.deletes"]
         | 
| 28 26 | 
             
              end
         | 
| 29 27 |  | 
| 30 28 | 
             
            end
         | 
    
        data/test/metrics-rails_test.rb
    CHANGED
    
    | @@ -36,4 +36,9 @@ class LibratoRailsTest < ActiveSupport::TestCase | |
| 36 36 | 
             
                assert_match /\.\d{2,6}$/, Librato::Rails.qualified_source
         | 
| 37 37 | 
             
              end
         | 
| 38 38 |  | 
| 39 | 
            +
              test 'qualified source does not include pid when disabled' do
         | 
| 40 | 
            +
                Librato::Rails.source_pids = false
         | 
| 41 | 
            +
                assert_match Librato::Rails.source, Librato::Rails.qualified_source
         | 
| 42 | 
            +
                Librato::Rails.source_pids = true
         | 
| 43 | 
            +
              end
         | 
| 39 44 | 
             
            end
         | 
| @@ -2,15 +2,38 @@ require 'test_helper' | |
| 2 2 |  | 
| 3 3 | 
             
            class LibratoRailsAggregatorTest < MiniTest::Unit::TestCase
         | 
| 4 4 |  | 
| 5 | 
            +
              def setup
         | 
| 6 | 
            +
                @agg = Librato::Rails::Aggregator.new
         | 
| 7 | 
            +
              end
         | 
| 8 | 
            +
              
         | 
| 5 9 | 
             
              def test_adding_timings
         | 
| 6 | 
            -
                agg  | 
| 10 | 
            +
                @agg.timing 'request.time.total', 23.7
         | 
| 11 | 
            +
                @agg.timing 'request.time.db', 5.3
         | 
| 12 | 
            +
                @agg.timing 'request.time.total', 64.3
         | 
| 7 13 |  | 
| 8 | 
            -
                agg | 
| 9 | 
            -
                 | 
| 10 | 
            -
             | 
| 14 | 
            +
                assert_equal 2, @agg['request.time.total'][:count]
         | 
| 15 | 
            +
                assert_equal 88.0, @agg['request.time.total'][:sum]
         | 
| 16 | 
            +
              end
         | 
| 17 | 
            +
              
         | 
| 18 | 
            +
              def test_block_timing
         | 
| 19 | 
            +
                @agg.timing 'my.task' do
         | 
| 20 | 
            +
                  sleep 0.2
         | 
| 21 | 
            +
                end
         | 
| 22 | 
            +
                assert_in_delta @agg['my.task'][:sum], 200, 50
         | 
| 23 | 
            +
                
         | 
| 24 | 
            +
                @agg.timing('another.task') { sleep 0.1 }
         | 
| 25 | 
            +
                assert_in_delta @agg['another.task'][:sum], 100, 50
         | 
| 26 | 
            +
              end
         | 
| 27 | 
            +
              
         | 
| 28 | 
            +
              def test_return_values
         | 
| 29 | 
            +
                simple = @agg.timing 'simple', 20
         | 
| 30 | 
            +
                assert_equal nil, simple
         | 
| 11 31 |  | 
| 12 | 
            -
                 | 
| 13 | 
            -
             | 
| 32 | 
            +
                timing = @agg.timing 'foo' do
         | 
| 33 | 
            +
                  sleep 0.1
         | 
| 34 | 
            +
                  'bar'
         | 
| 35 | 
            +
                end
         | 
| 36 | 
            +
                assert_equal 'bar', timing
         | 
| 14 37 | 
             
              end
         | 
| 15 38 |  | 
| 16 39 | 
             
            end
         | 
| @@ -7,16 +7,17 @@ class LibratoRailsAggregatorTest < MiniTest::Unit::TestCase | |
| 7 7 | 
             
                ENV.delete('LIBRATO_METRICS_TOKEN')
         | 
| 8 8 | 
             
                ENV.delete('LIBRATO_METRICS_SOURCE')
         | 
| 9 9 | 
             
                Librato::Rails.check_config
         | 
| 10 | 
            +
                Librato::Rails.prefix = nil
         | 
| 10 11 | 
             
              end
         | 
| 11 12 |  | 
| 12 13 | 
             
              def test_environmental_variable_config
         | 
| 13 14 | 
             
                ENV['LIBRATO_METRICS_USER'] = 'foo@bar.com'
         | 
| 14 15 | 
             
                ENV['LIBRATO_METRICS_TOKEN'] = 'api_key'
         | 
| 15 | 
            -
                ENV['LIBRATO_METRICS_SOURCE'] = ' | 
| 16 | 
            +
                ENV['LIBRATO_METRICS_SOURCE'] = 'source'
         | 
| 16 17 | 
             
                Librato::Rails.check_config
         | 
| 17 18 | 
             
                assert_equal 'foo@bar.com', Librato::Rails.user
         | 
| 18 19 | 
             
                assert_equal 'api_key', Librato::Rails.token
         | 
| 19 | 
            -
                assert_equal ' | 
| 20 | 
            +
                assert_equal 'source', Librato::Rails.source
         | 
| 20 21 | 
             
              end
         | 
| 21 22 |  | 
| 22 23 | 
             
              def test_config_file_config
         | 
| @@ -26,13 +27,14 @@ class LibratoRailsAggregatorTest < MiniTest::Unit::TestCase | |
| 26 27 | 
             
                  assert_equal 'rails-test', Librato::Rails.prefix
         | 
| 27 28 | 
             
                  assert_equal 30, Librato::Rails.flush_interval
         | 
| 28 29 | 
             
                  assert_equal 'custom-1', Librato::Rails.source
         | 
| 30 | 
            +
                  assert_equal false, Librato::Rails.source_pids
         | 
| 29 31 | 
             
                end
         | 
| 30 32 | 
             
              end
         | 
| 31 33 |  | 
| 32 34 | 
             
              def test_environmental_and_config_file_config
         | 
| 33 35 | 
             
                ENV['LIBRATO_METRICS_USER'] = 'foo@bar.com'
         | 
| 34 36 | 
             
                ENV['LIBRATO_METRICS_TOKEN'] = 'api_key'
         | 
| 35 | 
            -
                ENV['LIBRATO_METRICS_SOURCE'] = ' | 
| 37 | 
            +
                ENV['LIBRATO_METRICS_SOURCE'] = 'source'
         | 
| 36 38 | 
             
                with_fixture_config do
         | 
| 37 39 | 
             
                  assert_equal 'test@bar.com', Librato::Rails.user # from config file
         | 
| 38 40 | 
             
                  assert_equal 'test api key', Librato::Rails.token # from config file
         |