Module: Metrics

Defined in:
lib/metrics/metric.rb,
lib/metrics/tags.rb,
lib/metrics/backend.rb,
lib/metrics/version.rb,
lib/metrics/provider.rb,
lib/metrics/backend/test.rb,
lib/metrics/backend/capture.rb,
lib/metrics/backend/console.rb

Overview

Released under the MIT License. Copyright, 2021-2023, by Samuel Williams.

Defined Under Namespace

Modules: Backend, Provider, Tags Classes: Metric

Constant Summary collapse

VERSION =
"0.8.0"

Class Method Summary collapse

Class Method Details

.enabled?Boolean

Returns:

  • (Boolean)


10
11
12
# File 'lib/metrics/provider.rb', line 10

def self.enabled?
	self.const_defined?(:Backend)
end

.Provider(klass, &block) ⇒ Object

Extend the specified class in order to emit traces.



29
30
31
32
33
34
35
36
37
# File 'lib/metrics/provider.rb', line 29

def self.Provider(klass, &block)
	klass.extend(Singleton)
	provider = klass.metrics_provider
	klass.prepend(provider)
	
	provider.module_exec(&block) if block_given?
	
	return provider
end

.require_backend(env = ENV) ⇒ Object

Require a specific trace backend.



8
9
10
11
12
13
14
# File 'lib/metrics/backend.rb', line 8

def self.require_backend(env = ENV)
	if path = env['METRICS_BACKEND']
		require(path)
		
		Metrics.extend(Backend::Interface)
	end
end