I'm using the newrelic synthetics scripted browser to check some user transaction flows for reliability and performance.
However the tracked duration is only about 8-10s which matches initial page load time, but not the async lazy loading of a large dataset (which is approx. 40s).
- How can I make new relic synthetics scripted browser tests to show actual test execution duration and not only the duration of inital request?
- How can I track actual synthetics scripted browser test execution time and plot on a diagram with new relic?
The following I already tried and seems not to fix the issue:
Using a custom insight
See new relic docs for custom insights.
In script use:
var timeStart = Date.now();
var timeEnd = Date.now();
$util.insights.set('testDuration', (timeEnd - timeStart) );
with NRQL:
FROM SyntheticCheck SELECT numeric(custom.testDurration) WHERE numeric(custom.testDurration) > 0 SINCE 1 day ago
However in newrelic browser this data is shown as strings and thus cannot be plot on a chart as measurement.
- What do I need to do to be able to make this a numeric measurement to be drawable as chart?
Timetracking with $har
New relic docs recommend using $har
const testTimer = $har.addResource('Test Timer');
testTimer.startTimer();
await sleep(100);
testTimer.endTimer();
However $har is resulting in error: Check failed with reference error. $har is not defined
;
- How do I use $har correctly?
** Checking KeySet, the custom properties show us stings**
As proposed on new relic forum I checked the field type and it appears to be registered as string
NRQL FROM SyntheticCheck SELECT keyset()
returns
[
{
"results": [
{
"stringKeys": [
"custom.duration"
"custom.testDuration",
Any other ideas how to achieve this?
Thx in advance, I really appreciate your expertise!