グラフデータを取得する

最終更新日: 27 年 2022 月 XNUMX 日

概要

LogicMonitorのRESTAPIを使用して、数値データ形式または画像形式のグラフデータを取得できます。 リクエストできるグラフデータには、次のXNUMX種類があります。

  • インスタンスレベルのグラフデータ
  • ウィジェットデータ
  • サービスグラフデータ

すべてのAPI呼び出しと同様に、 認証が必要です.

インスタンスレベルのグラフデータを取得する

HTTPメソッド: GET

リソースURI:

/ device / devices / {deviceID} / devicedatasources / {deviceDataSourceID} / instances / {instanceID} / graphs / {graphID} / data
/ device / devicedatasourceinstances / {instanceID} / graphs / {graphID} / data
/ device / devicedatasources / {deviceDataSourceID} / groups / {instanceGroupId} / graphs / {overviewGraphID} / data

(ここで、deviceIDは、データが必要なデバイスのIDであり、から取得できます。 デバイスリソース; deviceDataSourceIDは、データが必要なデバイスデータソースのIDであり、から取得できます。 データソースリソース; インスタンスIDは、データが必要なインスタンスのIDであり、 インスタンスリソース; instanceGroupIDは、概要グラフデータを取得するインスタンスグループであり、インスタンスグループ情報を取得できます。 インスタンスグループリソース; graphIDは、データが必要な特定のインスタンスグラフのIDであり、特定のデータソースのすべてのグラフ情報を データソースリソース; overviewGraphIDは、データが必要な特定の概要グラフのIDであり、特定のデータソースのすべてのグラフ情報を データソースリソース.)

リクエストパラメータ: デフォルトでは、設定されたグラフの時間範囲のデータが返されます。 リクエストに次のクエリパラメータを含めて、レスポンスに含めるデータを制御できます。

プロパティ 説明 必須?
形式でアーカイブしたプロジェクトを保存します. データ| 画像| csv –返されたデータが数値(data = json)または画像のどちらでフォーマットされているか いいえ–デフォルトはデータです
format = imageの場合、画像の幅(ピクセル単位) いいえ
高さ format = imageの場合、画像の高さ(ピクセル単位) いいえ
start 返されたデータの開始時間 (エポック秒) いいえ–デフォルトは選択したグラフの時間範囲になります
終わり 返されたデータの終了時間 (エポック秒) いいえ–デフォルトは選択したグラフの時間範囲になります

例:グラフからデータを取得する

次のPythonスクリプトは、からデータを取得します 1482865561 〜へ 1482865719 インスタンス253、データソース26657295、デバイス6842に関連付けられたグラフ258の場合:

#!/bin/env python

import requests
import json
import hashlib
import base64
import time
import hmac

#Account Info
AccessId ='48v2wRzfK94y53sq5EuF'
AccessKey ='H_D9i(f5~B^U36^K6i42=^nS~e75gy382Bf6{)P+'
Company = 'api'

#Request Info
httpVerb ='GET'
resourcePath = '/device/devices/258/devicedatasources/6842/instances/26657295/graphs/253/data'
queryParams ='?start=1482865561&end=1482865719'
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
hmac1 = hmac.new(AccessKey.encode(),msg=requestVars.encode(),digestmod=hashlib.sha256).hexdigest()
signature = base64.b64encode(hmac1.encode())

#Construct headers
auth = 'LMv1 ' + AccessId + ':' + signature.decode() + ':' + epoch
headers = {'Content-Type':'application/json','Authorization':auth}

#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の3

例:画像ファイルを保存する

次のPythonスクリプトは、デバイスDataSourceインスタンス4825に関連付けられたグラフ420576596の画像ファイル「instanceGraph.png」を保存します。

#!/bin/env python

import requests
import json
import hashlib
import base64
import time
import hmac

#Account Info
AccessId ='48v2wRzfK94y53sq5EuF'
AccessKey ='H_D9i(f5~B^U36^K6i42=^nS~e75gy382Bf6{)P+'
Company = 'api'

#Request Info
httpVerb ='GET'
resourcePath = '/device/devicedatasourceinstances/420576596/graphs/4825/data'
queryParams = '?format=image'
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
hmac1 = hmac.new(AccessKey.encode(),msg=requestVars.encode(),digestmod=hashlib.sha256).hexdigest()
signature = base64.b64encode(hmac1.encode())

#Construct headers
auth = 'LMv1 ' + AccessId + ':' + signature.decode() + ':' + epoch
headers = {'Content-Type':'application/json','Authorization':auth}

#Make request
response = requests.get(url, data=data, headers=headers)

