Tech ONTAP Blogs
Tech ONTAP Blogs
Our NetApp® Active IQ Unified Manager tool provides you with a set of APIs to manage storage resources for your data centre supported storage systems by way of a RESTful web service interface that you can use for all third-party integrations.
In our Active IQ Unified Manager 9.9 release, we added two new types of Active IQ Unified Manager REST APIs. One for retrieving the performance details for storage objects in your data centre, such as clusters, aggregates, nodes, volumes, storage VMs (storage virtual machines, also known as SVMs) and LUNs. The other for retrieving the details for the licenses installed on the clusters in your data centre.
Our Active IQ Unified Manager tool provides you with a set of APIs under the /datacenter category. These APIs enable you to view the performance data for the clusters and storage objects in your data centre by retrieving the performance data for the different storage objects, such as clusters, nodes, LUNs, volumes, aggregates, and storage VMs. The (GET) Performance REST APIs consist of two API types which are available for each storage object:
In the following table you can compare the performance metrics and performance analytics APIs:
Performance metrics API |
Performance analytics API |
It includes the performance details for a single object, for example, the /datacenter/cluster/<storage object>/{key}/ metrics API requires you to enter the cluster key for retrieving the metrics for that specific cluster |
It includes performance details for multiple objects of the same type in your data centre, for example, the /datacenter/cluster/clusters/analytics API retrieves the collective metrics for all the clusters in your data centre |
It includes a performance metrics sample for a storage object based on a specified time interval. |
It retrieves high-level aggregated performance values for a certain type of storage object for 72 hours |
It retrieves the basic details for the storage object, such as node or cluster details |
It does not retrieve storage object details |
Querying is not possible |
Querying is possible |
The performance metrics API gives you granular performance details for your storage resources, such as IOPS, throughput, and latency. It also contains the “summary” and “samples” information for the performance data which it retrieves based on your chosen time interval. We’ve listed the time intervals in the table below:
Legend |
Explanation |
1h (Default value) |
Retrieves metrics over the most recent hour by sampling over 5 minutes |
12h |
Retrieves metrics over the most recent 12 hours by sampling over 5 minutes |
1d |
Retrieves metrics over the most recent day by sampling over 5 minutes |
2d |
Retrieves metrics over the most recent 2 days by sampling over 5 minutes |
3d |
Retrieves metrics over the most recent 3 days by sampling over 5 minutes |
15d |
Retrieves metrics over the most recent 15 days by sampling over 1 hour |
1w |
Retrieves metrics over the most recent week by sampling over 1 hour |
1m |
Retrieves metrics over the most recent month by sampling over 1 hour |
2m |
Retrieves metrics over the most recent 2 months by sampling over 1 hour |
3m |
Retrieves metrics over the most recent 3 months by sampling over 1 hour |
6m |
Retrieves metrics over the most recent 6 months by sampling over 1 hour |
In the table below, you can see the metrics details that are returned by the performance metrics API and shared by each storage object.
Legend |
Query |
Explanation |
Cluster |
/datacenter/cluster/clusters/{key}/metrics. |
Samples: · iops · throughput Summary · iops [avg,max,min] · throughput [avg,max,min] All based on the specified interval. |
Node |
/datacenter/cluster/nodes/{key}/metrics |
Samples: · iops (R, W, O, T) · latency (R, W, O, T) · throughput (R, W, O, T) · performance_capacity o available_iops_percent o free_percent o system_workload_percent, o used_percent, o user_workload_percent Summary: · latency (R, W, O, T [avg,max,min]) · iops (R, W, O, T [avg,max,min]) · throughput (R, W, O, T [avg,max,min]) · performance_capacity o available_iops_percent [avg,max,min] o free_percent [avg,max,min] o system_workload_percent [avg,max,min] o used_percent [avg,max,min] o user_workload_percent [avg,max,min]
|
Aggregate |
/datacenter/storage/aggregates/{key}/metrics |
Samples: · iops (R, W, O, T) · latency (R, W, O, T) · throughput (R, W, O, T) · performance_capacity o available_iops_percent o free_percent o system_workload_percent, o used_percent, o user_workload_percent Summary: · latency (R, W, O, T [avg,max,min]) · iops (R, W, O, T [avg,max,min]) · throughput (R, W, O, T [avg,max,min]) · performance_capacity o available_iops_percent [avg,max,min] o free_percent [avg,max,min] o system_workload_percent [avg,max,min] o used_percent [avg,max,min] o user_workload_percent [avg,max,min]
|
Volume |
/datacenter/storage/volumes/{key}/metrics |
Samples · latency (R, W, O, T) · iops (R, W, O, T [avg,max,min]) · throughput (R, W, O, T) · cache_miss_ratio · iops_per_tb Summary: · latency (R, W, O, T [avg,max,min]) · iops (R, W, O, T [avg,max,min]) · throughput (R, W, O, T [avg,max,min]) · iops_per_tb [avg,max,min] · cache_miss_ratio [avg,max,min]
|
Storage VM |
/datacenter/svm/svms/{key}/metrics |
Samples: · throughput (R, W, O, T) · latency (R, W, O, T) · iops (R, W, O, T) o cifs (R, W, O, T) o fcp (R, W, O, T) o iscsi (R, W, O, T) o nfs (R, W, O, T) o nvmf (R, W, O, T)
Summary: · latency (R, W, O, T [avg,max,min]) · iops (R, W, O, T [avg,max,min]) o cifs [avg,max,min] o fcp [avg,max,min] o iscsi [avg,max,min] o nfs [avg,max,min] o nvmf [avg,max,min] · throughput ((R, W, O, T [avg,max,min]) |
LUN |
/datacenter/storage/luns/{key}/metrics |
Samples · iops (R, W, O, T) · latency (R, W, O, T) · throughput (R, W, O, T) Summary: · latency (R, W, O, T [avg,max,min]) · iops (R, W, O, T [avg,max,min]) · throughput (R, W, O, T [avg,max,min])
|
In the following three examples, we show how you can use the performance metrics REST APIs.
Example of a performance metrics REST API query with a default interval:
curl -X GET "https://11.111.11.11/api/datacenter/cluster/clusters/9fc58041-8e8b-11e9-ae68-00a098b1b4d1%3Atype%3Dcluster%2Cuuid%3D9fc58041-8e8b-11e9-ae68-00a098b1b4..." -H "accept: application/json" -H "UM-CSRF-Token: e9c9feb7-211a-4338-ab7c-36a331a81b46"
Example of a performance metrics REST API query with an interval of 12h:
curl -X GET "https://11.111.11.11/api/datacenter/cluster/clusters/9fc58041-8e8b-11e9-ae68-00a098b1b4d1%3Atype%3Dcluster%2Cuuid%3D9fc58041-8e8b-11e9-ae68-00a098b1b4..." -H "accept: application/json" -H "UM-CSRF-Token: e9c9feb7-211a-4338-ab7c-36a331a81b46"
Example of a performance metrics REST API query with an interval of 6m
curl -X GET "https://11.111.11.11/api/datacenter/cluster/clusters/9fc58041-8e8b-11e9-ae68-00a098b1b4d1%3Atype%3Dcluster%2Cuuid%3D9fc58041-8e8b-11e9-ae68-00a098b1b4..." -H "accept: application/json" -H "UM-CSRF-Token: e9c9feb7-211a-4338-ab7c-36a331a81b46"
The performance analytics API retrieves high-level performance details for your resources, such as IOPS, throughput, and latency, for an average of 72 hours. You also have options to filter, paginate, and sort based on the available fields.
In the table below, you can see the analytics details that are returned by the analytics metrics API and shared by each storage object.
Legend |
Query |
Query description |
Cluster |
/datacenter/cluster/clusters/analytics |
· Retrieves the IOPS and throughput for a particular cluster · Retrieves the cluster details based on a particular IOPS and throughput |
Node |
/datacenter/cluster/nodes/analytics |
· Retrieves the performance capacity-used percent, performance capacity-available IOPS percent, utilization_percent, IOPS, latency, and threshold for a particular node or cluster · Retrieve the node, cluster details based on a performance capacity-used percent, performance capacity-available IOPS percent, utilization_percent, IOPS, latency, and threshold |
Aggregate |
/datacenter/storage/aggregates/analytics |
· Retrieves the performance capacity-used percent, performance capacity-available IOPS percent, utilization_percent, IOPS, latency, and threshold for a particular node. · Retrieves the node details based on a performance capacity-used percent, performance capacity-available IOPS percent, utilization_percent, IOPS, latency, and threshold |
Volume |
/datacenter/storage/volumes/analytics |
· Retrieves the iops_per_tb, IOPS, latency, and threshold for a particular volume, storage VM, or cluster · Retrieves the volume, storage VM, or cluster details based on iops_per_tb, IOPS, latency, and threshold |
LUN |
/datacenter/storage/luns/analytics |
· Retrieves the IOPS, latency, and threshold for a particular LUN, volume, storage VM, or cluster · Retrieves the LUN, volume, storage VM, or cluster details based on IOPS, latency, and threshold |
In the following three examples, we show how you can use the performance analytics REST APIs.
Example of a performance analytics REST API query to retrieve latency and IOPS information from a particular cluster:-
curl -X GET "https://11.11.11.11/api/datacenter/cluster/clusters/analytics?cluster.uuid=9fc58041-8e8b-11e9-ae68-00a098b1b4d1" -H "accept: application/json" -H "UM-CSRF-Token: e9c9feb7-211a-4338-ab7c-36a331a81b46"
Example of a performance analytics REST API query to retrieve cluster details that have a particular latency and IOPS
curl -X GET "https://11.11.11.11/api/datacenter/cluster/clusters/analytics?iops=1000&throughput=20" -H "accept: application/json" -H "UM-CSRF-Token: e9c9feb7-211a-4338-ab7c-36a331a81b46"
Example of a performance analytics REST API query to retrieve volumes from a particular storage VM and cluster with particular latency and IOPS
curl -X GET "https://11.11.11.11/api/datacenter/storage/volumes/analytics?iops=1000&cluster.key=9fc58041-8e8b-11e9-ae68-00a098b1b4d1%3Atype%3Dcluster%2Cuuid%3D9fc5..." -H "accept: application/json" -H "UM-CSRF-Token: e9c9feb7-211a-4338-ab7c-36a331a81b46"
We also added the license REST API query which you can use to retrieve the license details for the licenses you installed on the clusters in your data centre. You can run queries based on specific features or other criteria, such as license key, cluster key, and expiry date.
For example, the /datacenter/cluster/licensing/licenses REST API query retrieves a collection of license packages in your data centre. In the examples below, we show how you can REAT API queries for a range of parameters.
Example of a query using license key, scope, name, and universal unique identifier (UUID):
curl -X GET "https://10.195.64.59/api/datacenter/cluster/licensing/licenses?key=9fc58041-8e8b-11e9-ae68-00a098b1b4d1%3Atype%3Dlicense%2Cpackage_name%3Dbase%2Cseria..." -H "accept: application/json" -H "UM-CSRF-Token: bfef9840-6fd1-4d48-9afa-892b8453a4ee
Example of a query using licenses.serial_number, licenses.owner, and licenses.expiry_time:
curl -X GET "https://10.195.64.59/api/datacenter/cluster/licensing/licenses?licenses.serial_number=1-80-000011&licenses.owner=AFF200&licenses.expiry_time=null" -H "accept: application/json" -H "UM-CSRF-Token: bfef9840-6fd1-4d48-9afa-892b8453a4ee"
Example of a licence query for a particular cluster or node:
curl -X GET "https://10.195.64.59/api/datacenter/cluster/licensing/licenses?cluster.name=AFF200" -H "accept: application/json" -H "UM-CSRF-Token: bfef9840-6fd1-4d48-9afa-892b8453a4ee"
Example of the /datacenter/cluster/licensing/licenses/{key} query using a specified key to retrieve specific details
curl -X GET "https://10.195.64.59/api/datacenter/cluster/licensing/licenses/9fc58041-8e8b-11e9-ae68-00a098b1b4d1%3Atype%3Dlicense%2Cpackage_name%3Dbase%2Cserial_nu..." -H "accept: application/json" -H "UM-CSRF-Token: bfef9840-6fd1-4d48-9afa-892b8453a4ee"
Now that you’ve read about our new REST APIs for performance and license, we hope it entices you to update and try Active IQ Unified Manager 9.9.
If you would like more information, contact us and we would be happy to answer your questions.