class OneApm::Agent::SyntheticsMonitor

Constants

OA_EXPECTED_PAYLOAD_LENGTH
OA_SUPPORTED_VERSION
OA_SYNTHETICS_HEADER_KEY

Public Instance Methods

is_supported_version?(incoming_payload) click to toggle source
# File lib/one_apm/agent/synthetics_monitor.rb, line 34
def is_supported_version?(incoming_payload)
  incoming_payload.first == OA_SUPPORTED_VERSION
end
is_trusted?(incoming_payload) click to toggle source
# File lib/one_apm/agent/synthetics_monitor.rb, line 38
def is_trusted?(incoming_payload)
  account_id = incoming_payload[1]
  OneApm::Manager.config[:trusted_account_ids].include?(account_id)
end
is_valid_payload?(incoming_payload) click to toggle source
# File lib/one_apm/agent/synthetics_monitor.rb, line 43
def is_valid_payload?(incoming_payload)
  incoming_payload.length == OA_EXPECTED_PAYLOAD_LENGTH
end
on_before_call(request) click to toggle source
# File lib/one_apm/agent/synthetics_monitor.rb, line 17
def on_before_call(request)
  encoded_header = request[OA_SYNTHETICS_HEADER_KEY]
  return unless encoded_header

  incoming_payload = deserialize_header(encoded_header, OA_SYNTHETICS_HEADER_KEY)

  return unless incoming_payload &&
      is_valid_payload?(incoming_payload) &&
      is_supported_version?(incoming_payload) &&
      is_trusted?(incoming_payload)

  state = OneApm::TransactionState.tl_get
  txn = state.current_transaction
  txn.raw_synthetics_header = encoded_header
  txn.synthetics_payload    = incoming_payload
end
on_finished_configuring(events) click to toggle source
# File lib/one_apm/agent/synthetics_monitor.rb, line 13
def on_finished_configuring(events)
  events.subscribe(:before_call, &method(:on_before_call))
end