Sha256: e8342fac57b27235de51b9cec3c198f19a5ece014baa7165c59af201c365b485

Contents?: true

Size: 1.02 KB

Versions: 8

Compression:

Stored size: 1.02 KB

Contents

# Copyright (c) 2023 Contrast Security, Inc. See https://www.contrastsecurity.com/enduser-terms-0317a for more details.
# frozen_string_literal: true

require 'contrast/utils/metrics_hash'
require 'contrast/agent/telemetry/event'
require 'contrast/utils/duck_utils'
require 'contrast/utils/os'

module Contrast
  module Agent
    module Telemetry
      # This class will hold the basic information for a Telemetry Event
      class MetricEvent < Contrast::Agent::Telemetry::Event
        include Contrast::Utils
        include Contrast::Utils::OS

        attr_reader :fields

        def initialize
          super
          @fields = MetricsHash.new(Numeric)
          @fields['_filler'] = 0
        end

        def sys_info
          @sys_info ||= get_system_information if @sys_info.nil?
          @sys_info
        end

        def empty?
          Contrast::Utils::DuckUtils.empty_duck?(@fields)
        end

        def to_controlled_hash **_args
          super.merge!({ fields: @fields })
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
contrast-agent-7.6.1 lib/contrast/agent/telemetry/metric_event.rb
contrast-agent-7.6.0 lib/contrast/agent/telemetry/metric_event.rb
contrast-agent-7.5.0 lib/contrast/agent/telemetry/metric_event.rb
contrast-agent-7.4.1 lib/contrast/agent/telemetry/metric_event.rb
contrast-agent-7.4.0 lib/contrast/agent/telemetry/metric_event.rb
contrast-agent-7.3.2 lib/contrast/agent/telemetry/metric_event.rb
contrast-agent-7.3.1 lib/contrast/agent/telemetry/metric_event.rb
contrast-agent-7.3.0 lib/contrast/agent/telemetry/metric_event.rb