module Mmtrix::Agent::Instrumentation::GrapeInstrumentation

Constants

API_ENDPOINT
EMPTY_STRING
FORMAT_REGEX
MIN_VERSION
VERSION_REGEX

Public Instance Methods

capture_params(endpoint) click to toggle source
# File lib/mmtrix/agent/instrumentation/grape.rb, line 43
def capture_params(endpoint)
  txn = Transaction.tl_current
  env = endpoint.request.env
  params = ParameterFiltering::apply_filters(env, endpoint.params)
  params.delete("route_info")
  txn.filtered_params = params
  txn.merge_request_parameters(params)
end
handle_transaction(endpoint, class_name) click to toggle source
# File lib/mmtrix/agent/instrumentation/grape.rb, line 19
def handle_transaction(endpoint, class_name)
  return unless endpoint && route = endpoint.route
  name_transaction(route, class_name)
  capture_params(endpoint)
end
name_for_transaction(route, class_name) click to toggle source
# File lib/mmtrix/agent/instrumentation/grape.rb, line 31
def name_for_transaction(route, class_name)
  action_name = route.route_path.sub(FORMAT_REGEX, EMPTY_STRING)
  method_name = route.route_method

  if route.route_version
    action_name = action_name.sub(VERSION_REGEX, EMPTY_STRING)
    "#{class_name}-#{route.route_version}#{action_name} (#{method_name})"
  else
    "#{class_name}#{action_name} (#{method_name})"
  end
end
name_transaction(route, class_name) click to toggle source
# File lib/mmtrix/agent/instrumentation/grape.rb, line 25
def name_transaction(route, class_name)
  txn_name = name_for_transaction(route, class_name)
  node_name = "Middleware/Grape/#{class_name}/call"
  Transaction.set_default_transaction_name(txn_name, :grape, node_name)
end