We are using Elastic APM to monitor our stack, and we're onboarding new services that talks to MySQL servers. The app is typescript with typeorm.
It seems that the APM is capturing database transactions, but it is not exposing the actual query parameters; it shows a ? instead. For example, this is a query span that shows up. I redacted the actual query statement, but you get the idea.
While it gives us an idea of what is being ran, it doesn't help us in querying in some use cases where we think the parameters are giving us problems.
SELECT (redacted) WHERE (redacted) = ? AND (redacted) = ? AND (redacted) = ?
I did some browsing around on this and there seems to be some chatter around how this is obfuscated by design.... But we currently have a legacy app on PHP that we also use elastic to monitor via APM, and the query parameters are exposed... so I'd like to understand what the differences are.