Skip to main content
ONTAP Automation
Die deutsche Sprachversion wurde als Serviceleistung für Sie durch maschinelle Übersetzung erstellt. Bei eventuellen Unstimmigkeiten hat die englische Sprachversion Vorrang.

Performance-Zähler

Beitragende

Der ONTAP Zählermanager enthält umfassende Informationen zur Performance jedes ONTAP Systems. Diese Daten werden als Reihe von Performance-Zählern exportiert, mit denen Sie die Performance Ihres ONTAP Systems einschätzen und Ihre Performance-Ziele erreichen können.

Greifen Sie auf die ONTAP-Leistungszähler zu

Sie können über zwei verschiedene APIs sowie über die ONTAP-Befehlszeilenschnittstelle auf die ONTAP-Leistungszähler zugreifen.

Hinweis Die ONTAP REST-API ist die bevorzugte und strategische Option für die Automatisierung der Administration Ihrer ONTAP Implementierungen.

ONTAPI API

Die ONTAPI ist mit dem NetApp Network Manageability SDK verfügbar. Bei Verwendung von ONTAPI werden die Leistungsindikatoren in einer Sammlung von Objekten definiert. Jedes Objekt entspricht einer physischen oder virtuellen Komponente des Systems. Basierend auf der Systemkonfiguration kann ein oder mehrere Instanzen jedes Objekts vorhanden sein.

Wenn Ihr ONTAP-System beispielsweise vier physische Festplatten hat, gibt es vier Instanzen von disk Objekt mit jeweils einem eigenen Satz an Performance-Zählern. Über ONTAPI können Sie auf die einzelnen Zähler für jede Festplatteninstanz zugreifen.

ONTAP REST API

Ab ONTAP 9.11.1 können Sie auch über DIE REST-API auf die Performance-Daten zugreifen. In diesem Fall sind die Leistungszähler in Tabellen organisiert, die den ONTAPI-Objekten entsprechen. Jede Tabellenzeile entspricht einer Instanz eines ONTAPI-Objekts.

Wenn Ihr ONTAP-System beispielsweise vier physische Festplatten hat, wird der angezeigt disk Die Tabelle enthält vier Zeilen. Jede Zeile kann einzeln aufgerufen werden und enthält eine eigene Reihe von Leistungsindikatoren, die als Felder oder Spalten in der Zeile verfügbar sind.

Die Verwendung der REST-API wird vorbereitet

Sie sollten sich vor der Verwendung der ONTAP REST API vorbereiten, um auf die Performance-Zähler zuzugreifen.

Leistungszähler sind in Tabellen organisiert

Eine Untergruppe der ONTAPI Objekte ist über die ONTAP REST API verfügbar und als Tabellen dargestellt. Zum Beispiel wird das ONTAPI hostadapter-Objekt über DIE REST-API als Host_adpater-Tabelle dargestellt. Jeder Host Adapter im System ist eine Reihe mit eigenen Performance-Zählern.

Instanzname Performance-Zähler

Host_Adapter_1

Total_read_OPS_1

Total_write_OPS_1

Bytes_read_1

Bytes_written_1

max_Link_Data_Rate_1

rscn_count_1

Host_Adapter_2

Total_read_OPS_2

Total_write_OPS_2

Bytes_read_2

Bytes_written_2

max_Link_Data_Rate_2

rscn_count_2

Host_Adapter_3

Total_read_OPS_3

Total_write_OPS_3

Byte_Read_3

Bytes_written_3

max_Link_Data_Rate_3

rscn_count_3

Zusammenfassung der REST-Endpunkte

Für den Zugriff auf die ONTAP-Leistungszähler und zugehörige Tabellen stehen vier Hauptendpunkte zur Verfügung.

Hinweis Jeder REST-Endpunkt bietet schreibgeschützten Zugriff und unterstützt nur die HTTP-Methode GET. Siehe "API-Referenz" Finden Sie weitere Informationen.
  • /Cluster/Zähler/Tabellen

    Gibt eine Sammlung von Zählertabellen und deren Schemadefinitionen zurück.

  • /Cluster/Zähler/Tabellen/{Name}

    Gibt Informationen über eine einzelne angegebene Zählertabelle zurück.

  • /Cluster/counter/tables/{counter_Name}/rows

    Gibt eine Sammlung von Zeilen aus einer benannten Zählertabelle zurück.

  • /Cluster/Zähler/Tabellen/{counter_Name}/rows/{id}

    Gibt eine bestimmte Zeile aus einer benannten Zählertabelle zurück.

Migration von ONTAPI zu REST API

