38 lines
769 B
Ruby
38 lines
769 B
Ruby
# frozen_string_literal: true
|
|
|
|
# Released under the MIT License.
|
|
# Copyright, 2021-2024, by Samuel Williams.
|
|
|
|
require_relative "../metric"
|
|
|
|
require "console"
|
|
|
|
module Metrics
|
|
module Backend
|
|
module Console
|
|
class Metric < Metrics::Metric
|
|
def emit(value, tags: nil, sample_rate: 1.0)
|
|
::Console.logger.info(self, @name, value, tags)
|
|
end
|
|
end
|
|
|
|
module Interface
|
|
def metric(name, type, description: nil, unit: nil, &block)
|
|
return Metric.new(name, type, description, unit)
|
|
end
|
|
|
|
# def metric_call_counter(name, description: nil, tags: nil)
|
|
# metric = self.metric(...)
|
|
#
|
|
# self.define_method(name) do
|
|
# metric.emit(1)
|
|
# super
|
|
# end
|
|
# end
|
|
end
|
|
end
|
|
|
|
Interface = Console::Interface
|
|
end
|
|
end
|