We use Elastic APM through the Ruby agent. I'm opening this issue on this project because I think this may apply to all agents.
We're not running straight on a VM, but in a container within a Google Kubernetes Engine (k8s version 1.25.10-gke.2700 / node-pool version 1.24.12-gke.1000).
The response of http://metadata.google.internal/computeMetadata/v1/?recursive=true looks like this (sanitized):
{“instance”:{“attributes”:{“cluster-location”:“”,“cluster-name”:“”,“cluster-uid”:“”},“hostname”:“”,“id”:0,“serviceAccounts”:{“default”:{“aliases”:[“default”],“email”:“”,“scopes”:[“https://www.googleapis.com/auth/cloud-platform”,“https://www.googleapis.com/auth/userinfo.email”]},“our service account”:{“aliases”:[“default”],“email”:“”,“scopes”:[“https://www.googleapis.com/auth/cloud-platform”,“https://www.googleapis.com/auth/userinfo.email”]}},“zone”:“projects/.../zones/...”},“project”:{“numericProjectId”:0,“projectId”:“”}}
Before there was no parsing of machineType so it was simply defined as null.
I think all agents should check for machineType presence before trying to parse it? Or move this change into a major version, because this is a breaking change IMO?
We plan to monkey patch the agent in the meantime.
Hello,
We use Elastic APM through the Ruby agent. I'm opening this issue on this project because I think this may apply to all agents. We're not running straight on a VM, but in a container within a Google Kubernetes Engine (k8s version 1.25.10-gke.2700 / node-pool version 1.24.12-gke.1000).
To add some context: we had to update to the 4.7.1 version of the ruby agent because we need a fix for Rails 7.1 https://github.com/elastic/apm-agent-ruby/releases/tag/v4.7.1
This release also includes a fix for parsing GCP metadata : https://github.com/elastic/apm-agent-ruby/pull/1415 -> https://github.com/elastic/apm/issues/826
The response of
http://metadata.google.internal/computeMetadata/v1/?recursive=true
looks like this (sanitized):As you see, machineType is not even returned, so when https://github.com/elastic/apm-agent-ruby/commit/c62fbc5be97ef638509b7a6d662cbfa7c62cbc4a#diff-9c3da70caafefb51aa3733d716da05e65198a507bf6d76aac25baa115c93195fR105 is called the parsing with
split
makes the whole thing crash.Before there was no parsing of
machineType
so it was simply defined asnull
.I think all agents should check for
machineType
presence before trying to parse it? Or move this change into a major version, because this is a breaking change IMO?We plan to monkey patch the agent in the meantime.
Thanks!