NetApp bietet umfassenden Support für die Migration Ihres Automatisierungscodes von ONTAPI auf die ONTAP REST API. Dazu gehört auch die Zuordnungsdokumentation zur Identifikation der äquivalenten Leistungstabelle, die in DER REST-API für ein bestimmtes ONTAPI-Objekt verfügbar ist.

Sie können online auf die aktuelle Dokumentation zugreifen "ONTAP-Performance-Zählerzuordnung". Es steht auch eine Versionsauswahl zur Verfügung, um auf frühere Versionen der Dokumentation basierend auf der ONTAP-Version zuzugreifen.

Erste Schritte mit der ONTAP REST API

Die folgenden Beispiele veranschaulichen die Verwendung DER REST-API für den Zugriff auf die ONTAP-Performance-Zähler. Dazu gehört das Abrufen einer Liste der verfügbaren Tabellen und das Erforschen der Tabellenstruktur.

Bevor Sie beginnen

Lesen Sie die folgenden Informationen durch, bevor Sie die Beispiele verwenden.

ONTAP Referenzen

Sie benötigen ein ONTAP-Administratorkonto mit dem Kennwort.

Cluster-Management-IP

Sie benötigen die für Ihr ONTAP System konfigurierte Cluster-Management-IP-Adresse.

Alle API-Aufrufe verwenden die GET-Methode

Alle unten aufgeführten Beispiele können nur verwendet werden, um Informationen mit der HTTP GET-Methode abzurufen.

Variablenersatz

Jedes Curl-Beispiel enthält eine oder mehrere Variablen, wie sie mit Kapitalien und Text in Klammern angegeben sind. Stellen Sie sicher, dass diese Variablen durch tatsächliche Werte ersetzt werden, die für Ihre Umgebung geeignet sind.

Beispiele stimmen mit den Endpunkten überein

Die nachfolgende Beispielsequenz zeigt, wie die RESTLICHEN Endpunkte zum Abrufen der Leistungszähler verwendet werden. Siehe Zusammenfassung der REST-Endpunkte Finden Sie weitere Informationen.

Beispiel 1: Alle Performance-Zählertabellen

Sie können diesen REST-API-Aufruf verwenden, um alle verfügbaren Zählermanager-Tabellen zu ermitteln.

