<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Example: How to use perf-object-get-instances to get specific statistics in Perl in Software Development Kit (SDK) and API Discussions</title>
    <link>https://community.netapp.com/t5/Software-Development-Kit-SDK-and-API-Discussions/Example-How-to-use-perf-object-get-instances-to-get-specific-statistics-in-Perl/m-p/12904#M117</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Chris&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is very useful. Thanks for the brilliant contribution.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Moving it to more visible area in communities.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-Kunal&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 31 Oct 2012 06:50:08 GMT</pubDate>
    <dc:creator>kunalm</dc:creator>
    <dc:date>2012-10-31T06:50:08Z</dc:date>
    <item>
      <title>Example: How to use perf-object-get-instances to get specific statistics in Perl</title>
      <link>https://community.netapp.com/t5/Software-Development-Kit-SDK-and-API-Discussions/Example-How-to-use-perf-object-get-instances-to-get-specific-statistics-in-Perl/m-p/12900#M116</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I was wrestling with the NetApp Management SDK and Perl, and having lots of problems finding documentation and examples in one place. Since I did all the work, I thought I'd share what I found.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am a competent Perl programmer, and I learned object-oriented programming (C++) in school, but I was having a lot of problems with the NetApp Manageability SDK. I was able to find a list of APIs and ONTAP APIs on the web site, but didn't have a good starting point.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I wanted to get specific NFS version 3 statistics, but not have the filer return all the information and be forced to parse through all the data. I wanted only the following statistics:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;nfsv3_ops&lt;/LI&gt;&lt;LI&gt;nfsv3_read_latency&lt;/LI&gt;&lt;LI&gt;nfsv3_read_ops&lt;/LI&gt;&lt;LI&gt;nfsv3_write_latency&lt;/LI&gt;&lt;LI&gt;nfsv3_write_ops&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;From the ONTAP API documentation, I found that perf-objects-get-instances took the following arguments:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE border="1" class="jiveBorder" style="border: 1px solid rgb(0, 0, 0); width: 100%;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;Input Name&lt;BR /&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;Type&lt;BR /&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;Description&lt;BR /&gt;&lt;/TH&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px; text-align: center;"&gt;&lt;STRONG&gt;counters&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD style="padding: 2px; text-align: center;"&gt;counter[] &lt;EM&gt;optional&lt;/EM&gt;&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;List of counters whose values will be retrieved. This element can be used to limit data collection to a specified subset of the counters of instances of the object. If this element is absent, values of all counters will be retrieved.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px; text-align: center;"&gt;&lt;STRONG&gt;instances&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD style="padding: 2px; text-align: center;"&gt;instance[] &lt;EM&gt;optional&lt;/EM&gt;&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;List of the instance names for which to get counter values. This element can be used to limit data collection to a specific subject of the instances of the object. In Data ONTAP 7-Mode, counter values of all instances of the object will be retrieved when this element is absent. In Data ONTAP Cluster-Mode, either instances or instance-uuids input must be provided. The API errors out if both of these inputs are provided or neither of these inputs is provided, or if more than 500 instances are requested.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px; text-align: center;"&gt;&lt;STRONG&gt;objectname&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD style="padding: 2px; text-align: center;"&gt;string&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;Name of the object to get counter values for.&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I was able to get all the data using the &lt;SPAN style="font-family: 'courier new', courier;"&gt;invoke()&lt;/SPAN&gt; method:&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;...&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;my $&lt;/SPAN&gt;filer = NaServer -&amp;gt; new ($server, $majorversion, $minorversion);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;$filer -&amp;gt; set_style ('HOSTS');&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;my $result = NaElement -&amp;gt; new ();&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;$result = $filer -&amp;gt; invoke ('perf-object-get-instances', 'objectname', 'nfsv3'&lt;/SPAN&gt;);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;print $result -&amp;gt; sprintf()&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;...&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When I searched online, I found a lot of people had the same problem. Instead of limiting the results they were receiving, they were iterating through the results and only taking the data that they needed. That's not what I wanted to do. I thought it was too inefficient, especially if my script was going to be called frequently. It also didn't feel &lt;EM&gt;right&lt;/EM&gt;. &lt;SPAN __jive_emoticon_name="happy" __jive_macro_name="emoticon" class="jive_macro jive_macro_emoticon jive_emote" src="https://community.netapp.com/5.0.1/images/emoticons/happy.gif"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The problem was that I couldn't figure out how to pass the arguments for the &lt;SPAN style="font-family: 'courier new', courier;"&gt;counter[]&lt;/SPAN&gt; array or the &lt;SPAN style="font-family: 'courier new', courier;"&gt;instance[]&lt;/SPAN&gt; array. (I didn't need the &lt;SPAN style="font-family: 'courier new', courier;"&gt;instance[]&lt;/SPAN&gt; array in this case, but I assumed that the mechanics were the same.) I was looking for Perl-ish ways to pass the variables.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;These did &lt;EM&gt;&lt;STRONG&gt;NOT&lt;/STRONG&gt;&lt;/EM&gt; work:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Anonymous arrays&lt;/LI&gt;&lt;/UL&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;...&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;my $result = NaElement -&amp;gt; new ();&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;$result = $filer -&amp;gt; invoke ('perf-object-get-instances', 'counters', [ 'nfsv3_ops', 'nfsv3_read_latency', 'nfsv3_read_ops', 'nfsv3_write_latency', 'nfs_write_ops' ], 'objectname', 'nfsv3');&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;...&lt;/SPAN&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;References to arrays&lt;/LI&gt;&lt;/UL&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;...&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;my @counters = ('nfsv3_ops', 'nfsv3_read_latency', 'nfsv3_read_ops', 'nfsv3_write_latency', 'nfs_write_ops');&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;my $result = NaElement -&amp;gt; new ();&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;$result = $filer -&amp;gt; invoke ('perf-object-get-instances', 'counters', \@counters, 'objectname', 'nfsv3');&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;...&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I found a similar post, but for Ruby, here: &lt;A _jive_internal="true" href="https://community.netapp.com/message/85133" target="_blank"&gt;https://communities.netapp.com/message/85133&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I don't know Ruby, but reading that post helped me figure out that I needed to create an object.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here's code that works:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;...&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;my $filer = NaServer -&amp;gt; new ($server, $majorversion, $minorversion);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&amp;nbsp; &lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;$filer -&amp;gt; set_style ('HOSTS');&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&amp;nbsp; &lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;my $command = NaElement -&amp;gt; new ('perf-object-get-instances');&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&amp;nbsp; &lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;my $counters = NaElement -&amp;gt; new ('counters');&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;$counters -&amp;gt; child_add_string('counter', 'nfsv3_ops');&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;$counters -&amp;gt; child_add_string('counter', 'nfsv3_read_latency');&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;$counters -&amp;gt; child_add_string('counter', 'nfsv3_read_ops');&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;$counters -&amp;gt; child_add_string('counter', 'nfsv3_write_latency');&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;$counters -&amp;gt; child_add_string('counter', 'nfsv3_write_ops');&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;$command -&amp;gt; child_add($counters);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&amp;nbsp; &lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;$command -&amp;gt; child_add_string ('objectname', 'nfsv3');&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;my $result = NaElement -&amp;gt; new ();&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;$result = $filer -&amp;gt; invoke_elem ($command);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&amp;nbsp; &lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;print $result -&amp;gt; sprintf(); # Outputs XML-formatted results&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;...&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Basically, what you are doing is building a &lt;SPAN style="font-family: 'courier new', courier;"&gt;$command&lt;/SPAN&gt; object that will run the &lt;SPAN style="font-family: 'courier new', courier;"&gt;perf-object-get-instances&lt;/SPAN&gt; command.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After the main object was created, I created another object, &lt;SPAN style="font-family: 'courier new', courier;"&gt;$counters&lt;/SPAN&gt;. I started adding the data I wanted to the &lt;SPAN style="font-family: 'courier new', courier;"&gt;$counters&lt;/SPAN&gt; object. Each statistic I wanted was added to the &lt;SPAN style="font-family: 'courier new', courier;"&gt;$counters&lt;/SPAN&gt; object, as a type/statistic pair. After the &lt;SPAN style="font-family: 'courier new', courier;"&gt;$counters&lt;/SPAN&gt; object was complete, I added it as a child to the &lt;SPAN style="font-family: 'courier new', courier;"&gt;$command&lt;/SPAN&gt; object.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Since I didn't have any instances that I wanted to add, I didn't have to create an &lt;SPAN style="font-family: 'courier new', courier;"&gt;$instances&lt;/SPAN&gt; object. If I did want one, I would have created another &lt;SPAN style="font-family: 'courier new', courier;"&gt;NaElement&lt;/SPAN&gt; object and configured it in the same way.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Finally, I needed to add the object name at the end. In this case, I'm not adding another &lt;SPAN style="font-family: 'courier new', courier;"&gt;NaElement&lt;/SPAN&gt; object. This time, it's just a string. I added a string of type &lt;SPAN style="font-family: 'courier new', courier;"&gt;objectname&lt;/SPAN&gt; with the value &lt;SPAN style="font-family: 'courier new', courier;"&gt;nfsv3&lt;/SPAN&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When I actually run the command, I need to use the &lt;SPAN style="font-family: 'courier new', courier;"&gt;invoke_elem()&lt;/SPAN&gt; method instead of the &lt;SPAN style="font-family: 'courier new', courier;"&gt;invoke()&lt;/SPAN&gt; method that was in the previous script.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Anyway, I took the time to write this up in the hopes that it will help someone else. (I suspect that I'll probably forget how to do this, and &lt;EM&gt;I'll&lt;/EM&gt; be the one that's going online to look for this solution. &lt;SPAN __jive_emoticon_name="happy" __jive_macro_name="emoticon" class="jive_macro jive_macro_emoticon jive_emote" src="https://community.netapp.com/5.0.1/images/emoticons/happy.gif"&gt;&lt;/SPAN&gt;)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So, if you got this far, I hope this helps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Chris Hayashida&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Jun 2025 06:16:04 GMT</pubDate>
      <guid>https://community.netapp.com/t5/Software-Development-Kit-SDK-and-API-Discussions/Example-How-to-use-perf-object-get-instances-to-get-specific-statistics-in-Perl/m-p/12900#M116</guid>
      <dc:creator>chayashida</dc:creator>
      <dc:date>2025-06-05T06:16:04Z</dc:date>
    </item>
    <item>
      <title>Re: Example: How to use perf-object-get-instances to get specific statistics in Perl</title>
      <link>https://community.netapp.com/t5/Software-Development-Kit-SDK-and-API-Discussions/Example-How-to-use-perf-object-get-instances-to-get-specific-statistics-in-Perl/m-p/12904#M117</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Chris&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is very useful. Thanks for the brilliant contribution.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Moving it to more visible area in communities.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-Kunal&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 31 Oct 2012 06:50:08 GMT</pubDate>
      <guid>https://community.netapp.com/t5/Software-Development-Kit-SDK-and-API-Discussions/Example-How-to-use-perf-object-get-instances-to-get-specific-statistics-in-Perl/m-p/12904#M117</guid>
      <dc:creator>kunalm</dc:creator>
      <dc:date>2012-10-31T06:50:08Z</dc:date>
    </item>
    <item>
      <title>Re: Example: How to use perf-object-get-instances to get specific statistics in Perl</title>
      <link>https://community.netapp.com/t5/Software-Development-Kit-SDK-and-API-Discussions/Example-How-to-use-perf-object-get-instances-to-get-specific-statistics-in-Perl/m-p/12909#M118</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Chris,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am also grappling with similar issues &lt;SPAN __jive_emoticon_name="happy" __jive_macro_name="emoticon" class="jive_macro jive_emote" src="https://community.netapp.com/5.0.1/images/emoticons/happy.gif"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Do you know if there is a description of what each of the NFS counters mean ? I.e when we poll the nfsv3_ops counter, it is increasing until no NFS clients are connected. Is it sufficient to assume then that nfsv3_ops is a count of total ops done until the point in time when that call was made to read the counter ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;--&lt;/P&gt;&lt;P&gt;Gagan Grewal&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 22 Apr 2013 10:29:18 GMT</pubDate>
      <guid>https://community.netapp.com/t5/Software-Development-Kit-SDK-and-API-Discussions/Example-How-to-use-perf-object-get-instances-to-get-specific-statistics-in-Perl/m-p/12909#M118</guid>
      <dc:creator>VIEMEARD</dc:creator>
      <dc:date>2013-04-22T10:29:18Z</dc:date>
    </item>
    <item>
      <title>Re: Example: How to use perf-object-get-instances to get specific statistics in Perl</title>
      <link>https://community.netapp.com/t5/Software-Development-Kit-SDK-and-API-Discussions/Example-How-to-use-perf-object-get-instances-to-get-specific-statistics-in-Perl/m-p/12914#M119</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I found this information very useful for digging the nfsv3 latencies out. However without the information from: &lt;/P&gt;&lt;P&gt;&lt;A _jive_internal="true" class="active_link" href="https://community.netapp.com/servlet/JiveServlet/previewBody/1044-102-1-1022/Performance_Management_DesignGuide.pdf" title="https://communities.netapp.com/servlet/JiveServlet/previewBody/1044-102-1-1022/Performance_Management_DesignGuide.pdf" target="_blank"&gt;https://communities.netapp.com/servlet/JiveServlet/previewBody/1044-102-1-1022/Performance_Management_DesignGuide.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;Check out page 12-13. That will detail how to use these counters. You will need the 'avg base' counters to figure the latencies out.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;$counters -&amp;gt; child_add_string('counter', 'nfsv3_ops');&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;$counters -&amp;gt; child_add_string('counter', 'nfsv3_read_latency');&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;$counters -&amp;gt; child_add_string('counter', 'nfsv3_avg_read_latency_base');&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;$counters -&amp;gt; child_add_string('counter', 'nfsv3_read_ops');&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;$counters -&amp;gt; child_add_string('counter', 'nfsv3_write_latency');&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;$counters -&amp;gt; child_add_string('counter', 'nfsv3_avg_write_latency_base');&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;$counters -&amp;gt; child_add_string('counter', 'nfsv3_write_ops');&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 02 Oct 2013 20:38:32 GMT</pubDate>
      <guid>https://community.netapp.com/t5/Software-Development-Kit-SDK-and-API-Discussions/Example-How-to-use-perf-object-get-instances-to-get-specific-statistics-in-Perl/m-p/12914#M119</guid>
      <dc:creator>DOUGLASSIGGINS</dc:creator>
      <dc:date>2013-10-02T20:38:32Z</dc:date>
    </item>
    <item>
      <title>Re: Example: How to use perf-object-get-instances to get specific statistics in Perl</title>
      <link>https://community.netapp.com/t5/Software-Development-Kit-SDK-and-API-Discussions/Example-How-to-use-perf-object-get-instances-to-get-specific-statistics-in-Perl/m-p/12919#M120</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Doug,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for replying to this for me. I didn't have e-mail notifications turned on, so I didn't see Gagan's question.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Gagan,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I was porting another script that used the NFS counters, so I just copied the SNMP information verbatim. I don't know much about the counters, but I hope Doug's answer helps you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Chris&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 24 Apr 2014 20:26:48 GMT</pubDate>
      <guid>https://community.netapp.com/t5/Software-Development-Kit-SDK-and-API-Discussions/Example-How-to-use-perf-object-get-instances-to-get-specific-statistics-in-Perl/m-p/12919#M120</guid>
      <dc:creator>chayashida</dc:creator>
      <dc:date>2014-04-24T20:26:48Z</dc:date>
    </item>
  </channel>
</rss>

