Sha256: 81497263e82f53a9f289ee572d0db70301fbdfdbf4d2df8fd89b8c0b380ce0d1

Contents?: true

Size: 1.1 KB

Versions: 14

Compression:

Stored size: 1.1 KB

Contents

# typed: strict

module ModularizationStatistics
  class GaugeMetric < T::Struct
    extend T::Sig

    const :name, String
    const :count, Integer
    const :tags, T::Array[Tag]

    sig { params(metric_name: String, count: Integer, tags: T::Array[Tag]).returns(GaugeMetric) }
    def self.for(metric_name, count, tags)
      name = "modularization.#{metric_name}"
      # https://docs.datadoghq.com/metrics/custom_metrics/#naming-custom-metrics
      # Metric names must not exceed 200 characters. Fewer than 100 is preferred from a UI perspective
      if name.length > 200
        raise StandardError.new("Metrics names must not exceed 200 characters: #{name}") # rubocop:disable Style/RaiseArgs
      end

      new(
        name: name,
        count: count,
        tags: tags
      )
    end

    sig { returns(String) }
    def to_s
      "#{name} with count #{count}, with tags #{tags.map(&:to_s).join(', ')}"
    end

    sig { params(other: GaugeMetric).returns(T::Boolean) }
    def ==(other)
      other.name == self.name &&
        other.count == self.count &&
        other.tags == self.tags
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
modularization_statistics-2.0.2 lib/modularization_statistics/gauge_metric.rb
modularization_statistics-2.0.1 lib/modularization_statistics/gauge_metric.rb
modularization_statistics-2.0.0 lib/modularization_statistics/gauge_metric.rb
modularization_statistics-1.43.0 lib/modularization_statistics/gauge_metric.rb
modularization_statistics-1.42.0 lib/modularization_statistics/gauge_metric.rb
modularization_statistics-1.41.0 lib/modularization_statistics/gauge_metric.rb
modularization_statistics-1.40.0 lib/modularization_statistics/gauge_metric.rb
modularization_statistics-1.39.0 lib/modularization_statistics/gauge_metric.rb
modularization_statistics-1.38.0 lib/modularization_statistics/gauge_metric.rb
modularization_statistics-1.37.0 lib/modularization_statistics/gauge_metric.rb
modularization_statistics-1.36.0 lib/modularization_statistics/gauge_metric.rb
modularization_statistics-1.35.0 lib/modularization_statistics/gauge_metric.rb
modularization_statistics-1.34.0 lib/modularization_statistics/gauge_metric.rb
modularization_statistics-1.33.0 lib/modularization_statistics/gauge_metric.rb