Beispiel für die Wellung
curl --request GET --user admin:<PASSWORD> 'https://<ONTAP_IP_ADDRESS>/api/cluster/counter/tables'
Beispiel für eine JSON-Ausgabe
{
  "records": [
    {
      "name": "copy_manager",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/copy_manager"
        }
      }
    },
    {
      "name": "copy_manager:constituent",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/copy_manager%3Aconstituent"
        }
      }
    },
    {
      "name": "disk",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/disk"
        }
      }
    },
    {
      "name": "disk:constituent",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/disk%3Aconstituent"
        }
      }
    },
    {
      "name": "disk:raid_group",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/disk%3Araid_group"
        }
      }
    },
    {
      "name": "external_cache",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/external_cache"
        }
      }
    },
    {
      "name": "fcp",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/fcp"
        }
      }
    },
    {
      "name": "fcp:node",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/fcp%3Anode"
        }
      }
    },
    {
      "name": "fcp_lif",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/fcp_lif"
        }
      }
    },
    {
      "name": "fcp_lif:node",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/fcp_lif%3Anode"
        }
      }
    },
    {
      "name": "fcp_lif:port",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/fcp_lif%3Aport"
        }
      }
    },
    {
      "name": "fcp_lif:svm",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/fcp_lif%3Asvm"
        }
      }
    },
    {
      "name": "fcvi",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/fcvi"
        }
      }
    },
    {
      "name": "headroom_aggregate",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/headroom_aggregate"
        }
      }
    },
    {
      "name": "headroom_cpu",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/headroom_cpu"
        }
      }
    },
    {
      "name": "host_adapter",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/host_adapter"
        }
      }
    },
    {
      "name": "iscsi_lif",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/iscsi_lif"
        }
      }
    },
    {
      "name": "iscsi_lif:node",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/iscsi_lif%3Anode"
        }
      }
    },
    {
      "name": "iscsi_lif:svm",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/iscsi_lif%3Asvm"
        }
      }
    },
    {
      "name": "lif",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/lif"
        }
      }
    },
    {
      "name": "lif:svm",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/lif%3Asvm"
        }
      }
    },
    {
      "name": "lun",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/lun"
        }
      }
    },
    {
      "name": "lun:constituent",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/lun%3Aconstituent"
        }
      }
    },
    {
      "name": "lun:node",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/lun%3Anode"
        }
      }
    },
    {
      "name": "namespace",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/namespace"
        }
      }
    },
    {
      "name": "namespace:constituent",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/namespace%3Aconstituent"
        }
      }
    },
    {
      "name": "nfs_v4_diag",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/nfs_v4_diag"
        }
      }
    },
    {
      "name": "nic_common",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/nic_common"
        }
      }
    },
    {
      "name": "nvmf_lif",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/nvmf_lif"
        }
      }
    },
    {
      "name": "nvmf_lif:constituent",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/nvmf_lif%3Aconstituent"
        }
      }
    },
    {
      "name": "nvmf_lif:node",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/nvmf_lif%3Anode"
        }
      }
    },
    {
      "name": "nvmf_lif:port",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/nvmf_lif%3Aport"
        }
      }
    },
    {
      "name": "object_store_client_op",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/object_store_client_op"
        }
      }
    },
    {
      "name": "path",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/path"
        }
      }
    },
    {
      "name": "processor",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/processor"
        }
      }
    },
    {
      "name": "processor:node",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/processor%3Anode"
        }
      }
    },
    {
      "name": "qos",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/qos"
        }
      }
    },
    {
      "name": "qos:constituent",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/qos%3Aconstituent"
        }
      }
    },
    {
      "name": "qos:policy_group",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/qos%3Apolicy_group"
        }
      }
    },
    {
      "name": "qos_detail",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/qos_detail"
        }
      }
    },
    {
      "name": "qos_detail_volume",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/qos_detail_volume"
        }
      }
    },
    {
      "name": "qos_volume",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/qos_volume"
        }
      }
    },
    {
      "name": "qos_volume:constituent",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/qos_volume%3Aconstituent"
        }
      }
    },
    {
      "name": "qtree",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/qtree"
        }
      }
    },
    {
      "name": "qtree:constituent",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/qtree%3Aconstituent"
        }
      }
    },
    {
      "name": "svm_cifs",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/svm_cifs"
        }
      }
    },
    {
      "name": "svm_cifs:constituent",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/svm_cifs%3Aconstituent"
        }
      }
    },
    {
      "name": "svm_cifs:node",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/svm_cifs%3Anode"
        }
      }
    },
    {
      "name": "svm_nfs_v3",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/svm_nfs_v3"
        }
      }
    },
    {
      "name": "svm_nfs_v3:constituent",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/svm_nfs_v3%3Aconstituent"
        }
      }
    },
    {
      "name": "svm_nfs_v3:node",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/svm_nfs_v3%3Anode"
        }
      }
    },
    {
      "name": "svm_nfs_v4",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/svm_nfs_v4"
        }
      }
    },
    {
      "name": "svm_nfs_v41",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/svm_nfs_v41"
        }
      }
    },
    {
      "name": "svm_nfs_v41:constituent",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/svm_nfs_v41%3Aconstituent"
        }
      }
    },
    {
      "name": "svm_nfs_v41:node",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/svm_nfs_v41%3Anode"
        }
      }
    },
    {
      "name": "svm_nfs_v42",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/svm_nfs_v42"
        }
      }
    },
    {
      "name": "svm_nfs_v42:constituent",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/svm_nfs_v42%3Aconstituent"
        }
      }
    },
    {
      "name": "svm_nfs_v42:node",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/svm_nfs_v42%3Anode"
        }
      }
    },
    {
      "name": "svm_nfs_v4:constituent",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/svm_nfs_v4%3Aconstituent"
        }
      }
    },
    {
      "name": "svm_nfs_v4:node",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/svm_nfs_v4%3Anode"
        }
      }
    },
    {
      "name": "system",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/system"
        }
      }
    },
    {
      "name": "system:constituent",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/system%3Aconstituent"
        }
      }
    },
    {
      "name": "system:node",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/system%3Anode"
        }
      }
    },
    {
      "name": "token_manager",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/token_manager"
        }
      }
    },
    {
      "name": "volume",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/volume"
        }
      }
    },
    {
      "name": "volume:node",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/volume%3Anode"
        }
      }
    },
    {
      "name": "volume:svm",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/volume%3Asvm"
        }
      }
    },
    {
      "name": "wafl",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/wafl"
        }
      }
    },
    {
      "name": "wafl_comp_aggr_vol_bin",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/wafl_comp_aggr_vol_bin"
        }
      }
    },
    {
      "name": "wafl_hya_per_aggregate",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/wafl_hya_per_aggregate"
        }
      }
    },
    {
      "name": "wafl_hya_sizer",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/wafl_hya_sizer"
        }
      }
    }
  ],
  "num_records": 71,
  "_links": {
    "self": {
      "href": "/api/cluster/counter/tables"
    }
  }
}

