01 May 2023 08:09 PM
I have managed to modify a few queries provided by Dynatrace gurus, but am struggling with advanced mode.
Two requests:
First, does anyone have an editor plugin that supports syntax highlighting and formatting of advanced mode queries? A plugin for VS Code would give you my ultimate respect and gratitude forever. 😉
Second, any suggestions on how to make the following advanced mode query return results across multiple applications? My use case is to see an entire sales funnel that spans multiple apps/subdomains. "APPLICATION_NAME" is a sanitized application name since this is a public post.
builtin:apps.web.action.largestContentfulPaint.load.browser:filter(and(or(in("dt.entity.browser",entitySelector("type(browser),entityName.equals(~"Microsoft Edge mobile~")")),in("dt.entity.browser",entitySelector("type(browser),entityName.equals(~"Chrome Mobile~")")),in("dt.entity.browser",entitySelector("type(browser),entityName.equals(~"Microsoft Edge~")")),in("dt.entity.browser",entitySelector("type(browser),entityName.equals(~"Chrome~")"))),in("dt.entity.application_method",entitySelector("type(application_method),fromRelationship.isApplicationMethodOf(type(APPLICATION),entityName.equals(~"APPLICATION_NAME~"))")))):splitBy("dt.entity.application_method"):percentile(75):auto:sort(value(percentile(75),descending)):limit(10)
Solved! Go to Solution.
02 May 2023 03:04 PM
Hi @rmouser,
I don't know if you are looking for related info on the frontend or if the above is just an example, for such cases, I'm using USQL, and if you are looking for alternative way you can use the below sample:
SELECT DISTINCT(useraction.application), browserMajorVersion, useraction.largestContentfulPaint, useraction.name FROM usersession where useraction.largestContentfulPaint IS NOT NULL and applicationType = "WEB_APPLICATION" ORDER BY useraction.largestContentfulPaint DESC
04 May 2023 07:57 PM
Thanks @Mohamed_Hamdy I was trying to put this on a dashboard, and find the session visuals a bit lacking. Yes, this is for front end web vitals.
I saw someone else in the forum (wish I could find again to credit) that indented the code nicely, so I did the same by hand in VScode. Then I looked at the documentation and found entityName.in, which allows me to provide a list of applications by name.
Here is what I ended up using (pretty indentation lost in the copy paste):
builtin:apps.web.action.largestContentfulPaint.load.browser
:filter(and(
or(
in("dt.entity.browser",entitySelector("type(browser),entityName.equals(~"Microsoft Edge mobile~")")),
in("dt.entity.browser",entitySelector("type(browser),entityName.equals(~"Chrome Mobile~")")),
in("dt.entity.browser",entitySelector("type(browser),entityName.equals(~"Microsoft Edge~")")),
in("dt.entity.browser",entitySelector("type(browser),entityName.equals(~"Chrome~")"))),
in("dt.entity.application_method",entitySelector("type(application_method),fromRelationship.isApplicationMethodOf(type(APPLICATION),entityName.in(~"PROD - aem-www.reliant.com~",~"PROD - shop.reliant.com~",~"PROD - signup.reliant.com~"))"))
)
)
:splitBy("dt.entity.application_method")
:percentile(75)
:auto
:sort(value(percentile(75),descending))
:limit(40)
This gives me a nice list of pages sorted by worst LCP to best. I can color code the really bad ones read, lessor bad ones yellow, and good ones green. Kind of motivating to those improving performance, IMHO. 😉
04 May 2023 08:24 PM
Amazing @rmouser , Thanks for sharing, if this gives you the needed result using Entity selector, then proceed with it, you can also add the other one as an indicator for each user action and add it in the table view below the one used with Entity selector.
04 May 2023 08:50 PM
Here's the graphic displayed on the dashboard, page names hidden. I did not do this on my own, standing on the shoulders of giants. All I figured out was how to do it across multiple applications (subdomains in this case).