class ElasticAPM::Metadata::CloudInfo

def fetch_gcp

def fetch_gcp
  resp = @client.headers("Metadata-Flavor" => "Google").get(GCP_URI)
  return unless resp.status == 200
  return unless (metadata = JSON.parse(resp.body.to_s))
  zone = metadata["instance"]["zone"]&.split("/")&.at(-1)
  self.provider = "gcp"
  self.instance_id = metadata["instance"]["id"].to_s
  self.instance_name = metadata["instance"]["name"]
  self.project_id = metadata["project"]["projectId"]
  self.availability_zone = zone
  self.region = zone.split("-")[0..-2].join("-")
  self.machine_type = metadata["instance"]["machineType"].split("/")[-1]
rescue HTTP::TimeoutError, HTTP::ConnectionError
  nil
end