OpenAPI QueryBuilder の例

以下の例では、OpenAPI の柔軟性について説明します。 以下の例をモデルとして使用し、独自の OpenAPI クエリを作成します。
capm360
以下の例では、OpenAPI の柔軟性について説明します。 以下の例をモデルとして使用し、独自の OpenAPI クエリを作成します。
インベントリおよび設定の詳細をエクスポートする
以下の例では、特定の設定の詳細を含むインベントリからのアイテムのリストを抽出する方法を示します。
名前に Cisco を含むすべてのデバイスのリストを取得する
Cisco デバイスおよびそれらのデバイスの IP アドレスのリストを取得するとします。 これらのデバイスの場合、デバイス名に「Cisco」が含まれることを確認します。
このリストを取得するには、以下のトークンを使用して、クエリを構築します。
  • for: デバイス
  • select: ID、名前、PrimaryIPAddress
  • filter: 名前に cisco を含む
OpenAPI URL:
http://
da_host
:8581/odata/api/devices?$select=ID,Name,PrimaryIPAddress&$filter=((groups/Name eq 'cisco'))
デバイスおよび場所に関する情報のリストを取得する
Cisco デバイスおよびそれらのデバイスのロケーション情報 (場所、緯度、経度、場所の説明、および昇格) のリストが必要です。
場所
属性は MIB
sysLocation
値に結び付けられています。
緯度
経度
場所の説明
、および
上昇
属性は、ユーザ定義の値です。 管理者は、Data Aggregator でこれらの値を設定する必要があります。 これらの値が設定されていない場合、結果として null を返します。
このリストを取得するには、以下のトークンを使用して、クエリを構築します。
  • for: デバイス
  • select: ID、名前、PrimaryIPAddress、場所、緯度、経度、場所の説明、上昇
  • filter: 名前に cisco を含む
OpenAPI URL:
http://
da_host
:8581/odata/api/devices?$select=ID,Name,PrimaryIPAddress,Location,Latitude,Longitude,LocationDesc,Elevation&$filter=((groups/Name eq 'cisco'))
デバイスの IP アドレスが 10.251 から始まる場合にデバイスおよびコンポーネントのリストを取得する
IP アドレスが 10.251 から始まるすべてのデバイスのリストを取得するとします。 それらのデバイスのコンポーネントのリストも取得するとします。
expand
トークンを使用すると、クエリの主なエンティティに関連付けられているアイテムを取得できます。
このリストを取得するには、以下のトークンを使用して、クエリを構築します。
  • for: デバイス
  • select: ID、名前、PrimaryIPAddress
  • filter: PrimaryIPAddress は 10.251 から始まる
  • expand: コンポーネント、DisplayName
OpenAPI URL:
http://
da_host
:8581/odata/api/devices?$expand=components&$select=ID,Name,PrimaryIPAddress,components/DisplayName&$filter=((startswith(PrimaryIPAddress, '10.251') eq true))
Boston グループ内のデバイスおよびコンポーネントのリストを取得する
Boston グループ内のすべてのデバイスのリストを取得するとします。 それらのデバイスのコンポーネントのリストも取得するとします。
グループ フィルタを選択すると、OpenAPI には選択されたグループのサブグループが常に含まれます。
このリストを取得するには、以下のトークンを使用して、クエリを構築します。
  • for: デバイス
  • select: ID、名前、PrimaryIPAddress
  • filter: groups/Name は Boston に等しい
  • expand: コンポーネント、DisplayName
OpenAPI URL:
http://
da_host
:8581/odata/api/devices?$expand=components&$select=ID,Name,PrimaryIPAddress,components/DisplayName&$filter=((groups/Name eq 'Boston'))
特定のデバイスに対するメトリック ファミリおよびベンダー認定のリストを取得します。
特定のデバイスの監視に、どのメトリック ファミリおよびベンダー認定が使用されているかを知りたいとします。 このリストから、デバイスに利用可能なメトリックを導出できます。 デバイスの名前は、MyDevice-123 です。
このリストを取得するには、以下のトークンを使用して、クエリを構築します。
  • for: デバイス
  • filter: DisplayName は MyDevice-123 に等しい
  • select: ID、Name
  • expand: metricfamilyhistory、MetricFamilyID、VendorCertDisplayName
