LogicMonitor + Catchpoint: 自律型ITの新時代へ

さらに詳しく

LogicMonitor REST API v3を使用すると、コスト最適化の推奨事項の詳細を取得できます。APIリクエストを行う前に認証を行う必要があります。

推奨事項のリストを取得する

推奨事項リストには、クラウドプロバイダー、関連リソース、推奨事項の詳細などの詳細が含まれます。以下のクエリパラメータを使用して、レスポンスの内容と形式を制御できます。

URI: GET /cost-optimization/recommendations

技術パラメータ タイプ 詳細説明
fieldsStringレスポンスは、各オブジェクトの指定されたフィールドのみを含むようにフィルタリングされます。 comma (,).

例-/cost-optimization/recommendations?fields=resourceDisplayName,cloudAccountId
size整数レスポンスで返される推奨事項の数を示します。500回のリクエストで最大XNUMX件の結果をリクエストできます。 GET 呼び出し。このパラメータが指定されていない場合は、デフォルトのページ サイズ 50 が使用されます。

例-/cost-optimization/recommendations?size=25
offset整数結果を返す前にスキップする推奨事項の指定数を示します。

例-/cost-optimization/recommendations?offset=10
filterString応答は、演算子と指定された値に従ってフィルタリングされます。 filter=property:value
  • フィルタリングは、 recommendationCategory および recommendationStatus フィールド。
  • 私達の recommendationCategory このフィールドは一度に1つの値のみをサポートします。利用可能な推奨カテゴリのリストを取得するには、 GET /cost-optimization/recommendations/categories エンドポイントを使用して定義します
  • だけ Equals (:)演算子は、 recommendationStatus および recommendationCategory フィールド。

    例-recommendationCategory:"Underutilized AWS EC2 instances"
  •   recommendationStatus フィールドでは、 OR (|) 演算子。

    例-recommendationStatus:"SNOOZED"|"IGNORED"
  • 異なるフィールドの複数のフィルターを組み合わせる場合、 AND 関係( comma (,フィルター間には ) ) を使用できます。

    例-recommendationStatus:"SNOOZED",recommendationCategory:"Unattached Azure Disks"

次の例は、PythonスクリプトのAPIリクエストがapi.logicmonitor.comポータルで推奨事項のリストを返す方法を示しています。結果は、 recommendationStatus に設定 "ACTIVE".

#!/bin/env python
  
import requests
import json
import hashlib
import base64
import time
import hmac
import getpass
  
#Account Info: LogicMonitor recommends to NEVER hardcode the credentials. Instead, retrieve the values from a secure storage.
#Note: The below is provided for illustration purposes only.
AccessId = getpass.getpass("Enter your AccessId: ")
AccessKey = getpass.getpass("Enter your AccessKey: ")
Company = 'apiAccount' 
  
#Request Info
httpVerb ='GET'
resourcePath = '/cost-optimization/recommendations'
queryParams = '?filter=recommendationStatus:"ACTIVE"&size=5'
data = ''
  
#Construct URL
url = 'https://'+ Company +'.logicmonitor.com/santaba/rest' + resourcePath +queryParams
  
#Get current time in milliseconds
epoch = str(int(time.time() * 1000))
  
#Concatenate Request details
requestVars = httpVerb + epoch + data + resourcePath
  
#Construct signature
digest = hmac.new(
        AccessKey.encode('utf-8'),
        msg=requestVars.encode('utf-8'),
        digestmod=hashlib.sha256).hexdigest()
signature = base64.b64encode(digest.encode('utf-8')).decode('utf-8') 
  
#Construct headers
auth = 'LMv1 ' + AccessId + ':' + str(signature) + ':' + epoch
headers = {'Content-Type':'application/json','Authorization':auth,'X-Version':'3'}
  
#Make request
response = requests.get(url, data=data, headers=headers)
  
#Print status and body of response
print('Response Status:',response.status_code)
print('Response Body:',response.content)

次の例は、PythonスクリプトのAPIリクエストがapi.logicmonitor.comポータルで推奨事項のリストを返す方法を示しています。結果は、 resourceDisplayName および cloudAccountId フィールドと recommendationStatus に設定 ACTIVE.

#!/bin/env python
  
import requests
import json
import hashlib
import base64
import time
import hmac
import getpass
  
#Account Info: LogicMonitor recommends to NEVER hardcode the credentials. Instead, retrieve the values from a secure storage.
#Note: The below is provided for illustration purposes only.
AccessId = getpass.getpass("Enter your AccessId: ")
AccessKey = getpass.getpass("Enter your AccessKey: ")
Company = 'apiAccount' 
  
#Request Info
httpVerb ='GET'
resourcePath = '/cost-optimization/recommendations'
queryParams = '?fields=resourceDisplayName,cloudAccountId&filter=recommendationStatus:"ACTIVE"&size=3&offset=1'
data = ''
  
#Construct URL
url = 'https://'+ Company +'.logicmonitor.com/santaba/rest' + resourcePath +queryParams
  
#Get current time in milliseconds
epoch = str(int(time.time() * 1000))
  
#Concatenate Request details
requestVars = httpVerb + epoch + data + resourcePath
  
#Construct signature
digest = hmac.new(
        AccessKey.encode('utf-8'),
        msg=requestVars.encode('utf-8'),
        digestmod=hashlib.sha256).hexdigest()
signature = base64.b64encode(digest.encode('utf-8')).decode('utf-8') 
  
#Construct headers
auth = 'LMv1 ' + AccessId + ':' + str(signature) + ':' + epoch
headers = {'Content-Type':'application/json','Authorization':auth,'X-Version':'3'}
  
