Sha256: 64b03208a993e3be2123005f4485f4adcaddb0a41624ec2fa5b1eaa4cbc26bac
Contents?: true
Size: 1.46 KB
Versions: 3
Compression:
Stored size: 1.46 KB
Contents
require 'usdt' module Cache module Object class DTraceProvider attr_reader :provider, :probes def initialize @provider = USDT::Provider.create(:ruby, :cache_object) @probes = { # args: Class name, id, ttl fetch: provider.probe(:adapter, :fetch, :string, :string, :string), # args: Class name, id, ttl fetch_miss: provider.probe(:adapter, :fetch_miss, :string, :string, :string), # args: Class name, attributes.inspect, ttl fetch_mapping: provider.probe(:adapter, :fetch_mapping, :string, :string, :string), # args: Class name, attributes.inspect, ttl fetch_mapping_miss: provider.probe(:adapter, :fetch_mapping_miss, :string, :string, :string), # args: args.inspect, hits, misses read_multi: provider.probe(:adapter, :read_multi, :string, :integer, :integer), # args: class_name, id, ttl write: provider.probe(:adapter, :write, :string, :string, :string), # args: class_name, id delete: provider.probe(:adapter, :delete, :string, :string) } end def self.provider @provider ||= new.tap do |p| p.provider.enable end end def self.fire!(probe_name, *args) raise "Unknown probe: #{probe_name}" unless self.provider.probes[probe_name] probe = self.provider.probes[probe_name] probe.fire(*args) if probe.enabled? end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
cache-object-0.2.0 | lib/cache/object/dtrace_provider.rb |
cache-object-0.1.0 | lib/cache/object/dtrace_provider.rb |
cache-object-0.0.7 | lib/cache/object/dtrace_provider.rb |