# 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/configuration' require 'sqreen/kit/signals/point' require 'sqreen/kit/signals/dto_helper' # reference: https://github.com/sqreen/SignalsSchemas/blob/master/schemas/payload/tracing/server-2020-04-21/schema.cue module Sqreen module Ecosystem module Tracing module Signals end end end end class Sqreen::Ecosystem::Tracing::Signals::TracingServer < Sqreen::Kit::Signals::Point readonly_attrs :payload_schema, :source, :signal_name def initialize(values = {}) self.payload_schema = Payload::SCHEMA_VERSION self.source = Sqreen::Kit::Configuration.default_source self.signal_name = 'tracing.server' self.time = values[:time] || Time.now super end def payload=(payload) unless payload.is_a?(Payload) raise ArgumentError, "Payload should be a #{Payload}" end super end class Payload include Sqreen::Kit::Signals::DtoHelper add_mandatory_attrs :transport, :client_ip SCHEMA_VERSION = 'tracing/server-2020-04-21'.freeze # @return [Symbol] attr_accessor :transport # @return [String] attr_accessor :client_ip # @return [Array<String>] attr_accessor :previous_hops # @return [String] attr_accessor :tracing_identifier end end