OpenAPI URL:
http://
da_host
:8581/odata/api/devices?$expand=metricfamilyhistories&$select=ID,Name,metricfamilyhistories/MetricFamilyID,metricfamilyhistories/VendorCertDisplayName&$filter=((DisplayName eq 'MyDevice-123'))
サポートされているメトリック ファミリのリストの取得
どのメトリックがレポートに使用可能かを知りたいとします。 メトリック ファミリのリストから、どのメトリック ファミリがどの監視対象によってサポートされているか確認できます。
このリストを取得するには、以下のトークンを使用して、クエリを構築します。
  • for: metricfamilyhistory
  • select: Status
  • expand: デバイス/ID、デバイス/名前、metricfamilydef/ID、metricfamilydef/DisplayName、metricfamilydef/DisplayDescription、
    metricdefs/ID、metricdefs/DisplayName、metricdefs/DisplayDecsription、
  • filter: Status/Status が SUPPORTED に等しい
OpenAPI URL:
http://
da_host
:8581/odata/api/metricfamilyhistories?$expand=metricfamilydef,metricdefs,device&$select=device/ID,device/Name,Status,metricfamilydef/ID,metricfamilydef/DisplayName,metricfamilydef/DisplayDescription,metricdefs/ID,metricdefs/DisplayName,metricdefs/DisplayDescription&$filter=((Status eq 'SUPPORTED'))
インベントリおよび監視データをエクスポートする
以下の例では、特定の設定の詳細または監視ステータスを含むアイテムの監視データを抽出する方法を示します。
ポーリングされない North America グループ内のインターフェースをリストする
North America グループ内のどのインターフェースが現在監視されていないかを確認するとします。
このリストを取得するには、以下のトークンを使用して、クエリを構築します。
  • for: インターフェース
  • select: ID、Name
  • filter: groups/Name は North America に等しい、および IsPolled False
OpenAPI URL:
http://
da_host
:8581/odata/api/interfaces?$select=ID,Name&$filter=((groups/Name eq 'North America') and (IsPolled eq false))
過去 24 時間のグループ内のデバイスのポーリング統計を取得する
過去 24 時間の Boston グループ内のデバイスの成功および失敗レートを確認するとします。 データベースは、失敗したポーリングの数を保存しません。 この値を導出するには、
group aggregate
トークンを使用して、送信されたポーリングの数から成功したポーリングの数を削除します。
時間の選択は必須です。 クエリで時間を選択すると、時間が修正されます。 柔軟な時間でクエリを作成するには、スクリプトを使用してクエリの時間とデータを置き換えます。
このデータを取得するには、以下のトークンを使用して、クエリを構築します。
  • for: デバイス
  • select: 名前
  • expand metrics: devicepollingstatisticsmfs: im_NumSuccessfulPolls
  • group aggregate:
    • Group By: devicepollingstatisticsmfs、ID
    • 集計関数の追加:
      Sum Of
      im_NumPollsSent sub im_NumSuccessfulPolls
  • filter: groups/Name は Boston に等しい
  • time range: Last24Hours
