Skip to content

Commit

Permalink
Adding instrumentation core functionality
Browse files Browse the repository at this point in the history
  • Loading branch information
Sohaib Bhatti committed May 2, 2013
1 parent ee6a8b1 commit f4462c2
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 4 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Newrelic::Couchbase

TODO: Write a gem description
CouchBase instrumentation for NewRelic

## Installation

Expand Down
3 changes: 3 additions & 0 deletions lib/newrelic-couchbase.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
require "newrelic-couchbase/version"
require "newrelic-couchbase/instrumentation"

=begin
module Newrelic
module Couchbase
# Your code goes here...
end
end
=end
33 changes: 33 additions & 0 deletions lib/newrelic-couchbase/instrumentation.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
require 'new_relic/agent/method_tracer'

DependencyDetection.defer do
@name = :couchbase

depends_on do
defined?(::Couchbase) &&
!::NewRelic::Control.instance['disable_couchbase'] &&
!ENV['DISABLE_NEW_RELIC_couchbase']
end

executes do
NewRelic::Agent.logger.debug 'Installing CouchBase Instrumentation'
end

executes do
::Couchbase.module_eval do
class << self
include NewRelic::Agent::MethodTracer
add_method_tracer :connect, 'Couchbase/Bucket/connect'
add_method_tracer :new, 'Couchbase/Bucket/connect'
add_method_tracer :bucket, 'Couchbase/Bucket/bucket'
end
end

::Couchbase::Bucket.class_eval do
include NewRelic::Agent::MethodTracer
add_method_tracer :set, 'Couchbase/Bucket/set'
add_method_tracer :get, 'Couchbase/Bucket/get'
add_method_tracer :incr, 'Couchbase/Bucket/incr'
end
end
end
11 changes: 8 additions & 3 deletions newrelic-couchbase.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,19 @@ require 'newrelic-couchbase/version'
Gem::Specification.new do |gem|
gem.name = "newrelic-couchbase"
gem.version = Newrelic::Couchbase::VERSION
gem.authors = ["Sohaib Bhatti"]
gem.authors = ["kurobase"]
gem.email = ["[email protected]"]
gem.description = %q{TODO: Write a gem description}
gem.summary = %q{TODO: Write a gem summary}
gem.description = %q{Couchbase Instrumentation for NewRelic RPM}
gem.summary = %q{Couchbase Instrumentation for NewRelic RPM}
gem.homepage = ""

gem.files = `git ls-files`.split($/)
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
gem.require_paths = ["lib"]

gem.add_dependency 'couchbase'
gem.add_dependency 'newrelic_rpm'

gem.add_development_dependency 'pry'
end

0 comments on commit f4462c2

Please sign in to comment.