Sha256: c8b4b1b6418f01d621e2b162aff4b543569fd6aa93b2227498caf77f51f24dc2
Contents?: true
Size: 1.23 KB
Versions: 28
Compression:
Stored size: 1.23 KB
Contents
# This file is distributed under New Relic's license terms. # See https://github.com/newrelic/newrelic-ruby-agent/blob/main/LICENSE for complete details. # frozen_string_literal: true require 'new_relic/agent/instrumentation/notifications_subscriber' module NewRelic module Agent module Instrumentation class ActiveSupportSubscriber < NotificationsSubscriber def add_segment_params(segment, payload) segment.params[:key] = payload[:key] segment.params[:store] = payload[:store] segment.params[:hit] = payload[:hit] if payload.key?(:hit) segment.params[:super_operation] = payload[:super_operation] if payload.key?(:super_operation) segment end def metric_name(name, payload) store = payload[:store] method = method_from_name(name) "Ruby/ActiveSupport#{"/#{store}" if store}/#{method}" end PATTERN = /\Acache_([^\.]*)\.active_support\z/ METHOD_NAME_MAPPING = Hash.new do |h, k| if PATTERN =~ k h[k] = $1 else h[k] = NewRelic::UNKNOWN end end def method_from_name(name) METHOD_NAME_MAPPING[name] end end end end end
Version data entries
28 entries across 28 versions & 1 rubygems