OpenAPI URL:
http://
da_host
:8581
/odata/api/devices?$apply=groupby(devicepollingstatisticsmfs/ID, aggregate(devicepollingstatisticsmfs(im_NumPollsSent sub im_NumSuccessfulPolls with sum as Value)))&period=1d&resolution=RATE&$expand=devicepollingstatisticsmfs&$select=Name,devicepollingstatisticsmfs/im_NumSuccessfulPolls&$filter=((groups/Name eq 'Boston'))
過去 30 日間の 25 パーセントを超えるポーリングの失敗を含むデバイスのリストを取得する
ポーリング リクエストに一貫性なく応答するデバイスを識別するとします。 このクエリでは、集計関数を使用してポーリング失敗レートを計算し、その値に対して制限を設定します。
group aggregate
トークンを使用すると、システムのメトリックからの値を導出できます。 その結果、集計データは「Value」としてレポートされます。 Value は、フィルタ メトリック トークンのフィルタ条件として使用できます。
このデータを取得するには、以下のトークンを使用して、クエリを構築します。
  • for: デバイス
  • select: 名前
  • group aggregate:
    • Group By: devicepollingstatisticsmfs、ID
    • 集計関数の追加:
      Sum Of
      ((im_NumPollsSent sub im_NumSuccessfulPolls) div im_NumPollsSent) mul 100
  • filter metrics: devicepollingstatisticsmfs/Value は 25 以上
  • time range: Last30Days
OpenAPI URL:
http://
da_host
:8581
/odata/api/devices?$apply=groupby(devicepollingstatisticsmfs/ID, aggregate(devicepollingstatisticsmfs(((im_NumPollsSent sub im_NumSuccessfulPolls) div im_NumPollsSent) mul 100 with sum as Value)))&period=1m&resolution=RATE&$select=Name&$filter=((devicepollingstatisticsmfs/Value gt 25))
デバイス ステータスのエクスポート
以下の例では、デバイス ステータスに関する詳細を抽出する方法を示しています。
管理の問題がある過去 24 時間のすべてのデバイスのリストの取得
管理の問題がある最近のデバイスを特定します。
このデータを取得するには、以下のトークンを使用して、クエリを構築します。
  • for: デバイス
  • select: ID、Name
  • group aggregate:
    • Group By: availabilitymfs、DeviceItemID
    • 集計関数の追加:
      Count Distinct Of
      (Timestamp)
  • filter metrics: availabilitymfs/Value は 1 未満
  • time range: Last24Hours/As polled
  • limit(top): top=2000、skip=0、expandtop=0
OpenAPI URL:
http://
da_host
:8581/odata/api/devices?$apply=groupby(availabilitymfs/DeviceItemID, aggregate(availabilitymfs(Timestamp with countdistinct as Value)))&resolution=RATE&period=1d&$top=2000&$skip=0&top=0&$select=ID,Name&$filter=((availabilitymfs/Value lt 1))
到達可能性の問題がある過去 24 時間のすべてのデバイスのリストの取得
到達可能性の問題がある最近のデバイスを特定します。
このデータを取得するには、以下のトークンを使用して、クエリを構築します。
  • for: デバイス
  • select: ID、Name
  • group aggregate:
    • Group By: reachabilitymfs、DeviceItemID
    • 集計関数の追加:
      Count Distinct Of
      (Timestamp)
  • filter metrics: reachabilitymfs/Value は 1 未満
  • time range: Last24Hours/As polled
  • limit(top): top=2000、skip=0、expandtop=0
OpenAPI URL:
http://da_host
:
8581/odata/api/devices?$apply=groupby(reachabilitymfs/DeviceItemID, aggregate(reachabilitymfs(Timestamp with countdistinct as Value)))&resolution=RATE&period=1d&$top=2000&$skip=0&top=0&$select=ID,Name&$filter=((reachabilitymfs/Value lt 1))
単一 CPU ポーリングなしで稼働している過去 24 時間のすべてのデバイスのリストの取得
CPU メトリック ポーリングの再起動が必要なデバイスを特定します。
このデータを取得するには、以下のトークンを使用して、クエリを構築します。
  • for: デバイス
  • select: ID、Name
  • group aggregate:
    • Group By: cpumfs、DeviceItemID
    • 集計関数の追加:
      Count Distinct Of
      (Timestamp)
  • filter metrics: cpumfs/Value は 1 未満
  • time range: Last24Hours/As polled
  • limit(top): top=2000、skip=0、expandtop=0
