class ScoutApm::Instruments::Elasticsearch
Attributes
context[R]
Public Class Methods
new(context)
click to toggle source
# File lib/scout_apm/instruments/elasticsearch.rb, line 8 def initialize(context) @context = context @installed = false end
Public Instance Methods
_sanitize_name(name)
click to toggle source
# File lib/scout_apm/instruments/elasticsearch.rb, line 44 def _sanitize_name(name) name = name.split("/").last.gsub(/^_/, '') allowed_names = ["bench", "bulk", "count", "exists", "explain", "field_stats", "health", "mget", "mlt", "mpercolate", "msearch", "mtermvectors", "percolate", "query", "scroll", "search_shards", "source", "suggest", "template", "termvectors", "update", "search", ] if allowed_names.include?(name) name else "Unknown" end rescue "Unknown" end
install()
click to toggle source
# File lib/scout_apm/instruments/elasticsearch.rb, line 21 def install if defined?(::Elasticsearch) && defined?(::Elasticsearch::Transport) && defined?(::Elasticsearch::Transport::Client) @installed = true logger.info "Instrumenting Elasticsearch" ::Elasticsearch::Transport::Client.class_eval do include ScoutApm::Tracer def perform_request_with_scout_instruments(*args, &block) name = _sanitize_name(args[1]) self.class.instrument("Elasticsearch", name, :ignore_children => true) do perform_request_without_scout_instruments(*args, &block) end end alias_method :perform_request_without_scout_instruments, :perform_request alias_method :perform_request, :perform_request_with_scout_instruments def _sanitize_name(name) name = name.split("/").last.gsub(/^_/, '') allowed_names = ["bench", "bulk", "count", "exists", "explain", "field_stats", "health", "mget", "mlt", "mpercolate", "msearch", "mtermvectors", "percolate", "query", "scroll", "search_shards", "source", "suggest", "template", "termvectors", "update", "search", ] if allowed_names.include?(name) name else "Unknown" end rescue "Unknown" end end end end
installed?()
click to toggle source
# File lib/scout_apm/instruments/elasticsearch.rb, line 17 def installed? @installed end
logger()
click to toggle source
# File lib/scout_apm/instruments/elasticsearch.rb, line 13 def logger context.logger end
perform_request_with_scout_instruments(*args, &block)
click to toggle source
# File lib/scout_apm/instruments/elasticsearch.rb, line 33 def perform_request_with_scout_instruments(*args, &block) name = _sanitize_name(args[1]) self.class.instrument("Elasticsearch", name, :ignore_children => true) do perform_request_without_scout_instruments(*args, &block) end end