Module: Oboe::Loading
- Defined in:
- lib/oboe/loading.rb
Overview
This module houses all of the loading functionality for the oboe gem.
Note that this does not necessarily have to include initialization routines (although it can).
Actual initialization is often separated out as it can be dependent on on the state of the stack boot process. e.g. code requiring that initializers, frameworks or instrumented libraries are already loaded…
Class Method Summary collapse
-
.load_access_key ⇒ Object
Load the TraceView access key (either from system configuration file or environment variable) and calculate internal RUM ID.
-
.require_api ⇒ Object
Load the oboe tracing API.
Class Method Details
.load_access_key ⇒ Object
Load the TraceView access key (either from system configuration file or environment variable) and calculate internal RUM ID
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/oboe/loading.rb', line 44 def self.load_access_key begin if ENV.has_key?('TRACEVIEW_CUUID') # Preferably get access key from environment (e.g. Heroku) Oboe::Config[:access_key] = ENV['TRACEVIEW_CUUID'] Oboe::Config[:rum_id] = Oboe::Util::Base64URL.encode(Digest::SHA1.digest("RUM" + Oboe::Config[:access_key])) else # ..else read from system-wide configuration file if Oboe::Config.access_key.empty? config_file = '/etc/tracelytics.conf' return unless File.exists?(config_file) File.open(config_file).each do |line| if line =~ /^tracelyzer.access_key=/ or line =~ /^access_key/ bits = line.split(/=/) Oboe::Config[:access_key] = bits[1].strip Oboe::Config[:rum_id] = Oboe::Util::Base64URL.encode(Digest::SHA1.digest("RUM" + Oboe::Config[:access_key])) break end end end end rescue Exception => e Oboe.logger.error "Trouble obtaining access_key and rum_id: #{e.inspect}" end end |
.require_api ⇒ Object
Load the oboe tracing API
74 75 76 77 78 79 80 81 82 83 84 85 86 |
# File 'lib/oboe/loading.rb', line 74 def self.require_api pattern = File.join(File.dirname(__FILE__), 'api', '*.rb') Dir.glob(pattern) do |f| require f end require 'oboe/api' begin Oboe::API.extend_with_tracing rescue LoadError => e Oboe.logger.fatal "[oboe/error] Couldn't load oboe api." end end |