For a general overview of how the performance counter system works, read through the description found in the SDK here:
Of specific interest is the explanation of how to interpret the various counter types:
- raw: single counter value is used
- delta: change in counter value between two samples is used
- rate: delta divided by the time in seconds between samples is used
- average: delta divided by the delta of a base counter is used
- percent: 100*average is used
To understand more about a specific counter you can get details from the perf-object-counter-list-info API call:
<desc>Average latency in microseconds for all operations on the volume</desc>
Armed with this info, you should be able to interpret and present the latency values you are interested in. Make two calls to perf-object-get-instances, with a delay between them. Include both avg_latency and total_ops ( the base counter ).
From above we know 'average: delta divided by the delta of a base counter is used'. So perform the following calculation:
(avg_latency2-avg_latency1) / (total_ops2-total_ops1) => average latency in microseconds
To sanity test your application, compare your output with the output from ONTAP via the CLI:
Actual numbers: (598624907-596952932) / (149998706-149866390) => 12.636
filer1> stats show volume:vol0:avg_latency
Additionally, I'm not sure what language you are working with, but within the samples directory of the SDK there are a couple of perf related applications.