reevoo / sapience-rb

Hasslefree auto-configuration for logging, metrics and exception collection.
MIT License
10 stars 0 forks source link

Use sapience with non-rack applications #5

Closed seddy closed 8 years ago

seddy commented 8 years ago

For example: tableau_data_warehouse, which runs purely as a sneakers worker and has no rack logic in it whatsoever.

I attempted to include it as per instruction from @amalkov:

12:02:46@~/src/reevoo/tableau_data_warehouse (add_sapience *?):> git diff lib/tableau_data_warehouse/logger.rb
diff --git a/lib/tableau_data_warehouse/logger.rb b/lib/tableau_data_warehouse/logger.rb
index a068ee5..97b3de2 100644
--- a/lib/tableau_data_warehouse/logger.rb
+++ b/lib/tableau_data_warehouse/logger.rb
@@ -2,6 +2,6 @@ require 'logger'

 module TableauDataWarehouse
   def self.logger
-    @@logger ||= Logger.new(STDOUT) # rubocop:disable Style/ClassVars
+    @@logger ||= Sapience[self] # rubocop:disable Style/ClassVars
   end
 end

But it blew up with the following stack trace on lib/sapience/config_loader.rb:35:inapplication_config_file': NameError: uninitialized constant Module::Rack (Sequel::DatabaseConnectionError)`:

12:00:04@~/src/reevoo/tableau_data_warehouse (add_sapience *?):> be rake
/Users/edsaunders/.rbenv/versions/2.2.4/bin/ruby -I/Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/rspec-core-3.3.2/lib:/Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/rspec-support-3.3.0/lib /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/rspec-core-3.3.2/exe/rspec --pattern spec/\*\*\{,/\*/\*\*\}/\*_spec.rb --exclude-pattern "spec/{integration,system}/**"
Coverage report generated for RSpec to /Users/edsaunders/src/reevoo/tableau_data_warehouse/coverage. 83 / 128 LOC (64.84%) covered.
/Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sapience-1.0.0/lib/sapience/config_loader.rb:35:in `application_config_file': NameError: uninitialized constant Module::Rack (Sequel::DatabaseConnectionError)
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/reevoo_sapience-0.2.6/lib/reevoo_sapience.rb:11:in `config_file_path'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sapience-1.0.0/lib/sapience/config_loader.rb:20:in `load_from_file'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sapience-1.0.0/lib/sapience/sapience.rb:35:in `config'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sapience-1.0.0/lib/sapience/base.rb:243:in `level_index'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sapience-1.0.0/lib/sapience/base.rb:72:in `info'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sequel-4.27.0/lib/sequel/database/logging.rb:70:in `block in log_each'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sequel-4.27.0/lib/sequel/database/logging.rb:70:in `each'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sequel-4.27.0/lib/sequel/database/logging.rb:70:in `log_each'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sequel-4.27.0/lib/sequel/database/logging.rb:64:in `log_duration'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sequel-4.27.0/lib/sequel/database/logging.rb:42:in `log_yield'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sequel-4.27.0/lib/sequel/adapters/postgres.rb:184:in `execute_query'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sequel-4.27.0/lib/sequel/adapters/postgres.rb:171:in `block in execute'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sequel-4.27.0/lib/sequel/adapters/postgres.rb:147:in `check_disconnect_errors'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sequel-4.27.0/lib/sequel/adapters/postgres.rb:171:in `execute'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sequel-4.27.0/lib/sequel/adapters/postgres.rb:269:in `block in connect'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sequel-4.27.0/lib/sequel/adapters/postgres.rb:269:in `each'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sequel-4.27.0/lib/sequel/adapters/postgres.rb:269:in `connect'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sequel-4.27.0/lib/sequel/connection_pool.rb:101:in `make_new'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sequel-4.27.0/lib/sequel/connection_pool/threaded.rb:222:in `make_new'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sequel-4.27.0/lib/sequel/connection_pool/threaded.rb:195:in `available'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sequel-4.27.0/lib/sequel/connection_pool/threaded.rb:131:in `_acquire'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sequel-4.27.0/lib/sequel/connection_pool/threaded.rb:145:in `block in acquire'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sequel-4.27.0/lib/sequel/connection_pool/threaded.rb:263:in `block in sync'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sequel-4.27.0/lib/sequel/connection_pool/threaded.rb:263:in `synchronize'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sequel-4.27.0/lib/sequel/connection_pool/threaded.rb:263:in `sync'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sequel-4.27.0/lib/sequel/connection_pool/threaded.rb:144:in `acquire'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sequel-4.27.0/lib/sequel/connection_pool/threaded.rb:102:in `hold'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sequel-4.27.0/lib/sequel/database/connecting.rb:249:in `synchronize'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sequel-4.27.0/lib/sequel/adapters/shared/postgres.rb:456:in `server_version'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sequel-4.27.0/lib/sequel/adapters/shared/postgres.rb:1715:in `server_version'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sequel-4.27.0/lib/sequel/dataset/sql.rb:228:in `select_sql'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sequel-4.27.0/lib/sequel/dataset/actions.rb:139:in `each'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sequel-4.27.0/lib/sequel/dataset/actions.rb:390:in `map'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sequel-4.27.0/lib/sequel/dataset/actions.rb:390:in `map'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sequel-4.27.0/lib/sequel/adapters/shared/postgres.rb:1089:in `schema_parse_table'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sequel-4.27.0/lib/sequel/database/query.rb:159:in `schema'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sequel-4.27.0/lib/sequel/model/base.rb:906:in `block in get_db_schema'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sequel-4.27.0/lib/sequel/model/base.rb:799:in `check_non_connection_error'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sequel-4.27.0/lib/sequel/model/base.rb:906:in `get_db_schema'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sequel-4.27.0/lib/sequel/model/base.rb:695:in `block in set_dataset'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sequel-4.27.0/lib/sequel/model/base.rb:799:in `check_non_connection_error'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sequel-4.27.0/lib/sequel/model/base.rb:695:in `set_dataset'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/sequel-4.27.0/lib/sequel/model.rb:46:in `Model'
    from /Users/edsaunders/src/reevoo/tableau_data_warehouse/lib/tableau_data_warehouse/models/client_user.rb:3:in `<module:Models>'
    from /Users/edsaunders/src/reevoo/tableau_data_warehouse/lib/tableau_data_warehouse/models/client_user.rb:2:in `<module:TableauDataWarehouse>'
    from /Users/edsaunders/src/reevoo/tableau_data_warehouse/lib/tableau_data_warehouse/models/client_user.rb:1:in `<top (required)>'
    from /Users/edsaunders/src/reevoo/tableau_data_warehouse/lib/tableau_data_warehouse.rb:30:in `require'
    from /Users/edsaunders/src/reevoo/tableau_data_warehouse/lib/tableau_data_warehouse.rb:30:in `<top (required)>'
    from /Users/edsaunders/src/reevoo/tableau_data_warehouse/spec/spec_helper.rb:10:in `require'
    from /Users/edsaunders/src/reevoo/tableau_data_warehouse/spec/spec_helper.rb:10:in `<top (required)>'
    from /Users/edsaunders/src/reevoo/tableau_data_warehouse/spec/consumers/client_consumer_spec.rb:1:in `require'
    from /Users/edsaunders/src/reevoo/tableau_data_warehouse/spec/consumers/client_consumer_spec.rb:1:in `<top (required)>'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/configuration.rb:1327:in `load'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/configuration.rb:1327:in `block in load_spec_files'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/configuration.rb:1325:in `each'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/configuration.rb:1325:in `load_spec_files'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/runner.rb:102:in `setup'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/runner.rb:88:in `run'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/runner.rb:73:in `run'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/runner.rb:41:in `invoke'
    from /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/rspec-core-3.3.2/exe/rspec:4:in `<main>'
/Users/edsaunders/.rbenv/versions/2.2.4/bin/ruby -I/Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/rspec-core-3.3.2/lib:/Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/rspec-support-3.3.0/lib /Users/edsaunders/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/rspec-core-3.3.2/exe/rspec --pattern spec/\*\*\{,/\*/\*\*\}/\*_spec.rb --exclude-pattern "spec/{integration,system}/**" failed
seddy commented 8 years ago

👍 Thanks @mhenrixon 😸 !