Beispiel 2: Allgemeine Informationen zu einer bestimmten Tabelle

Sie können diesen REST-API-Aufruf verwenden, um die Beschreibung und Metadaten für eine bestimmte Tabelle anzuzeigen. Die Ausgabe enthält den Zweck der Tabelle und welche Art von Daten jeder Performance-Zähler enthält. In diesem Beispiel wird die Tabelle Host_Adapter verwendet.

Beispiel für die Wellung
curl --request GET --user admin:<PASSWORD> 'https://<ONTAP_IP_ADDRESS>/api/cluster/counter/tables/host_adapter'
Beispiel für eine JSON-Ausgabe
{
  "name": "host_adapter",
  "description": "The host_adapter table reports activity on the Fibre Channel, Serial Attached SCSI, and parallel SCSI host adapters the storage system uses to connect to disks and tape drives.",
  "counter_schemas": [
    {
      "name": "bytes_read",
      "description": "Bytes read through a host adapter",
      "type": "rate",
      "unit": "per_sec"
    },
    {
      "name": "bytes_written",
      "description": "Bytes written through a host adapter",
      "type": "rate",
      "unit": "per_sec"
    },
    {
      "name": "max_link_data_rate",
      "description": "Max link data rate in Kilobytes per second for a host adapter",
      "type": "raw",
      "unit": "kb_per_sec"
    },
    {
      "name": "node.name",
      "description": "System node name",
      "type": "string",
      "unit": "none"
    },
    {
      "name": "rscn_count",
      "description": "Number of RSCN(s) received by the FC HBA",
      "type": "raw",
      "unit": "none"
    },
    {
      "name": "total_read_ops",
      "description": "Total number of reads on a host adapter",
      "type": "rate",
      "unit": "per_sec"
    },
    {
      "name": "total_write_ops",
      "description": "Total number of writes on a host adapter",
      "type": "rate",
      "unit": "per_sec"
    }
  ],
  "_links": {
    "self": {
      "href": "/api/cluster/counter/tables/host_adapter"
    }
  }
}

Beispiel 3: Alle Zeilen in einer bestimmten Tabelle

Mit diesem REST-API-Aufruf können Sie alle Zeilen in einer Tabelle anzeigen. Dies gibt an, welche Instanzen der Counter Manager-Objekte vorhanden sind.

Beispiel für die Wellung
curl --request GET --user admin:<PASSWORD> 'https://<ONTAP_IP_ADDRESS>/api/cluster/counter/tables/host_adapter/rows'
Beispiel für eine JSON-Ausgabe
{
  "records": [
    {
      "id": "dmp-adapter-01",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/host_adapter/rows/dmp-adapter-01"
        }
      }
    },
    {
      "id": "dmp-adapter-02",
      "_links": {
        "self": {
          "href": "/api/cluster/counter/tables/host_adapter/rows/dmp-adapter-02"
        }
      }
    }
  ],
  "num_records": 2,
  "_links": {
    "self": {
      "href": "/api/cluster/counter/tables/host_adapter/rows"
    }
  }
}

Beispiel 4: Einzelne Zeile in einer bestimmten Tabelle

Mit diesem REST-API-Aufruf können Sie Performance-Zählerwerte für eine bestimmte Zählermanager-Instanz in der Tabelle anzeigen. In diesem Beispiel werden die Performance-Daten für einen der Host-Adapter angefordert.

Beispiel für die Wellung
curl --request GET --user admin:<PASSWORD> 'https://<ONTAP_IP_ADDRESS>/api/cluster/counter/tables/host_adapter/rows/dmp-adapter-01'
Beispiel für eine JSON-Ausgabe
{
  "counter_table": {
    "name": "host_adapter"
  },
  "id": "dmp-adapter-01",
  "properties": [
    {
      "name": "node.name",
      "value": "dmp-node-01"
    }
  ],
  "counters": [
    {
      "name": "total_read_ops",
      "value": 25098
    },
    {
      "name": "total_write_ops",
      "value": 48925
    },
    {
      "name": "bytes_read",
      "value": 1003799680
    },
    {
      "name": "bytes_written",
      "value": 6900961600
    },
    {
      "name": "max_link_data_rate",
      "value": 0
    },
    {
      "name": "rscn_count",
      "value": 0
    }
  ],
  "_links": {
    "self": {
      "href": "/api/cluster/counter/tables/host_adapter/rows/dmp-adapter-01"
    }
  }
}