Module: Julewire::GCP::HttpRequestFields

Defined in:
lib/julewire/gcp/http_request_fields.rb

Class Method Summary collapse

Class Method Details

.http_request(record, attributes) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/julewire/gcp/http_request_fields.rb', line 7

def http_request(record, attributes)
  values = Core::Integration::Values::Shape
  request = {}
  values.append_field(request, "requestMethod", attributes[Core::Fields::AttributeKeys::HTTP_REQUEST_METHOD])
  values.append_field(
    request,
    "requestUrl",
    attributes[Core::Fields::AttributeKeys::URL_FULL] || attributes[Core::Fields::AttributeKeys::URL_PATH]
  )
  values.append_field(request, "status", attributes[Core::Fields::AttributeKeys::HTTP_RESPONSE_STATUS_CODE])
  values.append_field(request, "userAgent", attributes[Core::Fields::AttributeKeys::USER_AGENT_ORIGINAL])
  values.append_field(request, "remoteIp", attributes[Core::Fields::AttributeKeys::CLIENT_ADDRESS])
  values.append_field(
    request,
    "responseSize",
    int64_string(attributes[Core::Fields::AttributeKeys::HTTP_RESPONSE_BODY_SIZE])
  )
  return if request.empty?

  latency_value = latency(record)
  request["latency"] = latency_value if latency_value
  request
end