class Mnemosyne::Probes::Grape::EndpointRun::Probe

Public Instance Methods

call(trace, _name, start, finish, _id, payload) click to toggle source
# File lib/mnemosyne/probes/grape/endpoint_run.rb, line 10
def call(trace, _name, start, finish, _id, payload)
  start  = ::Mnemosyne::Clock.to_tick(start)
  finish = ::Mnemosyne::Clock.to_tick(finish)

  endpoint = payload[:endpoint]
  return unless endpoint

  meta = {
    endpoint: extract_name(endpoint),
    format: extract_format(payload[:env])
  }

  span = ::Mnemosyne::Span.new 'app.controller.request.grape',
    start: start, finish: finish, meta: meta

  trace << span
end

Private Instance Methods

extract_format(env) click to toggle source
# File lib/mnemosyne/probes/grape/endpoint_run.rb, line 34
def extract_format(env)
  env['api.format']
end
extract_name(endpoint) click to toggle source
# File lib/mnemosyne/probes/grape/endpoint_run.rb, line 30
def extract_name(endpoint)
  endpoint.options[:for].to_s
end