OpenAPI URL:
http://da_host
:
8581//odata/api/devices?$apply=groupby(cpumfs/DeviceItemID, aggregate(cpumfs(Timestamp with countdistinct as Value)))&resolution=RATE&period=1d&$top=2000&$skip=0&top=0&$select=ID,Name&$filter=((cpumfs/Value lt 1))
単一インターフェース ポーリングなしで稼働している過去 24 時間のすべてのデバイスのリストの取得
インターフェース メトリック ポーリングの再起動が必要なデバイスを特定します。
このデータを取得するには、以下のトークンを使用して、クエリを構築します。
  • for: デバイス
  • select: ID、Name
  • group aggregate:
    • Group By: portmfs、DeviceItemID
    • 集計関数の追加:
      Count Distinct Of
      (Timestamp)
  • filter metrics: portmfs/Value は 1 未満
  • time range: Last24Hours/As polled
  • limit(top): top=2000、skip=0、expandtop=0
OpenAPI URL:
http://da_host
:
8581/odata/api/devices?$apply=groupby(portmfs/DeviceItemID, aggregate(portmfs(Timestamp with countdistinct as Value)))&resolution=RATE&period=1d&$top=2000&$skip=0&top=0&$select=ID,Name&$filter=((portmfs/Value lt 1))
インベントリおよび時系列データを抽出する
以下の例では、特定の設定の詳細を含むアイテムのトレンドおよび時系列データを抽出する方法を示します。
グループ内のインターフェースのポーリングされた生データの ビット数(イン)およびビット数(アウト)をエクスポートする
Boston グループから重要なインターフェース監視データを抽出して新しいビジュアル化に使用するとします。 1 週間のポーリングされたデータを抽出するとします。
1 週間のポーリングされたデータを取得するには、展開された行の最大数を正しい値に設定します。 この例では、ポーリング間隔が 5 分であるため、2016 のデータ ポイントは 1 週間のデータです。
このデータを取得するには、以下のトークンを使用して、クエリを構築します。
  • for: インターフェース
  • select: 名前
  • expand metrics: portmfs: im_BitsIn、im_BitsOut
  • filter: groups/Name は Boston に等しい
  • time range: Last7Days/As polled
  • limit: Maximum number of expanded rows: 2016
OpenAPI URL:
http://
da_host
:8581
/odata/api/interfaces?period=1w&resolution=RATE&$top=50&$skip=0&top=2016&$expand=portmfs&$select=Name,portmfs/im_BitsIn,portmfs/im_BitsOut&$filter=((groups/Name eq 'Boston'))
IP アドレスのサブ文字列によってデバイスに関連付けられているインターフェースの合計時間単位のビット数(イン)およびビット数(アウト)を取得する
親デバイスの IP アドレスが 10.251 から始まるインターフェースの重要なスループット情報を抽出するとします。 月の時間単位のスループット合計を取得するとします。
時間単位のデータの 30 日間の場合は、展開された行の最大数を 720 に設定します。
このデータを取得するには、以下のトークンを使用して、クエリを構築します。
  • for: インターフェース
  • select: 名前
  • expand metrics: portmfs: im_BitsIn、im_BitsOut
  • filter: device/PrimaryIPAddress は10.251 から始まる
  • time range: Last30Days/Hour
  • limit: Maximum number of expanded rows: 720
OpenAPI URL:
http://
da_host
:8581
/odata/api/interfaces?period=1m&resolution=HOUR&$top=50&$skip=0&top=720&$expand=portmfs&$select=Name,portmfs/im_BitsIn,portmfs/im_BitsOut&$filter=((startswith(PrimaryIPAddress, '10.251') eq true))
過去 30 日間の 1 GB 未満の日単位スループットを持つインターフェースの合計日単位のビット数(イン)およびビット数(アウト)を取得する
どのインターフェースが低使用であるかを識別するとします。
ビット数(イン)およびビット数(アウト)が合計で集計するため、日単位の間隔は同じ値を提供し、クエリは高速で実行します。
このデータを取得するには、以下のトークンを使用して、クエリを構築します。
  • for: インターフェース
  • select: 名前
  • expand metrics: portmfs: im_BitsIn、im_BitsOut
  • filter metrics: portmfs/im_Bits は 1000000000 未満
  • time range: Last30Days/Day
