Sha256: af3ddacace41fd093e17049e5e8392dd2880bf48b03983861910b9bf650ca97b
Contents?: true
Size: 1.53 KB
Versions: 1
Compression:
Stored size: 1.53 KB
Contents
# encoding: utf-8 require 'ting_yun/agent/transaction/transaction_state' require 'ting_yun/instrumentation/support/transaction_namer' require 'ting_yun/agent/transaction' require 'ting_yun/agent' module TingYun module Instrumentation module Support module ControllerInstrumentation NR_DEFAULT_OPTIONS = {}.freeze unless defined?(NR_DEFAULT_OPTIONS ) def perform_action_with_tingyun_trace (*args, &block) state = TingYun::Agent::TransactionState.tl_get trace_options = args.last.is_a?(Hash) ? args.last : NR_DEFAULT_OPTIONS category = trace_options[:category] || :controller txn_options = create_transaction_options(trace_options, category) begin TingYun::Agent::Transaction.start(state, category, txn_options) begin yield rescue => e ::TingYun::Agent.notice_error(e) raise end ensure TingYun::Agent::Transaction.stop(state) end end private def create_transaction_options(trace_options, category) txn_options = {} txn_options[:request] ||= request if respond_to?(:request) txn_options[:filtered_params] = trace_options[:params] txn_options[:transaction_name] = TingYun::Instrumentation::Support::TransactionNamer.name_for(nil, self, category, trace_options) txn_options[:apdex_start_time] = Time.now txn_options end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
tingyun_rpm-1.2.0 | lib/ting_yun/instrumentation/support/controller_instrumentation.rb |