Sha256: 561386ae2407d9329fe5cfe7eef19c09b3712abd16dce0ede79ae2889283e69f

Contents?: true

Size: 1.63 KB

Versions: 29

Compression:

Stored size: 1.63 KB

Contents

# typed: ignore

# Copyright (c) 2015 Sqreen. All Rights Reserved.
# Please refer to our terms for more information: https://www.sqreen.com/terms.html

require 'sqreen/kit/signals/metric'
require 'sqreen/kit/signals/dto_helper'

# reference: https://github.com/sqreen/SignalsSchemas/blob/master/schemas/payload/binning_metric/2020-01-01T00_00_00_000Z/schema.cue

module Sqreen
  module Kit
    module Signals
      module Specialized
      end
    end
  end
end

class Sqreen::Kit::Signals::Specialized::AggregatedMetric < Sqreen::Kit::Signals::Metric
  add_mandatory_attrs :source, :payload

  validate_str_attr :signal_name, /\Asq\.agent\.metric\..+\z/

  def initialize(args)
    self.payload_schema = Payload::SCHEMA_VERSION
    super
  end

  class Payload
    include Sqreen::Kit::Signals::DtoHelper

    SCHEMA_VERSION = 'metric/2020-01-01T00:00:00.000Z'.freeze

    add_mandatory_attrs :capture_interval_s,
                        :date_started,
                        :date_ended,
                        :values,
                        :kind

    # mandatory
    # @return [Integer]
    attr_accessor :capture_interval_s

    # mandatory
    # @param [Time]
    # @return [String]
    attr_accessor_time :date_started

    # mandatory
    # @param [Time]
    # @return [String]
    attr_accessor_time :date_ended

    # mandatory
    # @return [Hash{String=>Object}]
    attr_writer :values
    def values
      return nil if @values.nil?
      @values.map do |k, v|
        {
          key: k.is_a?(Hash) || k.is_a?(Array) ? k : k.to_s,
          value: v,
        }
      end
    end

    # mandatory
    # @return [String]
    attr_accessor :kind
  end
end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
sqreen-1.25.1 lib/sqreen/kit/signals/specialized/aggregated_metric.rb
sqreen-1.25.0 lib/sqreen/kit/signals/specialized/aggregated_metric.rb
sqreen-1.24.3 lib/sqreen/kit/signals/specialized/aggregated_metric.rb
sqreen-1.24.2 lib/sqreen/kit/signals/specialized/aggregated_metric.rb
sqreen-1.24.1 lib/sqreen/kit/signals/specialized/aggregated_metric.rb
sqreen-1.24.0 lib/sqreen/kit/signals/specialized/aggregated_metric.rb
sqreen-1.23.2 lib/sqreen/kit/signals/specialized/aggregated_metric.rb
sqreen-1.23.1 lib/sqreen/kit/signals/specialized/aggregated_metric.rb
sqreen-1.23.0 lib/sqreen/kit/signals/specialized/aggregated_metric.rb
sqreen-1.22.1 lib/sqreen/kit/signals/specialized/aggregated_metric.rb
sqreen-1.22.0-java lib/sqreen/kit/signals/specialized/aggregated_metric.rb
sqreen-1.22.0 lib/sqreen/kit/signals/specialized/aggregated_metric.rb
sqreen-1.21.1-java lib/sqreen/kit/signals/specialized/aggregated_metric.rb
sqreen-1.21.1 lib/sqreen/kit/signals/specialized/aggregated_metric.rb
sqreen-1.21.0-java lib/sqreen/kit/signals/specialized/aggregated_metric.rb
sqreen-1.21.0 lib/sqreen/kit/signals/specialized/aggregated_metric.rb
sqreen-1.20.4-java lib/sqreen/kit/signals/specialized/aggregated_metric.rb
sqreen-1.20.4 lib/sqreen/kit/signals/specialized/aggregated_metric.rb
sqreen-1.21.0.beta3-java lib/sqreen/kit/signals/specialized/aggregated_metric.rb
sqreen-1.21.0.beta3 lib/sqreen/kit/signals/specialized/aggregated_metric.rb