Tech ONTAP Blogs

Active IQ Unified Manager 9.9 Feature Blog: Performance and License REST APIs

jacoba
NetApp

Active IQ Unified Manager 9.9 Feature Blog: Performance and License REST APIs

 

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.

 

Understanding performance REST APIs

 

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:

  • metrics API /datacenter/storage/{storage-object}/{key}/metrics
  • analytics API /datacenter/storage/{storage-object}/analytics.

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

 

 

Understanding  performance metrics API

 

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"

 

Understanding  performance analytics API

 

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"

 

Understanding license REST API

 

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"

 

Try It Out!

 

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.

Public