#Print status and write image data to a png file
print('Response Status:',response.status_code)
file_ = open('instanceGraph.png', 'wb')
file_.write(response.content)
file_.close()
Pythonの3

ウィジェットデータを取得する

注: このデータリソースは、テキスト、HTML、およびフラッシュウィジェットでは機能しません。 マップウィジェットやアラートウィジェットのように時系列データのないウィジェットの場合、データは時間に関係なくウィジェットに表示される内容(場所、一致するアラート)に基づいて返されます。 カスタムグラフウィジェットやデバイスグラフウィジェットなど、時系列データを含むウィジェットの場合、データは、リクエストで構成または指定された時間範囲に基づいて返されます。

HTTPメソッド: GET

リソースURI: / dashboard / widgets / {widgetID} / data
(ここで、widgetIDは、データを取得するウィジェットのIDです。widgetIDは、 ウィジェットリソース.)

リクエストパラメータ: デフォルトでは、設定されたウィジェットの時間範囲のデータが返されます。 リクエストに次のクエリパラメータを含めて、レスポンスに含めるデータを制御できます。

プロパティ 説明 必須?
形式でアーカイブしたプロジェクトを保存します. データ| image –返されたデータが数値または画像のどちらでフォーマットされているか いいえ–デフォルトはデータです
start 返されたデータの開始時間 (エポック秒) いいえ–デフォルトは選択したウィジェットの時間範囲になります
終わり 返されたデータの終了時間 (エポック秒) いいえ–デフォルトは選択したウィジェットの時間範囲になります

次のPythonスクリプトは、からデータを取得します 1482865561 〜へ 1482865719 ウィジェット362の場合:

#!/bin/env python

import requests
import json
import hashlib
import base64
import time
import hmac

#Account Info
AccessId ='48v2wRzfK94y53sq5EuF'
AccessKey ='H_D9i(f5~B^U36^K6i42=^nS~e75gy382Bf6{)P+'
Company = 'api'

#Request Info
httpVerb ='GET'
resourcePath = '/dashboard/widgets/362/data'
queryParams ='?start=1482865561&end=1482865719'
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
hmac1 = hmac.new(AccessKey.encode(),msg=requestVars.encode(),digestmod=hashlib.sha256).hexdigest()
signature = base64.b64encode(hmac1.encode())

#Construct headers
auth = 'LMv1 ' + AccessId + ':' + signature.decode() + ':' + epoch
headers = {'Content-Type':'application/json','Authorization':auth}

#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の3

サービスグラフデータを取得する

HTTPメソッド: GET

リソースURI: / service / services / {serviceID} / checkpoints / {checkpointID} / graphs / {graphName} / data
(serviceIDは、データを取得するサービスです。serviceIDは、 サービスリソース。 CheckpointIDは、データが必要なサービスチェックポイントのIDです。 チェックポイントIDは次の方法で取得できます 特定のサービスの詳細を取得するためにGETリクエストを行う。 graphNameは、データが必要なグラフです。可能な値は、ステータス、パフォーマンス(個々のチェックポイントのみ)、および応答時間です。)

リクエストパラメータ: デフォルトでは、設定されたグラフの時間範囲のデータが返されます。 リクエストに次のクエリパラメータを含めて、レスポンスに含めるデータを制御できます。

プロパティ 説明 必須?
形式でアーカイブしたプロジェクトを保存します. データ| image –返されたデータが数値または画像のどちらでフォーマットされているか いいえ–デフォルトはデータです
start 返されたデータの開始時間 (エポック秒) いいえ–デフォルトは選択したグラフの時間範囲になります
終わり 返されたデータの終了時間 (エポック秒) いいえ–デフォルトは選択したグラフの時間範囲になります

次のPythonスクリプトは、パフォーマンスグラフデータを 1482865561 〜へ 1482865719 サービス58の場合、チェックポイント294:

#!/bin/env python

import requests
import json
import hashlib
import base64
import time
import hmac

#Account Info
AccessId ='48v2wRzfK94y53sq5EuF'
AccessKey ='H_D9i(f5~B^U36^K6i42=^nS~e75gy382Bf6{)P+'
Company = 'api'

#Request Info
httpVerb ='GET'
resourcePath = '/service/services/58/checkpoints/294/graphs/performance/data'
queryParams ='?start=1482865561&end=1482865719'
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
hmac1 = hmac.new(AccessKey.encode(),msg=requestVars.encode(),digestmod=hashlib.sha256).hexdigest()
signature = base64.b64encode(hmac1.encode())

#Construct headers
auth = 'LMv1 ' + AccessId + ':' + signature.decode() + ':' + epoch
headers = {'Content-Type':'application/json','Authorization':auth}

#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の3
記事上で