OpenAPI URL:
http://
da_host
:8581
/odata/api/interfaces?period=1m&resolution=DAY&$expand=portmfs&$select=Name,portmfs/im_BitsIn,portmfs/im_BitsOut&$filter=((portmfs/im_Bits lt 1000000000))
インベントリおよび集計された値を抽出する
以下の例では、特定の設定の詳細を含むアイテムの集計されたデータを抽出する方法を示します。
group aggregate
トークンを使用すると、カスタマイズ可能なランタイム分析はデータ セットに適用されます。
パーセンタイル集計と他の集計タイプを混在させることはできません。
過去 7 日間のグループ内のインターフェースごとに第 95 パーセンタイルの使用率の値を表示する
Boston グループ内のインターフェースごとに使用率の第 95 パーセンタイルを取得するとします。
このデータを取得するには、以下のトークンを使用して、クエリを構築します。
  • for: インターフェース
  • select: 名前
  • expand metrics: portmfs: im_Utilization
  • group aggregate:
    • Group By: portmfs、ID
    • 集計関数の追加:
      Percentile95
      im_Utilization
  • filter: groups/Name は Boston に等しい
  • time range: Last7Days/As polled
OpenAPI URL:
http://
da_host
:8581/odata/api/interfaces?$apply=groupby(portmfs/ID, aggregate(portmfs(im_Utilization with percentile95 as Value)))&resolution=RATE&period=1w&$expand=portmfs&$select=Name,portmfs/ID&$filter=((groups/Name eq 'Boston'))
過去 30 日間のグループ内のデバイスごとに CPU 平均使用率を表示する
Boston グループ内のルータの CPU 平均使用率を取得するとします。
このデータを取得するには、以下のトークンを使用して、クエリを構築します。
  • for: デバイス
  • select: 名前
  • group aggregate:
    • Group By: cpumfs、ID
    • 集計関数の追加:
      AverageOf
      im_Utilization
  • filter: groups/Name は Boston に等しい
  • time range: Last30Days/As polled
OpenAPI URL:
http://
da_host
:8581
/odata/api/devices?$apply=groupby(cpumfs/ID, aggregate(cpumfs(im_Utilization with average as Value)))&period=1m&resolution=RATE&$select=Name&$filter=((groups/Name eq 'Boston'))
平均 40% 未満の時間単位の使用率を持つグループ内のインターフェースを表示する
ネットワーク内のどのインターフェースが前四半期中に低使用であったかを確認するとします。
このデータを取得するには、以下のトークンを使用して、クエリを構築します。
  • for: インターフェース
  • select: 名前
  • expand metrics: portmfs: im_utilization
  • group/aggregate
    • Group By: portmfs、ID
    • 集計関数の追加:
      AverageOf
      im_utilization
  • filter metrics: portmfs/Value は 40 未満
  • time range: Last3Months/Hour
OpenAPI URL:
http://
da_host
:8581
/odata/api/interfaces?$apply=groupby(portmfs/ID, aggregate(portmfs(im_Utilization with average as Value)))&period=3m&resolution=HOUR&$expand=portmfs&$select=Name,portmfs/im_Utilization&$filter=((portmfs/Value lt 40))
IP アドレスのサブ文字列に基づく 75% 以上の CPU およびメモリ平均使用率を持つデバイスを表示する
高い CPU およびメモリ使用率を持つ 10.251 から始まるサブネット内のデバイスを確認するとします。
このデータを取得するには、以下のトークンを使用して、クエリを構築します。