Sha256: d832874bc6c7f40eb8a468ac9dc56c7c4077c3e696cd7066fd726c912989f586

Contents?: true

Size: 1.22 KB

Versions: 13

Compression:

Stored size: 1.22 KB

Contents

# frozen_string_literal: true

require "prometheus/client"

require_relative "metric_method_name"

Prometheus::Client::Metric.include(ServiceSkeleton::MetricMethodName)

module ServiceSkeleton
  module MetricsMethods
    def registered_metrics
      @registered_metrics || []
    end

    def metric(metric)
      @registered_metrics ||= []

      @registered_metrics << metric
    end

    def counter(name, docstring:, labels: [], preset_labels: {})
      metric(Prometheus::Client::Counter.new(name, docstring: docstring, labels: labels, preset_labels: preset_labels))
    end

    def gauge(name, docstring:, labels: [], preset_labels: {})
      metric(Prometheus::Client::Gauge.new(name, docstring: docstring, labels: labels, preset_labels: preset_labels))
    end

    def summary(name, docstring:, labels: [], preset_labels: {})
      metric(Prometheus::Client::Summary.new(name, docstring: docstring, labels: labels, preset_labels: preset_labels))
    end

    def histogram(name, docstring:, labels: [], preset_labels: {}, buckets: Prometheus::Client::Histogram::DEFAULT_BUCKETS)
      metric(Prometheus::Client::Histogram.new(name, docstring: docstring, labels: labels, preset_labels: preset_labels, buckets: buckets))
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
service_skeleton-2.2.0 lib/service_skeleton/metrics_methods.rb
service_skeleton-2.1.0 lib/service_skeleton/metrics_methods.rb
service_skeleton-1.0.5 lib/service_skeleton/metrics_methods.rb
service_skeleton-2.0.2 lib/service_skeleton/metrics_methods.rb
service_skeleton-2.0.1 lib/service_skeleton/metrics_methods.rb
service_skeleton-2.0.0 lib/service_skeleton/metrics_methods.rb
service_skeleton-1.0.4 lib/service_skeleton/metrics_methods.rb
service_skeleton-0.0.0.1.ENOTAG lib/service_skeleton/metrics_methods.rb
service_skeleton-1.0.3 lib/service_skeleton/metrics_methods.rb
service_skeleton-1.0.2 lib/service_skeleton/metrics_methods.rb
service_skeleton-1.0.1 lib/service_skeleton/metrics_methods.rb
service_skeleton-0.0.0.49.g47046b9 lib/service_skeleton/metrics_methods.rb
service_skeleton-0.0.0.48.g4a40599 lib/service_skeleton/metrics_methods.rb