Module: Minato::Trace

Defined in:
lib/minato/trace.rb,
lib/minato/trace/railtie.rb,
lib/minato/trace/version.rb,
lib/minato/trace/middleware.rb,
lib/minato/trace/middleware/distributed_trace_context.rb,
lib/minato/trace/middleware/integrate_with_cloud_logging.rb

Defined Under Namespace

Modules: Middleware Classes: Railtie

Constant Summary collapse

BLACKLIST_PATHS =
["/health/alive", "/health/ready"].freeze
VERSION =
"0.2.0"

Class Method Summary collapse

Class Method Details

.configure_logggingObject



35
36
37
38
39
# File 'lib/minato/trace.rb', line 35

def self.configure_loggging
  Google::Cloud.configure do |config|
    config.use_logging = false
  end
end

.configure_traceObject



28
29
30
31
32
33
# File 'lib/minato/trace.rb', line 28

def self.configure_trace
  Google::Cloud.configure do |config|
    config.use_trace = true
    config.trace.sampler = Google::Cloud::Trace::TimeSampler.new(path_blacklist: BLACKLIST_PATHS.dup)
  end
end

.enabled?Boolean



24
25
26
# File 'lib/minato/trace.rb', line 24

def self.enabled?
  ENV["MINATO_TRACE_DISABLED"] != "true"
end

.init(app) ⇒ Object



15
16
17
18
19
20
21
22
# File 'lib/minato/trace.rb', line 15

def self.init(app)
  if Minato::Trace.enabled?
    Minato::Trace.configure_loggging
    Minato::Trace.configure_trace
  end

  app
end

.skip_trace?(trace) ⇒ Boolean



41
42
43
# File 'lib/minato/trace.rb', line 41

def self.skip_trace?(trace)
  BLACKLIST_PATHS.any? { |path| trace.name.start_with?(path) }
end