Description
parse-duration is broken. It likely only works for milliseconds.
Metrics times appear to be reported in milliseconds when greater than one millisecond, and in microseconds when less that one millisecond. However, there are no units attached to them, therefore it is not possible to tell what they are without other information.
These are from Query 3 in 'query-prepared.js' - the difference being adhoc:false vs. adhoc:true.
First example - these are apparently microseconds - judging by the times in 'profile' and by 'micros' which is computed in the script.
adhoc:false
{"statement":"SELECT airportname, city, country FROM `travel-sample` WHERE type=$1 AND city=$2","profile":"phases","args":["airport","Seattle"]}micros: 1,434.508
metrics: {
elapsedTime: 726.795,
executionTime: 690.298,
sortCount: undefined,
{ fetch: 5, filter: 5, indexScan: 5 }
{ authorize: '16.695µs', fetch: '159.144µs', filter: '49.463µs', indexScan: '555.231µs', instantiate: '14.523µs', run: '669.133µs' } { authorize: 1, fetch: 1, filter: 1, indexScan: 2 }
====================================================
This one is in milli-seconds - judging by the times in 'profile' and 'micros' computed by the script.
adhoc:true
{"statement":"SELECT airportname, city, country FROM `travel-sample` WHERE type=$1 AND city=$2","profile":"phases","args":["airport","Seattle"]}micros: 7,369.301
metrics: {
elapsedTime: 6.664426,
executionTime: 6.624852,
{ fetch: 5, filter: 5, indexScan: 5 }
{ authorize: '16.554µs', fetch: '219.688µs', filter: '55.191µs', indexScan: '583.968µs', instantiate: '13.279µs', parse: '454.649µs', plan: '5.38055ms', run: '763.669µs' } { authorize: 1, fetch: 1, filter: 1, indexScan: 2 }