#Make request
response = requests.get(url, data=data, headers=headers)
  
#Print status and body of response
print('Response Status:',response.status_code)
print('Response Body:',response.content)

特定の推奨事項の詳細を取得する

次のクエリ パラメータを使用して、応答の内容と形式を制御できます。

URI: GET /cost-optimization/recommendations/{id}

技術パラメータ タイプ 詳細説明
idString(必須の) 推奨事項の英数字ID。ハイフン(-)で、推奨事項のデータベースIDの順序で記述されます。-関連付けられたリソースID-推奨タイプ。IDは、 id 内のフィールド GET /cost-optimization/recommendations エンドポイントを使用して定義します

例-/cost-optimization/id=123-456-EBS_UNATTACHED
fieldsStringレスポンスは、各オブジェクトの指定されたフィールドのみを含むようにフィルタリングされます。 comma (,).

例-/cost-optimization/recommendations?fields=resourceDisplayName,cloudAccountId

次の例は、PythonスクリプトのAPIリクエストが推奨事項の詳細を返す方法を示しています。 id=12041-3054082-AZURE_DISK_UNATTACHED api.logicmonitor.com ポータルで。

#!/bin/env python
  
import requests
import json
import hashlib
import base64
import time
import hmac
import getpass
  
#Account Info: LogicMonitor recommends to NEVER hardcode the credentials. Instead, retrieve the values from a secure storage.
#Note: The below is provided for illustration purposes only.
AccessId = getpass.getpass("Enter your AccessId: ")
AccessKey = getpass.getpass("Enter your AccessKey: ")
Company = 'apiAccount' 
  
#Request Info
httpVerb ='GET'
resourcePath = '/cost-optimization/recommendations/12041-3054082-AZURE_DISK_UNATTACHED'
queryParams = ''
data = ''
  
#Construct URL
url = 'https://'+ Company +'.logicmonitor.com/santaba/rest' + resourcePath +queryParams
  
#Get current time in milliseconds
epoch = str(int(time.time() * 1000))
  
#Concatenate Request details
requestVars = httpVerb + epoch + data + resourcePath
  
#Construct signature
digest = hmac.new(
        AccessKey.encode('utf-8'),
        msg=requestVars.encode('utf-8'),
        digestmod=hashlib.sha256).hexdigest()
signature = base64.b64encode(digest.encode('utf-8')).decode('utf-8') 
  
#Construct headers
auth = 'LMv1 ' + AccessId + ':' + str(signature) + ':' + epoch
headers = {'Content-Type':'application/json','Authorization':auth,'X-Version':'3'}
  
#Make request
response = requests.get(url, data=data, headers=headers)
  
#Print status and body of response
print('Response Status:',response.status_code)
print('Response Body:',response.content)

推奨カテゴリのリストを取得する

このAPIエンドポイントを使用すると、LogicMonitorが提供する現在利用可能な推奨カテゴリの静的リストを取得できます。以下のクエリパラメータを使用して、レスポンスの内容と形式を制御できます。

URI: GET /cost-optimization/recommendations/categories

タイプ 詳細説明
fieldsStringレスポンスは、各オブジェクトの指定されたフィールドのみを含むようにフィルタリングされます。 comma (,).

例-/cost-optimization/recommendations/categories?fields=Name,description
size整数表示する結果の数を示します。 一度に最大 500 件の結果をリクエストできます。 GET 呼び出し。値が指定されていない場合は、デフォルトのページ サイズ 50 が使用されます。

例-/cost-optimization/recommendations/categories?size=5
offset整数結果を返す前にスキップするカテゴリの指定数を示します。

例-/cost-optimization/recommendations/categories?offset=2
filterString応答は、演算子と指定された値に従ってフィルタリングされます。 filter=property:value

例-/cost-optimization/recommendations/categories?filter=description~"AWS"

次の例は、Python スクリプトの API リクエストが api.logicmonitor.com ポータル内のすべての推奨カテゴリのリストを返す方法を示しています。

#!/bin/env python
  
import requests
import json
import hashlib
import base64
import time
import hmac
import getpass
  
#Account Info: LogicMonitor recommends to NEVER hardcode the credentials. Instead, retrieve the values from a secure storage.
#Note: The below is provided for illustration purposes only.
AccessId = getpass.getpass("Enter your AccessId: ")
AccessKey = getpass.getpass("Enter your AccessKey: ")
Company = 'apiAccount' 
  
#Request Info
httpVerb ='GET'
resourcePath = '/cost-optimization/recommendations/categories'
queryParams = '?filter=description~"AWS"'
data = ''
  
#Construct URL
url = 'https://'+ Company +'.logicmonitor.com/santaba/rest' + resourcePath +queryParams
  
#Get current time in milliseconds
epoch = str(int(time.time() * 1000))
  
#Concatenate Request details
requestVars = httpVerb + epoch + data + resourcePath
  
#Construct signature
digest = hmac.new(
        AccessKey.encode('utf-8'),
        msg=requestVars.encode('utf-8'),
        digestmod=hashlib.sha256).hexdigest()
signature = base64.b64encode(digest.encode('utf-8')).decode('utf-8') 
  
#Construct headers
auth = 'LMv1 ' + AccessId + ':' + str(signature) + ':' + epoch
headers = {'Content-Type':'application/json','Authorization':auth,'X-Version':'3'}
  
#Make request
response = requests.get(url, data=data, headers=headers)
  
#Print status and body of response
print('Response Status:',response.status_code)
print('Response Body:',response.content)

14日間フルアクセス LogicMonitor プラットフォーム