Method: NewRelic::Agent::TransactionEventPrimitive#create

Defined in:
lib/new_relic/agent/transaction_event_primitive.rb

#create(payload) ⇒ Object

[View source]

47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/new_relic/agent/transaction_event_primitive.rb', line 47

def create(payload)
  intrinsics = {
    TIMESTAMP_KEY => float(payload[:start_timestamp]),
    NAME_KEY => string(payload[:name]),
    DURATION_KEY => float(payload[:duration]),
    TYPE_KEY => SAMPLE_TYPE,
    ERROR_KEY => payload[:error],
    PRIORITY_KEY => payload[:priority]
  }

  intrinsics[SAMPLED_KEY] = payload[:sampled] if payload.key?(:sampled)

  PayloadMetricMapping.append_mapped_metrics(payload[:metrics], intrinsics)
  append_optional_attributes(intrinsics, payload)
  DistributedTraceAttributes.copy_to_hash(payload, intrinsics)

  attributes = payload[:attributes]

  [intrinsics, custom_attributes(attributes), agent_attributes(attributes)]
end