Software Development Kit (SDK) and API Discussions

Reading wafl perf-object-get-instances via API results in errno="13001"

netapp_salk

Hi,

We use collectd with netapp plugin (using netapp-manageability-sdk) to query our filers about performance data. This worked fine until we upgraded to the latest ONTAP version 8.1.3P2 (in 7-Mode). Since the upgrade we get this error:

status="failed" errno="13001" reason="Not enough memory to get instances for wafl.Use perf-object-get-instances-iter-* calls and/or ask for specific counters to limit the amount of data retrieved"

I've tried to query the API directly via HTTPS calls (without collectd):

wget --no-proxy --post-data '<?xml version="1.0" encoding="utf-8" ?><!DOCTYPE netapp SYSTEM "file:/etc/netapp_filer.dtd"><netapp version="1.1" xmlns="http://www.netapp.com/filer/admin"><perf-object-get-instances><objectname>wafl</objectname><counters><counter>name_cache_hit</counter></counters></perf-object-get-instances></netapp>' http://user:pass@filer/servlets/netapp.servlets.admin.XMLrequest_filer

Which results in:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE netapp SYSTEM '/na_admin/netapp_filer.dtd'>
<netapp version='1.1' xmlns='http://www.netapp.com/filer/admin'>
<results status="failed" errno="13001" reason="Not enough memory to get instances for wafl.Use perf-object-get-instances-iter-* calls and/or ask for specific counters to limit the amount of data retrieved"/></netapp>

Funny thing is, if we query <perf-object-get-instances-iter-start><objectname>wafl</objectname><counters><counter>name_cache_miss</counter></counters></perf-object-get-instance-iter-start> the output is the same, use -iter-* calls! But we used an -iter-* call!

If we query for the processors and not wafl, everything works fine:

wget --no-proxy --post-data '<?xml version="1.0" encoding="utf-8" ?><!DOCTYPE netapp SYSTEM "file:/etc/netapp_filer.dtd"><netapp version="1.1" xmlns="http://www.netapp.com/filer/admin"><perf-object-instance-list-info><objectname>processor</objectname></perf-object-instance-list-info></netapp>' http://user:pass@filer/servlets/netapp.servlets.admin.XMLrequest_filer

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE netapp SYSTEM '/na_admin/netapp_filer.dtd'>
<netapp version='1.1' xmlns='http://www.netapp.com/filer/admin'>
<results status="passed"><instances><instance-info><name>processor0</name></instance-info><instance-info><name>processor1</name></instance-info><instance-info><name>processor2</name></instance-info><instance-info><name>processor3</name></instance-info></instances></results></netapp>

Even when querying the stats from one processor, which results in about 4k of values, works fine:


wget --no-proxy --post-data '<?xml version="1.0" encoding="utf-8" ?><!DOCTYPE netapp SYSTEM "file:/etc/netapp_filer.dtd"><netapp version="1.1" xmlns="http://www.netapp.com/filer/admin"><perf-object-get-instances><objectname>processor</objectname></perf-object-get-instances></netapp>' http://user:pass@filer/servlets/netapp.servlets.admin.XMLrequest_filer


Anyone encountered these problems? And/or knows a solution how to get the data from the filer? For us it looks like an error in the API?

Any help would be appreciated.

Best regards,

Christoph

2 REPLIES 2

Re: Reading wafl perf-object-get-instances via API results in errno="13001"

zulanch

Hi Christoph,

Hmm, it does look like that API is behaving strangely in 8.1.3P2. I did get the call working by adding an instance parameter of "wafl" to the call. Try the following and see if it works for you.

<?xml version="1.0" encoding="UTF-8"?>

<netapp xmlns="http://www.netapp.com/filer/admin" version="1.1">

  <perf-object-get-instances>

    <objectname>wafl</objectname>

    <counters>

      <counter>name_cache_hit</counter>

    </counters>

    <instances>

      <instance>wafl</instance>

    </instances>

  </perf-object-get-instances>

</netapp>

-Ben

View solution in original post

Re: Reading wafl perf-object-get-instances via API results in errno="13001"

netapp_salk

Hi Ben,

Yes, you're right! I've discovered the same thing yesterday evening. With the <instances><instance>wafl</instance></instances> parameter everything works fine! The error could be better ... Cause, if you don't give the <objectname>wafl</objectname> the error is more specific: <result errno='13006' resason='Missint input: objectname' status='failed'/> Would be great if this is for missing instance as well!

Nevertheless, thanks for you post!

Best regards,

Chris...

Earn Rewards for Your Review!
GPI Review Banner
All Community Forums
Public