Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page
Reading wafl perf-object-get-instances via API results in errno="13001"
2013-11-12
05:26 AM
5,183 Views
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
Solved! See The Solution
1 ACCEPTED SOLUTION
migration has accepted the solution
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
2 REPLIES 2
migration has accepted the solution
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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...
