NRQL Join event types, add multiple columns

Continuing the discussion from When can we join event types?:

hey Stefan,

to track transaction errors by page for last month, we are using something similar that may work for you:

SELECT pageUrl, appName, deviceType, userAgentName, errorMessage,errorType FROM PageView, Transaction, TransactionError WHERE errorMessage IS NOT NULL SINCE 1 month ago


Thanks for that @scbw, I was not aware of the TransactionError event type.

Would you mind adding your NRQL to the Useful Insights NRQL queries library?

1 Like

TransactionError is one of the new byproducts of the new Errors Analytics page added in APM.

It means you can track your errors through Insights too. With more details. Using the event types names all within a FROM request won’t be an actual join, as @hshapiro mentioned it’s something they haven’t dug into properly yet.

In TransactionError I think http.response.referrer might give you a URL that references where an error came from and might save you a bit of joining. Another alternative is that you can use the New Relic API to add custom_parameters to transactions, therefore if you can obtain what URL is loaded in PHP, you can send it to Insights tagged to the relevant transaction, meaning you can just load the Transaction event type data with ErrorMessage and whatever field you name the URL you send.

I hope this helps give you some options.


I’m struggling with this as well and I’m frustrated. There are multiple posts specifying this has been logged as a feature request and we are still waiting even after requesting it directly to @hshapiro .

I would like a simple query to look at the duration attributes on FAILED synthetics so I can analyse whether we have a network or resource performance issue. Something along the lines of:

SELECT URL, duration, durationBlocked, durationConnect, durationDNS, durationReceive, durationSSL, durationWait from SyntheticRequest, SyntheticCheck WHERE monitorName = '[Synthetic that is failing]' and result='FAILED' since 1 day ago

Instead I’m having to run 2 separate queries to get the id from the failed run and then put this into another query.