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 |
# File 'lib/oboe/loading.rb', line 44 def self.load_access_key if ENV.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.exist?(config_file) File.open(config_file).each do |line| if line =~ /^tracelyzer.access_key=/ || 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 StandardError => e Oboe.logger.error "Trouble obtaining access_key and rum_id: #{e.inspect}" end |
.require_api ⇒ Object
Load the oboe tracing API
72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/oboe/loading.rb', line 72 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: #{e.}" end end |